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

php cli дополнительные файлы .ini не загружены

Я скомпилировал PHP 5.3, и, похоже, все работает правильно, за исключением запуска PHP из командной строки.

Когда я бегу:

# php --ini

он производит такой вывод:

Configuration File (php.ini) Path: /etc/php5/apache2
Loaded Configuration File:         /etc/php5/apache2/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

Когда я создаю страницу и выводю phpinfo (); Я получаю такой вывод:

Configuration File (php.ini) Path: /etc/php5/apache2
Loaded Configuration File:         /etc/php5/apache2/php.ini
Scan for additional .ini files in: /etc/php5/apache2/conf.d
Additional .ini files parsed:      /etc/php5/apache2/conf.d/curl.ini, /etc/php5/apache2/conf.d/gd.ini, /etc/php5/apache2/conf.d/imagick.ini, /etc/php5/apache2/conf.d/memcache.ini, /etc/php5/apache2/conf.d/mhash.ini, /etc/php5/apache2/conf.d/ming.ini, /etc/php5/apache2/conf.d/mysql.ini, /etc/php5/apache2/conf.d/mysqli.ini, /etc/php5/apache2/conf.d/pdo.ini, /etc/php5/apache2/conf.d/pdo_mysql.ini, /etc/php5/apache2/conf.d/pdo_sqlite.ini, /etc/php5/apache2/conf.d/pspell.ini, /etc/php5/apache2/conf.d/recode.ini, /etc/php5/apache2/conf.d/snmp.ini, /etc/php5/apache2/conf.d/sqlite.ini, /etc/php5/apache2/conf.d/tidy.ini, /etc/php5/apache2/conf.d/xmlrpc.ini, /etc/php5/apache2/conf.d/xsl.ini 

Я не могу понять, почему дополнительные файлы .ini загружаются, когда php выполняется через apache, а не при использовании CLI. У кого-нибудь есть идеи?

Вот урезанная конфигурация, которую я использовал для компиляции PHP:

'./configure' \
'--prefix=/usr' \
'--with-config-file-path=/etc/php5/apache2' \
'--with-config-file-scan-dir=/etc/php5/apache2/conf.d'

Мне нужно, чтобы драйвер PDO mysql был загружен для чего-то, что я запускаю в командной строке, и я предполагаю, что это корень проблемы.

Любые предложения будут приняты.

Я не знаю, почему config-file-scan-dir не используется при запуске php в cli (вы уверены, что загружаемый вами двоичный файл является хорошим? Я имею в виду тот, который вы перестраиваете).
Но вы можете использовать php -c /etc/php5/apache2/conf.d или установить PHP_INI_SCAN_DIR на /etc/php5/apache2/conf.d в качестве временного решения.

У меня такая же проблема. Просто проверьте владельца и права доступа для каждого файла в /etc/php5/conf.d/. Он должен принадлежать пользователю root и быть доступным для чтения другим пользователям.

Проблема заключалась не в том, что php в итоге не включал дополнительные файлы .ini.

Я перекомпилировал php и заметил, что команда make install не завершилась. Произошла ошибка:

apxs:Error: Activation failed for custom /etc/apache2/httpd.conf file..
apxs:Error: At least one `LoadModule' directive already has to exist..

Поскольку Apache поставляется с apache2.conf, который включает директивы модуля и httpd.conf, httpd.conf фактически пуст.

Просто добавив:

# Dummy LoadModule directive to aid module installations
# LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so

to httpd.conf позволяет apxs работать без ошибок, и полная установка php завершается успешно.

Затем драйверы PDO были доступны как через интерфейс командной строки, так и через Apache.

Так как радиус предположил, по сути, я не использовал хороший двоичный файл. Спасибо за вашу помощь.