我有一台CentOs 6.7服务器。
我在使pdo_mysql在apache2上可用时遇到问题。
命令行显示如下:

myserver$ php -m
PDO, pdo_mysql, pdo_sqlite


但是phpinfo()仅显示PDO和pdo_sqlite

我已经在php.ini中包含以下内容

extension=pdo_mysql.so
extension=pdo.so


并使用以下命令重新启动Apache:
sudo服务httpd重新启动

看起来,pdo_mysql安装在其他php上。
当我在服务器上搜索pdo.so和pdo_mysql.so时,我在三个地方得到pdo.so,但是在两个地方得到pdo_mysql。

myserver$ locate pdo.so
/usr/lib64/php/modules/pdo.so
/usr/lib64/php-zts/modules/pdo.so
/var/opt/remi/php56/root/usr/lib64/php/modules/pdo.so

myserver$ locate pdo_mysql.so
/usr/lib64/php/modules/pdo_mysql.so
/usr/lib64/php-zts/modules/pdo_mysql.so


phpinfo()中的Apache安装显示:
    加载的配置文件/opt/remi/php56/root/etc/php.ini

因此,我最近将php升级到php 5.6缺少了pdo_mysql。
其他php安装有它,但我不知道如何强制pdo_mysql安装将其安装到/ var / opt / remi / php56 /

我使用以下命令安装pdo-mysql:

yum install pdo-mysql


因此,将其安装在/ usr / lib64 / php /下,但未将其安装在/ var / opt / remi / php56 /下。感谢您的帮助或建议

最佳答案

似乎您对remi信息库中的2个可用PHP堆栈感到困惑。


php- *软件包=在/ etc中配置的基本软件包
php56-php- *软件包=用于在/ opt中进行配置的并行安装的软件集合


另请参阅FAQ


  并且phpinfo()中的Apache安装显示:加载的配置文件/opt/remi/php56/root/etc/php.ini


这意味着您正在使用SCL版本。所以你需要php56-php-mysqlnd


  我已经在php.ini中包含以下内容


您无需更改php.ini,每个软件包都提供其配置文件以启用扩展(并确保正确的加载顺序,例如pdo“ before” pdo_mysql之前)

我建议您遵循Configuration Wizard结果

10-08 01:12