PHP 7.3 生产环境部署文档
本文档适用于 CentOS 7 / RockyLinux 8 / Ubuntu 20.04 等常见 Linux 服务器,部署一套 Nginx + PHP 7.3 + PHP-FPM + 常用扩展 的标准生产环境。
一、部署目标
PHP 版本:7.3.x
Web Server:Nginx
进程管理:PHP-FPM
适用场景:Laravel / ThinkPHP / Yii / 自研 PHP 项目
运行模式:
Nginx + PHP-FPM (Unix Socket)
二、系统准备
2.1 系统要求
Linux 64 位
Root 或 sudo 权限
建议配置:
CPU:2 Core+
内存:4G+
磁盘:40G+
2.2 关闭 SELinux(CentOS 系)
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
2.3 基础依赖
yum install -y wget curl unzip git vim net-tools lsof
三、安装 Nginx
3.1 安装
yum install -y nginx
或 Ubuntu:
apt install -y nginx
3.2 启动并设置开机启动
systemctl start nginx
systemctl enable nginx
验证:浏览器访问服务器 IP,应看到 Nginx 欢迎页。
四、安装 PHP 7.3
4.1 添加 PHP 7.3 源(CentOS)
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php73
4.2 安装 PHP 及常用扩展
yum install -y
php php-fpm php-cli php-common php-devel
php-mysqlnd php-pdo php-redis php-mbstring php-json
php-opcache php-gd php-xml php-bcmath php-intl
验证版本:
php -v
五、PHP-FPM 配置(重点)
5.1 运行用户统一
编辑:/etc/php-fpm.d/www.conf
user = nginx
group = nginx
5.2 Socket 模式(推荐)
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
5.3 进程模型(生产建议)
pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 20
5.4 启动 PHP-FPM
systemctl start php-fpm
systemctl enable php-fpm
六、Nginx 与 PHP-FPM 联动
6.1 站点配置示例
server {
listen 80;
server_name example.com;
root /data/www/example/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\. {
deny all;
}
}
6.2 重载 Nginx
nginx -t
systemctl reload nginx
七、PHP 核心参数优化
编辑:/etc/php.ini
memory_limit = 512M
max_execution_time = 60
post_max_size = 50M
upload_max_filesize = 50M
date.timezone = Asia/Shanghai
启用 OPcache:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
重启:
systemctl restart php-fpm
八、目录权限规范
chown -R nginx:nginx /data/www/example
chmod -R 755 /data/www/example
Laravel / ThinkPHP 需额外:
chmod -R 777 storage runtime bootstrap/cache
九、常见问题
9.1 Nginx 502
PHP-FPM 未启动
Socket 路径不一致
权限错误
systemctl status php-fpm
ls -l /run/php-fpm/
9.2 PHP 扩展未生效
php -m
php --ini
十、部署检查清单(上线前)
PHP 版本正确(7.3)
Nginx / PHP-FPM 开机启动
日志目录可写
数据库连接正常
时区正确
OPcache 已开启
十一、建议
PHP 7.3 已停止官方维护,仅建议用于存量项目
新项目建议 >= PHP 8.1
建议配合 Supervisor 管理队列
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu