在 CentOS 上切换 PHP 版本,常见做法取决于 你是用的什么方式安装的 PHP。下面按 最常见场景 给你一套完整说明。
php -v
如果你是通过 Remi 仓库 安装的 PHP(这是 CentOS 最常见方式),切换版本非常简单。
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum list php*
或:
yum repolist | grep remi
yum-config-manager(推荐)例如切换到 PHP 8.1:
yum-config-manager --enable remi-php81
其他版本示例:
yum-config-manager --enable remi-php74
yum-config-manager --enable remi-php80
yum-config-manager --enable remi-php82
切换仓库后,需要重新安装 PHP:
yum install php php-cli php-fpm php-mysql php-json php-xml php-mbstring
或只更新:
yum update php*
systemctl restart php-fpm
systemctl restart httpd # Apache
# 或
systemctl restart nginx
php -v
如果你之前用的是 SCL 方式:
scl list-installed
scl enable rh-php74 bash
写入 .bashrc 或 profile。
⚠️ SCL 方式现在 不如 Remi 常用。
如果你是自己 ./configure && make 安装的 PHP:
which php
/usr/local/php/7.x/bin/php
切换方式:
ln -sf /usr/local/php/8.x/bin/php /usr/bin/php
⚠️ 风险高,不建议生产环境使用。
yum install php-fpm
systemctl enable php-fpm
确保 fastcgi_pass 指向正确的 PHP-FPM socket:
fastcgi_pass unix:/run/php-fpm/www.sock;
php -v 没变?which php
可能是 PATH 问题,或没重启服务。
Remi 默认 不支持多版本并存,SCL 才支持。
yum-config-manager --enable remi-php81
yum update php*
systemctl restart php-fpm
php -v
如果你愿意,可以告诉我:
我可以给你 精确到命令级别 的指导。