CentOS7下安装PDO驱动后未在phpinfo中显示启用的问题求助

我已安装
rh-php70-pdo.x86_64包并重启httpd.service,但PDO驱动未在phpinfo()中显示为启用状态。
我也尝试安装php-pdo.x86_64,但仍未成功。
我的系统为CentOS 7。
我来帮你排查这个问题,CentOS 7上的rh-php70是通过**软件集合(SCL)**安装的独立PHP环境,和系统默认的PHP 5.4完全隔离,你遇到的问题大概率是HTTPD没有正确加载rh-php70的PHP模块导致的,试试下面的步骤:
1. 确认HTTPD是否加载了rh-php70的配置
CentOS 7默认HTTPD会加载系统PHP的配置,而rh-php70的配置需要手动关联:
# 检查是否已有rh-php70的HTTPD配置 ls /etc/httpd/conf.d/ | grep php70
如果没有任何输出,执行以下命令创建软链接,让HTTPD加载rh-php70的PHP模块:
ln -s /opt/rh/rh-php70/root/etc/httpd/conf.d/rh-php70-php.conf /etc/httpd/conf.d/
2. 验证rh-php70的PDO扩展本身是否正常
先切换到rh-php70的环境,用CLI模式检查PDO状态,排除包安装问题:
# 启用rh-php70环境并查看已加载的模块 scl enable rh-php70 'php -m | grep pdo'
如果输出包含pdo、pdo_mysql这类关键词,说明PDO扩展本身是正常的;如果没有输出,重新安装相关包:
yum reinstall rh-php70-pdo rh-php70-pdo-mysql
3. 重启HTTPD并验证结果
配置完成后,重启HTTPD服务:
systemctl restart httpd.service
然后刷新你的phpinfo页面,搜索“PDO”关键词,应该就能看到PDO驱动的启用状态了。如果还是不行,查看HTTPD的错误日志找线索:
tail -20 /var/log/httpd/error_log
4. 检查rh-php70的php.ini配置(可选)
虽然SCL包会自动配置扩展,但可以手动确认一下:
cat /opt/rh/rh-php70/root/etc/php.ini | grep -i "pdo\.so"
确保没有看到;extension=pdo.so这种带注释的行,如果有,去掉分号保存后重启HTTPD即可。
内容的提问来源于stack exchange,提问作者user9719859
相关产品推荐
相关产品推荐

