centos 7 默认 yum 源仅提供 php 5.4.16,因 red hat 策略不升级主版本;必须启用 remi-php74 仓库并安装 php74-php 等带前缀包,而非无前缀 php,否则仍会安装旧版或冲突。

yum install php 肯定装不到 7.4 —— 必须换源,且不能只装 php 包,否则会拉取系统默认旧版本或冲突。
为什么 yum install php 总是装成 5.4?
因为 CentOS 7 base 仓库没更新 PHP 主版本,php 包名指向的是系统自带的旧版。Remi 仓库为避免冲突,把 PHP 7.4 的所有包都加了前缀:php74-php、php74-php-fpm 等。不显式指定,yum 就不会碰它们。
- 运行
yum list available | grep "^php74"可看到完整包列表 -
php(无前缀)和php74-php是两个完全独立的软件包,文件路径、二进制名、配置目录均不重叠 - 如果之前装过旧版 PHP,先
yum remove php*再操作,否则可能因文件冲突导致安装失败
启用 remi-php74 流后仍提示 No package php74-php-fpm
常见原因是 yum-config-manager --enable remi-php74 没生效,或仓库本身未启用。Remi 在 CentOS 7 上依赖模块流(stream)机制,但部分老镜像或最小化安装可能缺失 yum-utils 或 PowerTools 仓库。
- 确认已安装:
yum install -y yum-utils epel-release - 启用 PowerTools(CentOS 7.6+ 必需):
yum-config-manager --set-enabled PowerTools - 安装 Remi RPM 后,必须运行:
yum-config-manager --enable remi-php74,不是--enable remi - 验证是否真启用:
yum repolist enabled | grep php74,应输出类似remi-php74的行 - 若仍不行,手动编辑
/etc/yum.repos.d/remi-php74.repo,确保enabled=1
安装后 php --version 显示 5.4 或命令不存在
说明你没装对主程序包,或者 PATH 没包含 Remi 的二进制路径。Remi 的 PHP 7.4 默认安装到 /usr/bin/php74,而不是覆盖系统 /usr/bin/php。
- 正确安装命令是:
yum install -y php74-php php74-php-cli php74-php-fpm - 检查二进制是否存在:
ls /usr/bin/php74,存在则运行/usr/bin/php74 --version - 如需全局用
php命令调用 7.4,可创建软链:ln -sf /usr/bin/php74 /usr/bin/php(注意:这会影响所有依赖系统php的脚本) - 更安全的做法是用
alternatives管理:alternatives --install /usr/bin/php php /usr/bin/php74 74,再alternatives --config php
php74-php-fpm 启动失败,日志报 failed to load configuration file
Remi 的 FPM 配置默认放在 /etc/opt/remi/php74/ 下,不是传统 /etc/php-fpm.d/。服务单元文件也不同,必须用对应的服务名启动。
- 启动命令不是
systemctl start php-fpm,而是:systemctl start php74-php-fpm - 主配置文件路径是:
/etc/opt/remi/php74/php-fpm.conf - 站点配置在:
/etc/opt/remi/php74/php-fpm.d/www.conf - 检查服务状态:
systemctl status php74-php-fpm,看错误是否指向配置路径不对 - 修改完配置后,必须
systemctl reload php74-php-fpm,不是 restart(reload 才重读配置)
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











