在CentOS系统上升级php-fpm,说起来不算复杂,但不同场景下适用的方法差异还挺大。下面直接拆开聊,先看最快的那条路。

方法一:用yum搞定升级
如果你追求效率,不想折腾编译过程,走yum仓库是最省心的。前提是得先配上合适的源——CentOS默认的官方源里PHP版本一般偏老,所以需要引入EPEL和Remi这两个仓库来获取最新版。
先清理并更新yum缓存:
sudo yum clean all sudo yum update安装EPEL和Remi仓库,然后启用你想要的PHP版本。比如想上PHP 7.4,就执行:
sudo yum install epel-release sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum-config-manager --enable remi-php74 sudo yum update php-fpmRemi仓库里还提供了php80、php81等版本,按需修改
remi-php74那一段就行。更新完成后,别忘重启服务才能生效:
sudo systemctl restart php-fpm
方法二:手动编译,定制化更强
遇到需要特定PHP版本、或者想自己控制编译参数的情况,yum那种“开箱即用”的方式就不够灵活了。这时候手动编译是更靠谱的选择,当然步骤也长一些。
先把基础依赖装上:
sudo yum groupinstall "Development Tools" sudo yum install wget curl git php-devel php-pear下载PHP源码包。这里以PHP 8.0.26为例,其他版本替换URL即可:
cd /usr/src sudo wget https://www.php.net/distributions/php-8.0.26.tar.gz sudo tar -zxvf php-8.0.26.tar.gz cd php-8.0.26配置编译参数。这一步非常关键,决定了PHP-FPM最终支持哪些扩展。以下是一个常用配置示例,包含了MySQL、OpenSSL、cURL等常见扩展:
./configure --prefix=/usr/local/php --with-config-file-path=/etc/php-fpm.d --enable-fpm --with-mysqli --with-pdo-mysql --with-openssl --with-zlib --with-curl --enable-mbstring --enable-zip如果你的项目还有其他特殊需求,比如需要GD、intl等,记得在
./configure里加上对应的--with-*或--enable-*参数。编译并安装:
make && sudo make install这个过程比较耗时,具体取决于机器性能。编译过程中如果报错,通常是因为缺少某个依赖库,根据提示补装即可。
编译完成后,需要把PHP-FPM的配置文件复制到系统标准位置,并设置init脚本:
sudo cp sapi/fpm/php-fpm.conf /etc/php-fpm.d/www.conf sudo cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm sudo chmod +x /etc/init.d/php-fpm启动服务:
sudo service php-fpm start最后别忘了设置开机自启,避免重启后服务掉线:
sudo chkconfig php-fpm on
注意事项
- 备份是底线:升级前,最好把现有的PHP配置文件、以及项目依赖的扩展列表都备一份。万一新版本不兼容,还能快速回退。
- 测试不能省:升级完成后,务必跑一遍项目的核心功能,检查是否有函数弃用、扩展缺失或配置路径变化导致的报错。
- 托管环境需留意:如果你用的是共享主机或某些受限的云服务器,可能没有sudo权限,甚至无法安装自定义仓库。这种情况下,只能联系服务商协助升级,或者考虑迁移到支持更高PHP版本的环境。
按照上面的步骤操作,CentOS上升级php-fpm基本不会翻车。两种方法各有侧重,根据自己的实际需求选一个就行。