我正在使用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.so
和imagick.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
在嘗試了很多關於如何解決此問題的解決方案後,我決定在我的機器上完成重新安裝。
是否使用系統提供的包?如果是這樣,哪些安裝? Ubuntu保持他們的PHP版本非常新鮮,甚至可以構建許多PECL擴展,所以通常沒有理由進行自定義編譯... – Charles 2012-02-17 15:22:29
最初我建立了PHP。從那時起,我通過apt-get安裝了以下內容:php5-dev(我隨後刪除並清除),php-pear(已刪除並清除),libmysqlclient-dev和mysql-client(更新),libmysql ++ - dev,phpize, MongoDB的。任何想法,我應該通過包重新編譯PHP嗎? – 2012-02-17 22:23:43
使用發行版提供的二進制包幾乎總是您最好的選擇,而不是編譯自己。每個'php5-mysql','php5-pgsql'和'php5-sqlite'包都提供了PDO和驅動程序。 – Charles 2012-02-17 22:52:28