<p>CentOS 7/8 配 PHP 独立环境需按版本选择路径:CentOS 8 用 dnf module enable php:7.4 安装 php php-cli 等;CentOS 7 启用 Remi 源后安装 php74- 前缀包,均须验证 php -v 或 php74 --version 及扩展加载。</p>

CentOS 7/8 上配 PHP 独立运行环境,核心不是装全,而是避开默认旧版、跳过冲突源、验证即用。直接 yum install php 在 CentOS 7 会装出 PHP 5.4,根本跑不了 Laravel、Composer 或现代扩展;CentOS 8 虽带模块化 PHP,但不显式启用版本(如 php:7.4)就会 fallback 到 7.2 或报错。必须按系统版本走不同路径,否则后续所有调试都白费。
确认系统版本和包管理器类型
这步跳过,后面所有操作都可能装错包或静默失败。
- 执行
cat /etc/redhat-release—— 明确是CentOS Linux release 7.x还是8.x(或Stream) - 执行
dnf --version或yum --version—— CentOS 8 中yum是dnf的符号链接,但命令行为一致;CentOS 7 中只有yum有效 - 执行
dnf repolist enabled | grep -E "(base|appstream|epel)"(CentOS 8)或yum repolist enabled | grep -E "(base|epel)"(CentOS 7)—— 确保基础仓库已启用,否则dnf module list php或yum-config-manager会报空或找不到源
CentOS 8:用 dnf module 启用并安装 PHP 7.4
AppStream 模块是 CentOS 8 唯一推荐方式,避免手动加第三方源、依赖混乱、升级断裂。
- 先运行
dnf module list php,确认输出中有php:7.4行且标记为[d](default)或[e](enabled) - 若未启用,执行
dnf module enable php:7.4;若已启用但显示[x](disabled),需先dnf module reset php再启用 - 安装最小必要包:
dnf install php php-cli php-common php-json php-opcache——php-fpm只在需要 Web 支持时追加安装,CLI 环境无需它 - 注意:
php-mysqlnd、php-mbstring等扩展需单独装,模块默认不包含;装完后用php -m | grep mysqlnd验证是否加载
CentOS 7:启用 Remi 源并安装 php74- 前缀包
CentOS 7 默认源只提供 PHP 5.4,Remi 是唯一长期维护 PHP 7.4 的可信源,但所有包名强制带 php74- 前缀 —— 直接 yum install php 一定错。
立即学习“PHP免费学习笔记(深入)”;
- 顺序执行:
yum install epel-release -y→yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y→yum install yum-utils -y - 关键一步:
yum-config-manager --enable remi-php74—— 不执行这句,yum install php仍会拉取 base 源的 5.4 版本,且无任何警告 - 安装时必须用带前缀的包名:
yum install php74 php74-cli php74-common php74-json php74-opcache——php74-mysqlnd、php74-mbstring同理 - 验证:
php74 --version输出应为PHP 7.4.x;若输php -v仍显示 5.4,说明没启用 Remi 或没装php74主包
验证 CLI 环境与快速测试(不依赖 Web 服务)
独立环境的核心是能立即执行脚本,不需要 Apache/Nginx 启动、不需要改配置、不碰 php.ini 就能用。
- 运行
php -v(CentOS 8)或php74 --version(CentOS 7)—— 看到明确的 7.4.x 或 8.0.x 版本号才算成功 - 检查扩展是否就位:
php -m | grep -E "(json|opcache|mbstring)";若mbstring缺失,补装php-mbstring(CentOS 8)或php74-mbstring(CentOS 7) - 写个测试文件:
echo '<?php echo "OK\n";' > test.php && php test.php—— 输出OK即可,不用建 Web 目录、不用开防火墙、不用配虚拟主机 - 容易被忽略的一点:
php.ini位置由包决定 —— CentOS 8 模块化安装后通常在/etc/php.d/下分散配置;CentOS 7 Remi 安装后主配置是/etc/opt/remi/php74/php.ini,别去改错路径



















