必须启用epel与remi仓库并安装php74-php等带前缀包,而非无前缀php;因centos 7默认仅提供php 5.4,直接yum install php会安装旧版或冲突,且remi为避免冲突将php 7.4包全加php74-前缀。

CentOS 7 默认不支持 PHP 7.4,必须借助 Remi 仓库。但直接运行 yum install php 仍会装上系统自带的 5.4 版本——根本原因是包名冲突、仓库未启用、路径未识别三重问题叠加。关键不在“装没装”,而在“装对不对”。
确认并启用 remi-php74 仓库流
Remi 在 CentOS 7 上采用模块流(stream)机制,remi-php74 是一个独立仓库流,不是简单启用 remi 就行。
- 先确保基础工具就位:
yum install -y yum-utils epel-release - 启用 PowerTools(CentOS 7.6+ 必需):
yum-config-manager --set-enabled PowerTools - 安装 Remi 源:
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm - 显式启用 PHP 7.4 流:
yum-config-manager --enable remi-php74(注意不是--enable remi) - 验证是否生效:
yum repolist enabled | grep php74,应看到类似remi-php74的输出行
安装带前缀的 php74-php 主程序包
Remi 为避免与系统默认 PHP 冲突,所有 7.4 相关包都加了 php74- 前缀。不指定前缀,yum 就不会拉取它们。
- 卸载旧版(如有):
yum remove php* -y,防止文件路径冲突 - 安装核心包:
yum install -y php74-php php74-php-cli php74-php-fpm - 检查二进制是否存在:
ls /usr/bin/php74,存在则运行/usr/bin/php74 --version确认版本 - 如需全局用
php命令调用 7.4,建议用 alternatives 管理:alternatives --install /usr/bin/php php /usr/bin/php74 74alternatives --config php(选 74)
解决常见依赖报错(如 mbstring、xml、zip 缺失)
PHP 扩展缺失是 GLPI、Discuz!、WordPress 等应用启动失败的主因,错误如 Call to undefined function mb_strlen() 或 Failed loading 'opcache'。
- 扩展包也带前缀,必须同步安装:
yum install -y php74-php-mbstring php74-php-xml php74-php-zip php74-php-opcache php74-php-gd php74-php-mysqlnd php74-php-curl - 配置文件路径不同:Remi 的
php.ini默认在/etc/opt/remi/php74/php.ini,不是/etc/php.ini - FPM 配置位于
/etc/opt/remi/php74/php-fpm.d/www.conf,启动前务必检查该路径下的配置是否启用 - 启动服务:
systemctl start php74-php-fpm,而非php-fpm(后者可能指向旧版)
验证与收尾
安装完成后别急着部署应用,先做两件事:
- 执行
/usr/bin/php74 -m | grep -E "(mbstring|opcache|mysqlnd)",确认关键扩展已加载 - 运行
/usr/bin/php74 -v输出应为PHP 7.4.33(当前 Remi 提供的稳定末版) - 若 Web 服务用 Apache,需加载模块:
yum install -y php74-php并重启 httpd;若用 Nginx,则确保fastcgi_pass指向127.0.0.1:9000或 socket 路径(如/var/opt/remi/php74/run/php-fpm/www.sock)
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











