centos系统中php-fpm更新步骤
导读:CentOS 系统中 PHP-FPM 更新步骤 一 准备与版本确认 备份关键数据与配置:包括网站代码、数据库、/etc/php.ini、/etc/php-fpm.conf、/etc/php-fpm.d/*.conf、以及 Nginx/Ap...
CentOS 系统中 PHP-FPM 更新步骤
一 准备与版本确认
- 备份关键数据与配置:包括网站代码、数据库、/etc/php.ini、/etc/php-fpm.conf、/etc/php-fpm.d/*.conf、以及 Nginx/Apache 虚拟主机配置。
- 确认系统与当前组件版本:
- 系统版本:
cat /etc/centos-release - PHP CLI 版本:
php -v - PHP-FPM 服务与进程:
systemctl status php-fpm或ps aux | grep php-fpm - 监听方式:
grep -R "listen" /etc/php-fpm.d/ - Web 端版本核对:创建
info.php输出< ?php phpinfo(); ?>
- 系统版本:
- 选择目标版本:优先选择仍在维护的 PHP 7.4 / 8.0 / 8.1 / 8.2 / 8.3(以应用兼容为准)。
二 通过 Remi 仓库在 CentOS 7 就地升级(推荐)
- 安装 EPEL 与 Remi 仓库,并启用 yum-utils:
sudo yum install -y epel-releasesudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpmsudo yum install -y yum-utils
- 查看可用的 PHP 版本模块:
yum list php\*或yum module list php - 启用目标版本(示例为 PHP 7.4):
sudo yum-config-manager --enable remi-php74 - 执行更新(就地升级,保留原有配置):
sudo yum update -y php* - 重启服务:
sudo systemctl restart php-fpm(如用 Nginx 则同时sudo systemctl restart nginx) - 验证:
php -v、systemctl status php-fpm、ps aux | grep php-fpm、grep -R "listen" /etc/php-fpm.d/ - 说明:若之前使用 Webtatic 源,建议统一迁移到 Remi 以避免混源冲突;就地升级通常保留配置,仍建议对比变更。
三 SCL 方式安装多版本并切换(适合需并行保留旧版)
- 安装 SCL 仓库与 PHP 7.4(示例):
sudo yum install -y centos-release-sclsudo yum install -y rh-php74 rh-php74-php-fpm rh-php74-php-{ cli,common,gd,mbstring,mysqlnd,pdo,xml,zip,bcmath,opcache,intl,soap}
- 启动与开机自启(服务名带 SCL 前缀):
sudo systemctl start rh-php74-php-fpmsudo systemctl enable rh-php74-php-fpm
- 切换 CLI 版本(当前会话):
scl enable rh-php74 bash - Web 调用需与 FPM 版本一致:
- 若 Nginx 通过 TCP 方式:
fastcgi_pass 127.0.0.1:9000;(确认listen = 127.0.0.1:9000在对应版本的 php-fpm 池配置中) - 若使用 Unix 套接字:将
fastcgi_pass指向新版本套接字路径(如/var/opt/rh/rh-php74/run/php-fpm/www.sock),并确保权限与所属用户组正确
- 若 Nginx 通过 TCP 方式:
- 验证:
php74 -v、systemctl status rh-php74-php-fpm、ps aux | grep php-fpm
四 常见问题与回滚
- 更新后网站仍显示旧版本或报 502 Bad Gateway
- 原因:Nginx 仍连到旧版 PHP-FPM(进程或套接字未切换)。
- 处理:
- 确认正在运行的 FPM:
ps aux | grep php-fpm - 检查 Nginx 的
fastcgi_pass是否指向新版本套接字/端口(与listen一致) - 重启 Nginx:
sudo systemctl restart nginx
- 确认正在运行的 FPM:
- 多版本并存导致冲突
- 处理:统一源(优先 Remi),避免混装 Webtatic;必要时停用旧版服务,仅保留一个
php-fpm实例对外提供 FastCGI。
- 处理:统一源(优先 Remi),避免混装 Webtatic;必要时停用旧版服务,仅保留一个
- 回滚方案
- 就地升级后回滚困难,建议基于备份快速还原:
- 停止服务:
sudo systemctl stop php-fpm - 恢复配置文件与网站代码
- 如为模块化安装(SCL),可切回旧 SCL:
scl enable rh-php72 bash并启动对应rh-php72-php-fpm - 重启服务并复核版本
- 停止服务:
- 就地升级后回滚困难,建议基于备份快速还原:
- 其它建议
- 升级前在测试环境验证应用兼容性(如 WordPress 要求 PHP ≥ 7.2.24 等)
- 升级后在 CLI 与 Web 两端同时核对版本,确保一致。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos系统中php-fpm更新步骤
本文地址: https://pptw.com/jishu/760765.html
