不能靠 yum update 直接升级,须用 remi 仓库:先卸载 php-pecl-apcu-bc、php-pecl-mcrypt、php-pecl-redis,再启用 remi-php81 和 remi-safe,安装 php81- 前缀包,最后启动 php81-php-fpm 并验证。

在 CentOS 7 中将 PHP 升级至 8.1,不能靠 yum update 直接升级——系统默认源只提供 PHP 5.4,且 ABI 不兼容、扩展依赖断裂(如 libgd.so.103、libonig.so.105 缺失)会直接导致服务崩溃。正确做法是借助 Remi 仓库精准替换,兼顾安全性和可回滚性。
清理旧扩展与冲突包
PHP 8.1 已移除大量过时扩展接口,残留包会阻断安装:
- 卸载
php-pecl-apcu-bc(强依赖 PHP 7.1 ABI,无 8.1 版本) - 卸载
php-pecl-mcrypt(核心已废弃,改用sodium或openssl) - 卸载
php-pecl-redis(需换为php-pecl-redis5,API 完全重构)
执行命令:
sudo yum remove php-pecl-apcu-bc php-pecl-mcrypt php-pecl-redis -y
启用 Remi 8.1 仓库及底层依赖源
Remi 的 remi-safe 仓库提供 PHP 8.1 所需的更新版系统库(如 libgd、libonig),缺它必报依赖错误:
依次运行:
sudo yum install -y epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php81 remi-safe
验证是否生效:
yum repolist enabled | grep -E "(remi-php81|remi-safe)" —— 应显示两行 active 状态。
安装 PHP 8.1 核心与常用扩展
避免使用 yum remove php* 全删(易误伤系统组件),推荐保留配置、精准覆盖:
执行安装命令:
sudo yum install -y php81 php81-php-cli php81-php-fpm php81-php-mysqlnd php81-php-gd php81-php-mbstring php81-php-curl php81-php-xml php81-php-opcache php81-php-zip php81-php-json
注意:包名带 php81- 前缀,这是 Remi 多版本共存机制的关键标识。
切换并验证运行环境
安装后默认不启用新版本,需手动启用服务并调整 Web 服务器指向:
- 启动 FPM 服务:sudo systemctl start php81-php-fpm
- 设为开机自启:sudo systemctl enable php81-php-fpm
- 若用 Nginx,修改
fastcgi_pass指向 Unix socket:/run/php-fpm/www.sock(路径以/etc/opt/remi/php81/php-fpm.d/www.conf中listen配置为准) - 验证版本:php81 -v(输出应含
PHP 8.1.x)
别忘了检查 php81 -m 确认关键扩展已加载,再用简单脚本测试 json_encode、mb_strlen 等函数是否正常。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











