Когда я установил 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"
Почему PECL установил pdo-pgsql во второй каталог расширения, а не в первый?
Рекомендуется иметь 2 extension_dir
как показано во втором фрагменте кода выше?
Поскольку это место по умолчанию при установке через pecl
install
, а если вы компилируете PHP из исходного кода, путь расширения должен быть /usr/local/lib/php/extensions/no-debug-non-zts-20090626
.
Насколько мне известно, PHP не поддерживает несколько extension_dir
, выбирается только последний. Просто введите php -i | grep eaccelerator
чтобы увидеть, что происходит.
Обходной путь - скопировать расширения по правильному пути.