在 CentOS 上配置 PHP 多版本共存,常见有三种方案,按推荐程度从高到低说明。
适合 CentOS 7 / 8 / Stream,可以实现 PHP 7.2 / 7.4 / 8.0 / 8.1 / 8.2 等共存。
# CentOS 7
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# CentOS 8 / Stream
dnf install -y epel-release
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
yum repolist all | grep php
# 或
dnf module list php
yum install -y php74 php74-php-fpm php74-php-mysql php74-php-gd
yum install -y php81 php81-php-fpm php81-php-mysql php81-php-gd
注意:Remi 包名是
php74-php-fpm、php81-php-fpm
systemctl start php74-php-fpm
systemctl start php81-php-fpm
查看端口:
netstat -lntp | grep php
默认端口一般是:
90009001(或自行配置)编辑:
vi /etc/opt/remi/php81/php-fpm.d/www.conf
修改:
listen = 127.0.0.1:9001
重启:
systemctl restart php81-php-fpm
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9001;
include fastcgi_params;
}
不同站点可使用不同 PHP 版本。
适合 生产环境隔离
docker run -d -p 9001:9000 php:7.4-fpm
docker run -d -p 9002:9000 php:8.1-fpm
优点:
./configure --prefix=/usr/local/php81
make && make install
❌ 维护成本高
✅ 可深度定制
php -v
如果你想临时切换系统默认 PHP:
update-alternatives --config php
php74 -v
php81 -v
或:
/opt/remi/php81/root/usr/bin/php -v
✅ 检查 fastcgi_pass 端口
✅ 确认 PHP-FPM 正在监听
| 场景 | 建议 |
|---|---|
| 多站点多 PHP | Remi + PHP-FPM |
| 容器化 | Docker |
| 开发测试 | Docker |
| 老系统兼容 | Remi |
如果你愿意,可以告诉我:
我可以直接给你一套 完整可复制的配置。