我们可以在php.ini中有2个'extension_dir'吗?

当我安装pdo-pgsql时,扩展名被安装到/usr/lib/php/extensions/no-debug-non-zts-20090626/ ,因此不会自动加载。 在php.ini ,我已经定义了extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626"

php.ini片段

 ; Directory in which the loadable extensions (modules) reside. extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626" zend_extension = "/usr/local/IonCube/ioncube_loader_lin_5.3.so" zend_extension = "/usr/local/Zend/lib/Guard-5.5.0/php-5.3.x/ZendGuardLoader.so" extension = "eaccelerator.so" extension = "pdo.so" extension = "pdo_pgsql.so" extension = "pdo_sqlite.so" extension = "sqlite.so" extension = "pdo_mysql.so" 

修改工作

 ; Directory in which the loadable extensions (modules) reside. extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626" extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20090626" zend_extension = "/usr/local/IonCube/ioncube_loader_lin_5.3.so" zend_extension = "/usr/local/Zend/lib/Guard-5.5.0/php-5.3.x/ZendGuardLoader.so" extension = "eaccelerator.so" extension = "pdo.so" extension = "pdo_pgsql.so" extension = "pdo_sqlite.so" extension = "sqlite.so" extension = "pdo_mysql.so" 
  1. 为什么PECL将pdo-pgsql安装到第二个扩展目录而不是第一个?

  2. build议如上面的第二个代码片段所示,有2个extension_dir

  1. 因为这是通过pecl install时的默认位置,而如果从源代码编译PHP,扩展path应该是/usr/local/lib/php/extensions/no-debug-non-zts-20090626

  2. 据我所知,PHP不支持多个extension_dir ,只能select最后一个。 只需键入php -i | grep eaccelerator php -i | grep eaccelerator来看看会发生什么。

解决方法是将扩展名复制到正确的path。