2 файла php.ini

Я обнаружил, что:

Когда я набираю следующее на терминале:

php -i | grep php.ini

Я получаю вывод:

Загруженный файл конфигурации: @ /etc/php5/cli/php.ini

Однако изphpinfo()Я вижу:

Загруженный INI-файл является @ /etc/php5/apache2/php.ini

Какой из них работает сейчас? Как можно иметь дваphp.ini файлы?

 Grumpy06 окт. 2010 г., 13:04
путь на сервере может отличаться от указанного в браузере

Ответы на вопрос(1)

Решение Вопроса

откуда вы запускаете PHP. Если вы запустите его из командной строки, он используетcli/php.ini а такжеapache2/php.ini когда запускается через apache.

Вы исполняетеphpinfo() через браузер, следовательно вы получаете/etc/php5/apache2/php.ini как ответ. Бегphp -r "phpinfo();" | grep "Loaded Configuration" из терминала должен выводиться CLI ini. Та же функция, контекст меняется.

Преимущество этой системы состоит в том, что она позволяет использовать различные конфигурации в зависимости от контекста. Для упрощенного примера вы можете иметьsafe_mode в Apache, но это не нужно в режиме CLI.

Ваш.ini пути на самом деле довольно необычные. Обычно по умолчанию .ini простоphp.ini а CLI .ini называетсяphp-cli.ini и они находятся в одной папке.

Я не специалист по этому вопросу, но это должно быть основной идеей. Если у кого-нибудь есть какие-то исправления, я буду рад их услышать.

 Hrishikesh Choudhari07 окт. 2010 г., 08:54
Ага. Вы правильно поняли. Основная идея различных файлов INI для CLI и Apache заключается в том, что в одной системе может работать несколько виртуальных серверов. Спасибо за Ваш ответ.
 JakeGould07 июл. 2014 г., 00:00
@HrishikeshChoudhari «Основная идея различных INI-файлов для CLI и Apache заключается в том, что в одной системе может работать несколько виртуальных серверов». 100% не так. PHP CLI версияphp.ini для командной строки PHP вещи. Модуль Apachephp.ini для модуля Apache PHP. Две разные и разные вещи.

Ваш ответ на вопрос