我正在使用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