Nano Hash - криптовалюты, майнинг, программирование

Как изменить путь к 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. Это, вероятно, очень часто встречается у людей, использующих вамп.

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


Ответы:


1

Для 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 это проверялось после ключа реестра, указанного ниже.
  • As of PHP 5.2.0, the location of the php.ini file can be set for different versions of PHP. The following registry keys are examined in order:
    • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], where x, y and z mean the PHP major, minor and release versions. If there is a value for IniFilePath in any of these keys, the first one found will be used as the location of the php.ini (Windows only).
    • [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

01.06.2012
  • Итак, это Windows-машина, работающая под управлением Wamp. Как установить $ PHPRC? 01.06.2012
  • это просто переменная среды, google для «окна установки переменных среды» должен предоставить учебные пособия. 01.06.2012

  • 2

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

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

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

    15.10.2014
  • Когда я это сделал, это сработало в первый раз, но когда мне нужно было снова это изменить, мне пришлось удалить часть /php.ini и просто использовать путь, чтобы заставить ее работать. 25.06.2019
  • Если я установлю один и тот же php.ini как для CLI, так и для обычного PHP, тогда я получу много динамических файлов, которые не могут получить загруженные ошибки, когда я выполняю php -i 24.09.2020

  • 3

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

    15.06.2012
  • Это было для меня ключом. Я фактически удалил переменную среды PHPRC и перезагрузился, и по умолчанию php нашел тот же путь, что и текущий рабочий каталог. Спасибо! 01.11.2017

  • 4

    Я пробовал и не смог использовать C: \ YourPathto \ PHP7 \ в качестве переменной среды PHPRC. Но он должен быть установлен на полный путь с именем файла. Я также обнаружил, что мне пришлось выполнить полный перезапуск, чтобы php подобрал новую переменную.

    1. В Windows найдите путь к файлу php.ini, измените и выполните следующую команду в командном окне:

      setx PHPRC "C:\YourPathto\PHP7\php.ini"

      Вы должны увидеть SUCCESS: Specified value was saved.

    2. Затем перезагрузите компьютер (действительно).

    Или отредактируйте переменные окружения обычным способом, а затем перезапустите:

    Для переменной среды PHPRC задано значение C: \ YourPathto \ PHP7 \ php.ini

    01.11.2019

    5

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

    Веб-сервер и интерфейс командной строки и выясните точное местоположение вашего php.ini файла для обеих сторон.

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

    01.06.2012
  • Я уже знаю расположение обоих файлов. Вопрос в том, как их объединить. 01.06.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..