PHP 7.3 生产环境部署

技术博客  2026-03-22
本文档适用于 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 已开启