PHP项目如何在Ubuntu部署
在Ubuntu上部署PHP项目需先更新系统,安装Apache或Nginx搭配PHP及MySQL/MariaDB数据库,配置Web服务器和PHP环境(如启用模块、设置时区),上传项目文件并设置权限,创建数据库及用户,最后测试访问并检查错误日志。
在Ubuntu上部署PHP项目,说起来其实不算复杂,但新手如果不熟悉流程,容易在权限、配置上栽跟头。下面我把整个流程梳理一遍,从系统更新到最终测试,每一步都尽量说清楚。不管你用Apache还是Nginx,MySQL还是PostgreSQL,这里都有对应的操作。

1. 更新系统
先把系统拉到最新状态,这一步可以说是基础中的基础:
sudo apt update
sudo apt upgrade -y
2. 安装必要的软件
需要安装的东西无非三件套:Web服务器(Apache或Nginx)、PHP运行时、数据库(MySQL或PostgreSQL)。根据你的偏好二选一就行。
安装Apache和PHP
如果选Apache,一条命令搞定:
sudo apt install apache2 -y
sudo apt install php libapache2-mod-php php-mysql -y
安装Nginx和PHP-FPM
更偏好Nginx的话,那就搭配PHP-FPM:
sudo apt install nginx -y
sudo apt install php-fpm -y
3. 配置Web服务器
安装完只是第一步,还得让服务器知道怎么处理PHP请求。
Apache配置
打开Apache的默认站点配置文件:
sudo nano /etc/apache2/sites-a vailable/000-default.conf
在块里加上这段,目的是允许目录索引和URL重写:
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
保存退出后重启Apache使配置生效:
sudo systemctl restart apache2
Nginx配置
编辑Nginx的默认站点文件:
sudo nano /etc/nginx/sites-a vailable/default
在server块里放上如下配置,注意PHP-FPM的socket路径要根据你实际安装的PHP版本调整:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
保存退出,重启Nginx:
sudo systemctl restart nginx
4. 安装数据库服务器
项目一般离不开数据库,这里给出MySQL和PostgreSQL两种常见选择。
MySQL
sudo apt install mysql-server -y
sudo mysql_secure_installation
PostgreSQL
sudo apt install postgresql -y
sudo systemctl start postgresql
sudo systemctl enable postgresql
5. 上传项目文件
项目代码可以通过FTP、SCP或者直接Git克隆的方式上传。对于Apache,默认根目录是/var/www/html;对于Nginx,可以放在/var/www/your_project_directory,然后自己配置好root指向。
6. 设置文件权限
权限问题往往是部署过程中最头疼的地方,最好一次性设好:
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type f -exec chmod 644 {} \;
sudo find /var/www/html -type d -exec chmod 755 {} \;
7. 配置数据库
根据项目需求创建数据库和对应的用户,这里也分别给出MySQL和PostgreSQL的命令。
MySQL
CREATE DATABASE your_database_name;
CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;
PostgreSQL
CREATE DATABASE your_database_name;
CREATE USER your_user WITH ENCRYPTED PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE your_database_name TO your_user;
8. 配置PHP环境
有些项目需要额外的PHP扩展,比如处理多字节字符串、XML或cURL。根据实际情况安装:
sudo apt install php-mbstring php-xml php-curl -y
9. 测试部署
打开浏览器,输入服务器IP或者绑定的域名,如果能看到项目页面正常加载,那说明整个流程走通了。万一出问题,别忘了查看错误日志——Apache的日志一般在/var/log/apache2/,Nginx的日志在/var/log/nginx/,PHP的错误日志可以用phpinfo()查一下路径。排查问题往往就靠这些日志了。


































