必须通过Remi仓库精准切换:先安装epel-release和remi-release-7.rpm,禁用其他PHP源并启用remi-php82与remi-safe,卸载php-common后安装php82前缀包,保留配置文件并重启php-fpm与Web服务。

CentOS 7 升级 PHP 到 8.2 不是简单执行 yum update,而是要通过 Remi 仓库实现版本切换,同时保留配置、避免服务中断。关键在于“禁用旧流、启用新流、精准安装、保留配置”,而不是暴力卸载再重装。
确认当前环境并备份
先检查现状,再动手:
- 运行
php -v查看当前版本(大概率是 5.4 或 7.x) - 运行
php -m记录已启用的扩展,后续需对应安装新版等效模块 - 查看 Web 服务类型:
systemctl list-units | grep -E '(httpd|nginx|php-fpm)' - 备份核心文件:
/etc/php.ini、/etc/php-fpm.d/www.conf、虚拟主机配置等 - 生产环境务必在测试机走通全流程,尤其验证 WordPress、Laravel 等应用是否报错(如废弃函数、严格类型警告、JSON 扩展行为变化)
启用 Remi-PHP82 仓库
Remi 是 CentOS 7 上最稳定可靠的 PHP 多版本源,PHP 8.2 已正式支持:
修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。
- 安装 EPEL(必需依赖):
sudo yum install -y epel-release - 安装 Remi 源:
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm - 禁用所有旧 PHP 流:
sudo yum-config-manager --disable 'remi-php*' - 仅启用 PHP 8.2:
sudo yum-config-manager --enable remi-php82 - 验证是否生效:
yum repolist enabled | grep php应看到remi-php82在线
卸载旧版 + 安装新版(不丢配置)
直接 yum remove php* 易误删依赖,推荐“软替换”方式:
立即学习“PHP免费学习笔记(深入)”;
- 先卸载
php-common(它会连带移除大部分旧 PHP 包,但保留php.ini等配置):sudo yum remove -y php-common - 安装 PHP 8.2 核心及常用扩展:
sudo yum install -y php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-json php-opcache php-bcmath php-curl php-zip php-devel - 若需 intl、redis、xdebug 等扩展,单独安装:
sudo yum install -y php-intl php-pecl-redis php-pecl-xdebug - PHP 配置仍沿用
/etc/php.ini,可对比新版默认值微调(如opcache.enable=1、date.timezone必须设置)
重启服务并验证结果
确保 PHP-FPM 和 Web 服务协同工作:
- 启动或重启 PHP-FPM:
sudo systemctl start php-fpm或sudo systemctl restart php-fpm - 重启 Web 服务:
sudo systemctl restart httpd(Apache)或sudo systemctl restart nginx(Nginx) - 命令行验证:
php -v应输出PHP 8.2.x;php --modules | grep opcache确认扩展加载正常 - 网页验证:在 Web 根目录建
info.php,内容为<?php phpinfo(); ?>,浏览器访问确认版本与扩展列表


















