2012-02-17 65 views
4

我正在使用nginx和php5-fpm,由於某種原因我的php5-fpm一直在說「模塊'PDO'已經加載到未知的行0」,老實說我沒有想法爲什麼。擴展未加載php.ini中,但它是從裝「--with-配置文件掃描的目錄」,它加載pdo.ini當然和負載pdo.soModule'PDO'already loaded in Unknown line 0

我的PHP的配置是如下

'./configure' '--prefix=/opt/php5' '--with-config-file-path=/etc/php5' '--with-config-file-scan-dir=/etc/php5/conf.d' '--with-curl' '--with-pear' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-xpm-dir' '--with-freetype-dir' '--with-t1lib' '--with-mcrypt' '--with-mhash' '--with-mysql' '--with-mysqli' '--with-pdo-mysql' '--with-openssl' '--with-xmlrpc' '--with-xsl' '--with-bz2' '--with-gettext' '--with-readline' '--with-fpm-user=www-data' '--with-fpm-group=www-data' '--disable-debug' '--enable-fpm' '--enable-cli' '--enable-inline-optimization' '--enable-exif' '--enable-wddx' '--enable-zip' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-mbstring' '--enable-soap' '--enable-sockets' '--enable-sqlite-utf8' '--enable-shmop' '--enable-dba' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg'

我似乎無法找到適合我的解決方案。

我檢查了我的phpinfo(),看看PDO擴展加載,它似乎被加載(甚至當我刪除加載從pdo.ini的pdo.so)然而,當我嘗試使用PDO我得到

Fatal Error: Class 'PDO' not found

我還要指出,我也正在加載suhosin.so,apc.soimagick.so沒有問題。

已安裝軟件包列表(php和mysql)希望這可以提供更多信息來幫助我解決這個問題。值得注意的是,我的配置在過去的6個月裏一直工作順利。我使用VladGH安裝腳本(https://github.com/vladgh/VladGh.com-LEMP)安裝它,因爲它只是我的開發環境。如果需要的話,我非常樂意完成我的服務器的重新安裝,但我寧願將其解決。

dpkg --get-selections | grep php 
    libapache2-mod-php5        install 
    php5-cgi          install 
    php5-cli          install 
    php5-common          install 
    php5-mysql          install 
    php5-suhosin         install 

dpkg --get-selections | grep mysql 
    courier-authlib-mysql       install 
    libdbd-mysql-perl        install 
    libmysql++3          deinstall 
    libmysqlclient16        install 
    mysql-client-5.1        install 
    mysql-client-core-5.1       install 
    mysql-common         install 
    mysql-server         install 
    mysql-server-5.1        install 
    mysql-server-core-5.1       install 
    php5-mysql          install 
    postfix-mysql         install 

在嘗試了很多關於如何解決此問題的解決方案後,我決定在我的機器上完成重新安裝。

+0

是否使用系統提供的包?如果是這樣,哪些安裝? Ubuntu保持他們的PHP版本非常新鮮,甚至可以構建許多PECL擴展,所以通常沒有理由進行自定義編譯... – Charles 2012-02-17 15:22:29

+0

最初我建立了PHP。從那時起,我通過apt-get安裝了以下內容:php5-dev(我隨後刪除並清除),php-pear(已刪除並清除),libmysqlclient-dev和mysql-client(更新),libmysql ++ - dev,phpize, MongoDB的。任何想法,我應該通過包重新編譯PHP嗎? – 2012-02-17 22:23:43

+0

使用發行版提供的二進制包幾乎總是您最好的選擇,而不是編譯自己。每個'php5-mysql','php5-pgsql'和'php5-sqlite'包都提供了PDO和驅動程序。 – Charles 2012-02-17 22:52:28

回答

5

From PHP 5.1,PDO是PHP Core distrib的一部分,因此作爲擴展加載的pdo.so變得多餘。

+0

這就是我的想法,但是當我刪除加載pdo.so時,我得到了「致命錯誤:沒有找到類'PDO'。:\ – 2012-02-17 10:11:05

+0

然而,你應該加載PDO驅動程序擴展。只有基地PDO類是捆綁在PHP – dweeves 2012-02-17 10:28:16

+0

我將如何去加載PDO驅動程序擴展..我認爲這將需要我做擴展= p​​do .so然後拋出錯誤「模塊」PDO'已經加載「?抱歉所有的問題大聲笑,只是不太明白你的意思。 – 2012-02-17 10:33:41

0

在我而言,它幫助:的apt-get安裝PHP5 --reinstall-mysql的

相關問題