一、前置准备:更新系统 在部署前,确保Ubuntu系统包为最新状态,避免兼容性问题:
sudo apt update && sudo apt upgrade -y
二、安装Web服务器(以Nginx为例) Nginx因高性能常用于PHP应用部署,安装步骤如下:
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx # 设置开机自启
验证Nginx是否运行:浏览器访问服务器IP,若看到Nginx欢迎页面则说明成功。
三、安装PHP及必要扩展 PHP应用需对应版本的PHP解释器和常用扩展(如MySQL数据库交互、GD图像处理等):
sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
php-fpm:PHP FastCGI进程管理器,提升性能;php-mysql:支持MySQL数据库连接;php-imagick处理图片)。四、配置Web服务器处理PHP请求 以Nginx为例,需修改站点配置文件以传递PHP请求至PHP-FPM:
sudo nano /etc/nginx/sites-available/default
找到server块,添加或修改以下内容:
location / {
try_files $uri $uri/ =404; # 尝试匹配文件,不存在则返回404
}
location ~ \.php$ {
include snippets/fastcgi-php.conf; # 引入FastCGI配置
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据PHP版本调整sock路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 设置脚本路径
include fastcgi_params; # 包含通用FastCGI参数
}
保存退出后,测试Nginx配置语法:
sudo nginx -t
若无错误,重新加载Nginx:
sudo systemctl reload nginx
五、部署PHP应用
将本地PHP应用文件上传至服务器文档根目录(默认/var/www/html),例如使用scp:
scp -r /local/path/to/your/app user@server_ip:/var/www/html/
六、设置文件权限
确保Web服务器用户(通常为www-data)有权访问应用文件:
sudo chown -R www-data:www-data /var/www/html/your-app
sudo find /var/www/html/your-app -type f -exec chmod 644 {} \; # 文件权限644
sudo find /var/www/html/your-app -type d -exec chmod 755 {} \; # 目录权限755
七、配置防火墙(可选但推荐) 若使用UFW防火墙,允许HTTP(80)和HTTPS(443)流量:
sudo ufw allow 'Nginx Full'
sudo ufw enable # 启用防火墙
八、测试PHP运行
在应用目录创建info.php文件,验证PHP是否正常工作:
sudo nano /var/www/html/info.php
添加以下内容:
<?php phpinfo(); ?>
保存后,浏览器访问http://server_ip/info.php,若看到PHP信息页面则说明部署成功。
九、优化配置(可选但建议)
php.ini:sudo nano /etc/php/8.1/fpm/php.ini
找到[opcache]部分,修改为:zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=64
opcache.max_accelerated_files=4000
opcache.revalidate_freq=2
www.conf(/etc/php/8.1/fpm/pool.d/www.conf):pm = dynamic
pm.max_children = 50 # 最大子进程数
pm.start_servers = 5 # 启动时的进程数
pm.min_spare_servers = 5 # 最小空闲进程数
pm.max_spare_servers = 35 # 最大空闲进程数
十、使用SSL加密(可选但推荐) 通过Let’s Encrypt免费获取SSL证书,启用HTTPS:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com
按提示完成证书安装,Certbot会自动配置Nginx重定向HTTP至HTTPS。