

新闻资讯
技术学院CentOS 7 默认 yum 源仅提供 PHP 5.4.16,因 Red Hat 策略不升级主版本;需启用 remi 仓库(如 remi-php74 或 remi-82)并禁用冲突源,配合 epel-release 和 yum-utils 安装指定 PHP 版本及扩展。
CentOS 7 默认的 yum 源里 PHP 版本太老(5.4),直接 yum install php 装不上 7.x 或 8.x —— 你得换源,不是“配置错了”,是原生源压根没提供。
yum install php 装的是 PHP 5.4?CentOS 7 自带的 base 和 updates 仓库只维护与系统生命周期一致的旧版 PHP(5.4.16),安全更新到 2025 年就停了。这不是 bug,是 Red Hat 的策略:PHP 升级交给第三方仓库或 SCL。
yum list php 会看到 php.x86_64 5.4.16-48.el7
php -v 输出也确认是 5.4.xremi 仓库(最稳定、更新及时)remi 是 CentOS/RHEL 生态最成熟的第三方 PHP 仓库,支持多版本共存,且提供 php 主包 + 扩展分包(如 php-mysqlnd、php-opcache)。
yum install epel-release -y
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
yum-config-manager --enable remi-php74
yum install php php-cli php-common php-opcache php-mysqlnd php-gd php-xml php-mbstring -y
注意:yum-config-manager 来自 yum-utils,若报错“command not found”,先 yum install yum-utils -y。
remi 对每个 PHP 大版本都单独建 repo,不能混用。PHP 8.2 需启用 remi-82,不是 remi-php82(后者不存在):
yum-config-manager --enable remi-82
yum-config-manager --disable remi-php74 remi-php80 remi-php81
yum install php php-cli php-fpm php-mysqlnd php-opcache -y
装完后 php -v 应输出 PHP 8.2.x;若还是 7.4,说明 remi-82 没生效,检查 yum repolist enabled | grep remi 是否有 remi-82。
webtatic 和手动编译(除非真有特殊需求)webtatic 已停止维护(最后更新是 2025 年),其 PHP 包在 CentOS 7.9+ 上常因依赖冲突失败;手动编译虽然可控,但你要自己处理 libxml2、openssl、oniguruma 等底层依赖版本,升级和打补丁极其麻烦。
configure: error: off_t undefined; check your library configuration(缺 glibc-devel)php-fpm 无法被 systemd 正确管理,systemctl start php-fpm 报 Failed to start php-fpm.service: Unit php-fpm.service not found
remi 提供完整 systemd unit 文件、logrotate 配置、SELinux 策略,这些细节才是生产环境真正卡人的地方。