CentOS7中rh-php70-php-cli已安装但php命令无法调用,求排查
解决CentOS 7中rh-php70-cli命令找不到及PDO组件无法工作的问题
你遇到的核心问题是rh-php70系列包属于CentOS Software Collections(SCL)提供的版本隔离包,这类包为了不干扰系统默认的软件版本,默认不会将可执行文件路径加入系统全局环境变量,所以直接执行php命令会提示找不到,连带依赖该环境的PDO组件也无法正常加载。下面是具体的解决步骤:
1. 临时激活rh-php70环境(当前SSH会话有效)
在当前终端执行以下命令,激活rh-php70的运行环境:
scl enable rh-php70 bash
激活后,你可以通过php -v验证版本,此时应该会输出7.0.27的版本信息,再执行php test.php就能正常运行脚本了。
2. 永久激活rh-php70环境(用户登录自动生效)
如果希望每次登录服务器都自动激活该环境,可以编辑当前用户的bash配置文件:
- 打开用户目录下的
.bashrc文件:vi ~/.bashrc - 在文件末尾添加一行:
source scl_source enable rh-php70 - 保存退出后,执行
source ~/.bashrc让配置立即生效,或者重新登录SSH会话即可。
3. 验证PDO组件是否正常工作
激活环境后,执行以下命令检查PDO扩展是否加载:
php -m | grep pdo
如果输出包含pdo_mysql(或你需要的PDO驱动),说明组件已正常加载。若仍有问题,可以检查SCL专属的PHP配置文件:
- 主配置文件路径:
/opt/rh/rh-php70/root/etc/php.ini - 扩展配置目录:
/opt/rh/rh-php70/root/etc/php.d/
确保对应的PDO驱动配置文件(如pdo_mysql.ini)存在且未被注释。
备选方案:直接使用绝对路径执行
如果你不想激活环境,也可以直接使用rh-php70的php可执行文件绝对路径来运行脚本:
/opt/rh/rh-php70/root/usr/bin/php test.php
内容的提问来源于stack exchange,提问作者user9719859
相关产品推荐
相关产品推荐

