Как изменить путь к php.ini в версии PHP CLI

Php, который запускается на веб-сервере и в версии CLI, не использует один и тот же файл php.ini. Если я сделаю команду php --ini , она покажет это

 Configuration File (php.ini) Path: C:\Windows Loaded Configuration File: C:\wamp\bin\php\php5.3.8\php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none) 

в то время как моя веб-версия использует php.ini в C:\wamp\bin\apache\Apache2.2.21\bin\php.ini . Это, вероятно, очень распространено для людей, использующих wamp.

Как изменить загруженный файл конфигурации для чтения из C:\wamp\bin\apache\Apache2.2.21\bin\php.ini поэтому мне не нужно поддерживать 2 разных версии php.ini?

Solutions Collecting From Web of "Как изменить путь к php.ini в версии PHP CLI"

На 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 \ xyz], [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xy] и [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
 Использование: php [options] [-f] [-] [args ...]
 ...
   -c |  Найдите файл php.ini в этом каталоге

Указывая переменную среды PHPRC, чтобы указать на тот же php.ini, что и тот, который использует Apache для меня на Ubuntu

 export PHPRC=/etc/php5/apache2/php.ini 

Или помещайте его в $ HOME / .bashrc для импорта каждый раз, когда запускается cli

Я потратил около 3 часов, пытаясь сделать именно то, о чем спрашивает ваш вопрос. Не мог этого сделать. Я сдался и скопировал этот php.ini в C: \ Windows и изменил мою переменную ENV «PHPRC» на C: \ Windows (и в httpd.conf). Таким образом, оба моих CLI php и Apach php e используют один и тот же файл. Я не мог получить «php -m», чтобы отображать модули, которые я загрузил в свой php.ini, для жизни меня, пока я не сделал это изменение …

попробуйте запустить phpinfo() с обеих сторон

Webserver и CLI и узнать точное местоположение вашего файла php.ini для обеих сторон

и поддерживать только эти файлы