发布于2026-07-03 阅读(0)
扫一扫,手机访问
在Ubuntu上部署PHP项目,说起来其实不算复杂,但新手如果不熟悉流程,容易在权限、配置上栽跟头。下面我把整个流程梳理一遍,从系统更新到最终测试,每一步都尽量说清楚。不管你用Apache还是Nginx,MySQL还是PostgreSQL,这里都有对应的操作。

先把系统拉到最新状态,这一步可以说是基础中的基础:
sudo apt update
sudo apt upgrade -y
需要安装的东西无非三件套:Web服务器(Apache或Nginx)、PHP运行时、数据库(MySQL或PostgreSQL)。根据你的偏好二选一就行。
如果选Apache,一条命令搞定:
sudo apt install apache2 -y
sudo apt install php libapache2-mod-php php-mysql -y
更偏好Nginx的话,那就搭配PHP-FPM:
sudo apt install nginx -y
sudo apt install php-fpm -y
安装完只是第一步,还得让服务器知道怎么处理PHP请求。
打开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的默认站点文件:
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
项目一般离不开数据库,这里给出MySQL和PostgreSQL两种常见选择。
sudo apt install mysql-server -y
sudo mysql_secure_installation
sudo apt install postgresql -y
sudo systemctl start postgresql
sudo systemctl enable postgresql
项目代码可以通过FTP、SCP或者直接Git克隆的方式上传。对于Apache,默认根目录是/var/www/html;对于Nginx,可以放在/var/www/your_project_directory,然后自己配置好root指向。
权限问题往往是部署过程中最头疼的地方,最好一次性设好:
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 {} \;
根据项目需求创建数据库和对应的用户,这里也分别给出MySQL和PostgreSQL的命令。
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;
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;
有些项目需要额外的PHP扩展,比如处理多字节字符串、XML或cURL。根据实际情况安装:
sudo apt install php-mbstring php-xml php-curl -y
打开浏览器,输入服务器IP或者绑定的域名,如果能看到项目页面正常加载,那说明整个流程走通了。万一出问题,别忘了查看错误日志——Apache的日志一般在/var/log/apache2/,Nginx的日志在/var/log/nginx/,PHP的错误日志可以用phpinfo()查一下路径。排查问题往往就靠这些日志了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8