Ответ 1
Per http://php.net/configuration.file:
php.ini выполняется поиск в этих местах (по порядку):
- Специфическое расположение модуля SAPI (директива PHPIniDir в опции командной строки Apache 2, -c в CGI и CLI, параметр php_ini в NSAPI, переменная среды PHP_INI_PATH в THTTPD)
- Переменная среды PHPRC. Перед PHP 5.2.0 это было проверено после упомянутого ниже раздела реестра.
- Начиная с PHP 5.2.0, расположение файла php.ini может быть установлено для разных версий PHP. Следующие ключи реестра проверяются следующим образом:
- [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] и [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], где x, y и z означают основные, младшие и выпускные версии PHP. Если в любом из этих ключей есть значение для IniFilePath, первое найденное будет использоваться как местоположение php.ini(только для Windows).
- [HKEY_LOCAL_MACHINE\SOFTWARE\PHP], значение IniFilePath (только для Windows).
- Текущий рабочий каталог (кроме CLI).
- Каталог веб-сервера (для модулей SAPI) или каталог PHP (иначе в Windows).
- Каталог Windows (C:\windows или C:\winnt) (для Windows) или опция -with-config-file-path для компиляции.
Для CLI лучшим вариантом является либо установка переменной среды $PHPRC
для учетной записи, которая будет выполнять скрипты, либо перекомпиляции PHP с другим параметром конфигурации --with-config-file-path
.
Вы также можете переопределить каталог поиска php.ini для каждого выполнения, указав параметр -c
при вызове PHP:
> php --help Usage: php [options] [-f] [--] [args...] ... -c | Look for php.ini file in this directory