CentOS升级PHP到最新版的步骤(推荐使用Remi仓库)
升级前务必备份网站文件(如/var/www/html)、数据库(如MySQL的mysqldump导出)和现有PHP配置文件(如/etc/php.ini、/etc/php-fpm.conf),避免升级过程中数据丢失。
EPEL(Extra Packages for Enterprise Linux)仓库提供额外的软件包支持,确保系统具备安装PHP扩展的基础依赖:
sudo yum install epel-release -y
Remi仓库是CentOS系统下获取最新版PHP的核心第三方仓库,支持多版本PHP切换:
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
安装完成后,通过dnf repolist | grep remi(或yum repolist | grep remi)验证仓库是否添加成功,应看到remi-safe和remi-phpXX(XX为目标PHP版本)等仓库。
根据需求选择要升级的PHP版本(如PHP 8.1、8.2),使用dnf module命令启用对应模块:
dnf module list php
sudo dnf module enable php:remi-8.1 -y
若使用yum(CentOS 7/8),则用:sudo yum-config-manager --enable remi-php81 -y
注意:启用模块后会自动重置PHP相关模块状态,确保后续安装的是目标版本。
使用包管理器安装最新版PHP及常用扩展(如php-cli、php-fpm、php-mysqlnd等):
sudo dnf install php php-cli php-fpm php-mysqlnd php-json php-opcache php-gd php-mbstring php-curl php-xml php-bcmath php-zip -y
若需安装其他扩展(如Redis、MongoDB),可通过dnf search php81-查找对应包(如php81-php-redis),再用dnf install安装。
运行以下命令检查PHP版本,确认升级成功:
php -v
输出应显示目标版本(如PHP 8.1.x (cli)),若仍显示旧版本,可尝试清除YUM/DNF缓存后重新安装:
sudo dnf clean all && sudo dnf install php -y
sudo systemctl restart php-fpm
sudo systemctl restart httpd
sudo systemctl restart nginx php-fpm
若确认新版本运行正常,可通过以下命令卸载旧版本(以PHP 7.4为例):
sudo dnf remove php74 php74-php-cli php74-php-fpm -y
或禁用旧版本模块(避免冲突):
sudo dnf module disable php:7.4 -y
dnf module enable报错“Repository not found”?dnf repolist确认remi-safe存在,重新安装Remi仓库。mysqli)?dnf search php81-查找对应扩展包(如php81-php-mysqli),再用dnf install安装。create_function()),或安装缺失的扩展。提示:若需切换多个PHP版本,可通过dnf module list php查看可用版本,再用dnf module enable切换,无需重复安装。