CentOS 7.5 升级 PHP 至 8.3.36 完整实操记录
📌 背景说明
-
原环境:CentOS 7.5 + Nginx,原 PHP 8.3 通过 Remi 源安装,运行用户为
apache,监听127.0.0.1:9000。 -
痛点:Remi 源已停止为 CentOS 7 (EL7) 提供最新的 PHP 8.3.36 安全更新。
-
最终方案:下载 Plesk 官方仓库中为 CentOS 7 编译的 RPM 包,安装至独立目录
/opt/plesk/php/8.3/,并配置新端口9001与旧版本并存。修改 Nginx 指向新端口,实现无缝升级。
🚀 核心升级步骤
第一步:准备必要的扩展 RPM 包
由于 Plesk 将扩展拆分,需进入 ~/php836-upgrade 目录,下载 WordPress 必备的核心包与扩展包:
-
核心基础:
plesk-php83(核心),plesk-php83-cli(命令行),plesk-php83-fpm(进程管理器) -
数据库:
plesk-php83-mysql(包含 mysqli 和 pdo_mysql),plesk-php83-pdo -
常用扩展:
plesk-php83-gd,plesk-php83-mbstring,plesk-php83-xml,plesk-php83-opcache,plesk-php83-intl,plesk-php83-bcmath -
依赖扩展:
plesk-php83-sodium(PHP 8.3 核心强依赖的加密扩展)
(注:下载地址位于 https://ch.origin.autoinstall.plesk.com/pool/PHP_8.3.36_163/dist-rpm-CentOS-7-x86_64/packages/)
第二步:解决系统底层依赖
安装 plesk-php83-sodium 需要系统的 libsodium 库支持:
bash
复制
下载
sudo yum install -y epel-release sudo yum install -y libsodium libsodium-devel
第三步:本地安装所有 RPM 包
确保所有需要的 .rpm 文件都在当前目录,使用 yum localinstall 自动解决包依赖:
bash
复制
下载
cd ~/php836-upgrade sudo yum localinstall *.rpm -y
安装完成后,Plesk 的 PHP 会独立存放在 /opt/plesk/php/8.3/ 目录。
第四步:配置并启动 Plesk PHP-FPM
-
解决日志权限:让新服务能正常写入日志。
bash
复制
下载
chown -R apache:apache /var/log/plesk-php83-fpm
-
创建并配置进程池:由于 Plesk 默认没有提供
www.conf,需手动创建:bash
复制
下载
vi /opt/plesk/php/8.3/etc/php-fpm.d/www.conf
填入以下内容(注意:使用
apache用户,并监听9001端口避开冲突):ini
复制
下载
[www] user = apache group = apache listen = 127.0.0.1:9001 listen.allowed_clients = 127.0.0.1 php_admin_value[error_log] = /var/log/plesk-php83-fpm/www-error.log php_admin_flag[log_errors] = on pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35
-
启动新服务并设置开机自启:
bash
复制
下载
systemctl start plesk-php83-fpm systemctl enable plesk-php83-fpm # 验证 9001 端口是否成功监听 netstat -tlnp | grep 9001
第五步:修改 Nginx 并切换流量
-
编辑 Nginx 配置文件:
bash
复制
下载
vi /etc/nginx/nginx.conf
-
修改
fastcgi_pass:将所有 WordPress 站点的fastcgi_pass 127.0.0.1:9000;修改为9001。 -
测试并重载:
bash
复制
下载
nginx -t nginx -s reload
第六步:验证与收尾
-
验证版本:在网站根目录创建
phpinfo.php(内容<?php phpinfo(); ?>),浏览器访问确认:-
PHP 版本为 8.3.36。
-
Loaded Configuration File指向/opt/plesk/php/8.3/etc/php.ini。 -
确认
mysqli等扩展已加载。测试完务必删除此文件。
-
-
验证功能:登录 WordPress 后台,测试发文、传图、插件更新等,确认权限正常。
-
防止源冲突:禁用 Remi 的 php83 源,防止未来意外升级冲突。
bash
复制
下载
sudo yum-config-manager --disable remi-php83
⚠️ 踩坑与避坑指南(重要记录)
-
找不到
mysqli扩展:Plesk 的仓库中没有名为mysqli的独立包,其功能包含在plesk-php83-mysql包中,必须下载该包。 -
不能以 root 运行 PHP-FPM:新版本启用了严格的安全模式,如果配置文件写
user = root会报错ERROR: [pool www] please specify user and group other than root。必须使用低权限用户(如原环境的apache)。 -
配置文件路径差异:Plesk 的配置文件在
/opt/plesk/php/8.3/etc/,且默认没有www.conf,需要自己建。原有的/etc/php.ini修改(如上传限制、时区)不会自动同步,需单独在/opt/plesk/php/8.3/etc/php.ini中修改并重启服务。 -
回滚策略:升级过程中绝对不要立刻停止或卸载旧的 9000 端口 PHP-FPM。如果新版本出现任何异常,只需把 Nginx 配置里的
9001改回9000并 reload,即可瞬间回退到旧环境,保证业务不断。
记录时间:2026-10-22
当前状态:新版本 8.3.36 已平稳运行,旧版 9000 端口暂时保留备用。
更多推荐



所有评论(0)