PHP 7.3 生产环境部署文档

AI摘要
本文档是一份针对CentOS 7、RockyLinux 8、Ubuntu 20.04等Linux服务器的生产环境部署指南,属于【知识分享】。内容详细说明了如何部署一套标准的Nginx + PHP 7.3 + PHP-FPM环境,包括系统准备、软件安装、服务配置、权限设置、性能优化及常见问题排查,并指出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 协议》,转载必须注明作者和本文链接
每天一点小知识,到那都是大佬,哈哈
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!