2016-03-15 77 views
0

我有一個CentOs 6.7服務器。 我有問題可以在apache2上使用pdo_mysql。 以下是命令行:pdo_mysql在centos上不可用6.7

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 /選擇/雷米/ php56/

我用下面安裝PDO MySQL的:

yum install pdo-mysql 

因此,它將它安裝在/ usr/lib64/php /下,但不在/ var/opt/remi/php56下/任何幫助或建議都會被讚賞

+0

這是更適合http://serverfault.com/ – cmorrissey

+0

有2個.ini文件:命令行和SAPI。 'php -i'只加載cli配置,很可能你的SAPI(in-webserver)配置不會**加載pdo。 php -i/phpinfo會告訴你哪個.ini文件被加載。一定要檢查一下。 –

+0

我有兩個.ini文件。 \t /opt/remi/php56/root/etc/php.ini和/etc/php.ini 我編輯了兩者並將pdo_mysql.so添加到兩者。仍然沒有運氣。 我也試過將extension_dir改爲/ usr/lib64/php/modules /,但仍然沒有運氣! – user1322977

回答

1

看起來你被2個PHP在remi存儲庫中堆疊。

  • PHP- *與配置包=基本包在/ etc
  • php56-PHP- *用於與配置並行安裝軟件包=軟件集合中/停用

還請參閱FAQ

和phpinfo()中的Apache安裝顯示:加載的配置文件/opt/remi/php56/root/etc/php.ini

這意味着您使用的是SCL版本。因此,你需要php56-PHP-mysqlnd

我已經包含以下php.ini中

你從來沒有改變php.ini中,每包提供它的配置文件,使擴展(和確保正確的加載順序,如PDO PDO_MYSQL「之前」)

我建議你遵循Configuration Wizard結果

+0

感謝您的回覆。這些文件對於更好地理解Remi非常有幫助。 – user1322977

0

好吧,我終於找到了解決問題的辦法。 我試圖安裝缺少的pdo_msyql擴展名,但yum說這個軟件包不可用。 然後通過安裝下面的問題解決了。

yum install php-ZendFramework-Db-Adapter-Pdo-Mysql.noarch 

感謝大家的幫助。