PHP进阶-在Ubuntu上搭建LAMP环境教程
【摘要】 本文将为您提供一个在Ubuntu服务器上搭建LAMP(Linux, Apache, MySQL, PHP)环境的完整指南。通过本文,您将学习如何安装和配置Apache、MySQL、PHP,并将您的PHP项目部署到服务器上。本文适用于Ubuntu 20.04及更高版本。
本文将为您提供一个在Ubuntu服务器上搭建LAMP(Linux, Apache, MySQL, PHP)环境的完整指南。通过本文,您将学习如何安装和配置Apache、MySQL、PHP,并将您的PHP项目部署到服务器上。本文适用于Ubuntu 20.04及更高版本。
## 一、系统更新
在开始之前,确保您的系统软件包是最新的。
```bash
sudo apt update
sudo apt upgrade -y
```
----
## 二、安装Apache
### 1. 安装Apache Web服务器
```bash
sudo apt install apache2 -y
```
### 2. 启动并设置Apache开机自启
```bash
sudo systemctl start apache2
sudo systemctl enable apache2
```
### 3. 验证Apache是否正常运行
在浏览器中访问 `http://<您的服务器IP>/`,应显示Apache默认的欢迎页面。如果无法访问,请检查防火墙设置(后续步骤将涵盖防火墙配置)。
---
## 三、安装MySQL
### 1. 安装MySQL服务器
```bash
sudo apt install mysql-server -y
```
### 2. 启动并设置MySQL开机自启
```bash
sudo systemctl start mysql
sudo systemctl enable mysql
```
### 3. 验证MySQL安装
登录MySQL以确认安装成功。
```bash
sudo mysql -u root -p
```
MySQL默认密码是root,直接登录即可。
### 4. 修改初始密码
```bash
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
```
### 5. 创建库和表
这里我们用SQL语句把项目需要的数据库建好即可。
---
## 四、安装PHP及必要模块
### 1. 添加Ondřej Surý的PHP PPA(提供最新的PHP版本)
```bash
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
sudo apt update
```
### 2. 安装PHP 8.3和相关模块
这里以8.3为例,其他版本只需要替换这个版本号。
```bash
sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring php8.3-zip php8.3-gd -y
```
其中,PHP FastCGI Process Manager,用于与Apache配合。
### 3. 启动并设置PHP-FPM开机自启
```bash
sudo systemctl start php8.3-fpm
sudo systemctl enable php8.3-fpm
```
### 4. 验证PHP安装
```bash
php -v
```
**预期输出示例:**
```bash
PHP 8.3.0 (cli) (built: ...)
```
---
## 五、配置Apache与PHP-FPM集成
### 1. 启用必要的Apache模块
确保启用了`proxy`、`proxy_fcgi`和`rewrite`模块,这对于PHP-FPM的集成和URL重写非常重要。
```bash
sudo a2enmod proxy proxy_fcgi rewrite
```
### 2. 配置虚拟主机
创建一个新的Apache虚拟主机配置文件,例如`dco.conf`。
```bash
sudo nano /etc/apache2/sites-available/dco.conf
```
### 3. 编写虚拟主机配置
将以下内容粘贴到`dco.conf`文件中:
```apache
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot xxxxx
ServerName xx.xxx.xxx.xxx
<Directory /var/www/dco>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/dco.error.log
CustomLog ${APACHE_LOG_DIR}/dco.access.log combined
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
```
**说明:**
- **`ServerName`**:设置为您的服务器IP地址。
- **`DocumentRoot`**:指向您的PHP项目目录。
如果没创建,要 `sudo mkdir -p xxxxxx` 创建目录。
- **`<Directory>`** **块**:允许`.htaccess`文件覆盖配置,并授予访问权限。
- **`<FilesMatch \.php$>`** **块**:配置Apache通过PHP-FPM处理PHP文件。确保`php8.3-fpm.sock`路径正确。
### 4. 启用虚拟主机并禁用默认配置
启用新创建的虚拟主机:
```bash
sudo a2ensite dco.conf
```
禁用默认虚拟主机(可选,但推荐以避免配置冲突):
```bash
sudo a2dissite 000-default.conf
```
### 5. 测试Apache配置并重新加载
测试配置文件语法是否正确:
```bash
sudo apache2ctl configtest
```
**预期输出:**
```bash
Syntax OK
```
这里warning不用管,显示 `Syntax OK` 即可。
重新加载Apache服务以应用更改:
```bash
sudo systemctl reload apache2
```
---
## 六、配置防火墙
确保服务器防火墙允许HTTP(80)和HTTPS(443)流量。
### 1. 安装UFW(如果尚未安装)
```bash
sudo apt install ufw -y
```
### 2. 允许Apache通过防火墙
```bash
sudo ufw allow 'Apache Full'
```
### 3. 启用防火墙
```bash
sudo ufw enable
```
### 4. 检查防火墙状态
```bash
sudo ufw status
```
**预期输出示例:**
```bash
Status: active
To Action From
-- ------ ----
Apache Full ALLOW Anywhere
Apache Full (v6) ALLOW Anywhere (v6)
```
---
## 七、部署PHP项目
### 1. 创建项目目录
```bash
sudo mkdir -p /var/www/dco
```
### 2. 上传项目文件
将您的PHP项目文件上传到服务器上的 `/var/www/dco` 目录。
### 3. 设置文件权限
确保Apache用户(`www-data`)对项目文件有适当的读写权限。
这里我直接给全权限。
```bash
sudo chmod -R 777 /var/www/dco
```
---
## 八、创建测试PHP文件
为了确认PHP是否正常工作,创建一个简单的 `info.php` 文件进行测试。
```bash
sudo nano /var/www/dco/info.php
```
添加以下内容:
```php
<?php
phpinfo();
?>
```
保存并退出编辑器。
---
## 九、测试访问
### 1. 在浏览器中访问测试文件
打开浏览器,访问以下URL:
```bash
http://124.221.49.91/info.php
```
**预期结果:**
- 显示PHP配置信息页面,包含PHP版本、已安装的模块等信息。
### 2. 删除测试文件(安全性考虑)
测试完成后,建议删除 `info.php` 文件以防止泄露服务器信息。
```bash
sudo rm /var/www/dco/info.php
```
---
## 十、错误排查
如果按照上述步骤操作后仍然无法解决问题,可以去查看各块的日志:
1. **Apache错误日志的相关条目**
```bash
sudo tail -n 50 /var/log/apache2/dco.error.log
```
1. **PHP-FPM错误日志的相关条目**
```bash
sudo tail -n 50 /var/log/php8.3-fpm.log
# 或
sudo tail -n 50 /var/log/php8.3-fpm/error.log
```
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)