我有一台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结果