CentOS 上升级 PHP-FPM 的实用步骤
一 准备与版本确认
- 明确系统版本:执行 cat /etc/centos-release,不同主版本(如 7、8/Stream)仓库与命令略有差异。
- 备份关键数据:备份 /etc/php.ini、/etc/php-fpm.d/*.conf、网站代码与数据库。
- 检查当前版本与进程:
- CLI:执行 php -v 与 php -m 查看版本与已装扩展;
- FPM:执行 php-fpm -v 与 systemctl status php-fpm;
- 站点验证:执行 curl -I https://yourdomain.com,在响应头中核对 Server 字段是否包含期望的 PHP/x.y.z。
- 建议在测试环境验证后再在生产环境执行升级。
二 使用 Remi 仓库升级(推荐,适用于 CentOS 7)
- 安装 EPEL 与 Remi 仓库:
- 执行:sudo yum install -y epel-release
- 执行:sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
- 启用目标 PHP 版本模块(按需选择其一):
- PHP 7.4:sudo yum-config-manager --enable remi-php74
- PHP 8.0:sudo yum-config-manager --enable remi-php80
- PHP 7.3:sudo yum-config-manager --enable remi-php73
- 升级 PHP-FPM 及常用扩展:
- 执行:sudo yum update -y php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml php-pear php-bcmath
- 重启与验证:
- 执行:sudo systemctl restart php-fpm
- 执行:sudo systemctl status php-fpm
- 执行:php -v 与 curl -I https://yourdomain.com 核对版本。
三 其他可选方案
- WebTatic 仓库(适用于 CentOS 6/7):
- 安装源:
- CentOS 7:sudo yum install -y epel-release https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- CentOS 6:sudo rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
- 升级 FPM(示例为 5.6):sudo yum install -y php56w-fpm;其他版本将 56w 替换为 55w/70w 等;
- 重启与验证:sudo systemctl restart php-fpm && php-fpm -v。
- 跨大版本或编译安装(不推荐,除非必须):
- 例如从 5.2 升级到 5.3+ 可选择编译安装,步骤包括配置、编译与替换配置文件;该方式风险较高,需自行维护升级与回滚。
四 常见问题与回滚建议
- 多版本并存与切换:同一系统可安装多个 remi-php 模块,但同一时间仅能启用一个版本;切换版本时先 disable 当前版本再 enable 目标版本,随后 yum update 并重启 php-fpm。
- 扩展一致性:升级后用 php -m 核对扩展是否齐全;按需补装如 php-mysqlnd、php-gd、php-mbstring、php-curl、php-xml、php-bcmath 等。
- 配置文件变更:升级可能带来 php.ini 与 php-fpm.d/*.conf 的变更,建议逐行比对并合并自定义项,避免直接覆盖。
- 快速回滚:若出现问题,立即执行 sudo systemctl stop php-fpm,切换回旧版本模块(如 remi-php73),执行 sudo yum downgrade php-fpm …,恢复备份配置并重启服务。
- 生产建议:先在测试环境演练,升级窗口内保持 Nginx/Apache 与 php-fpm 的平滑切换与回滚预案。