Назад | Перейти на главную страницу

Можем ли мы иметь 2 'extension_dir' в php.ini?

Когда я установил 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. Рекомендуется иметь 2 extension_dir как показано во втором фрагменте кода выше?

  1. Поскольку это место по умолчанию при установке через pecl install, а если вы компилируете PHP из исходного кода, путь расширения должен быть /usr/local/lib/php/extensions/no-debug-non-zts-20090626.

  2. Насколько мне известно, PHP не поддерживает несколько extension_dir, выбирается только последний. Просто введите php -i | grep eaccelerator чтобы увидеть, что происходит.

Обходной путь - скопировать расширения по правильному пути.