как изменить путь в Windows PHP

30167
Guest

Я скачал php, добавил его к своему пути и я пытаюсь включить openssl

php --ini говорит мне, что файл конфигурации - это c: \ windows, в котором ничего не было, я не хочу копировать php в c / windows.

Как я могу изменить это, чтобы указать на мою папку php?

11

3 ответа на вопрос

10
RiggsFolly

Вам не нужно помещать муравейник, чтобы сделать с PHP где-нибудь рядом с c:\windowsпапкой.

Если вы сделаете это, это только испортит вас, когда вы обновите PHP до новой версии.

Если вы вставите компакт-диск в папку, в которой установлен PHP, и выполните php --iniкоманду, он прочитает файл php.ini из папки, в которой вы находитесь.

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

Я думаю, что это также плохая идея поместить папку установки PHP в Windows PATH.

Все, что вам нужно, это небольшой пакетный файл, который настроит ваш PATH на время используемого вами командного окна и поместит его в одну из папок, которая уже находится в Windows PATH.

Итак, если вы установили PHP в C:\phpэтот пакетный файл

phppath.cmd

PATH=%PATH%;C:\php php --ini php -v 

И затем вы просто запускаете этот пакетный файл каждый раз, когда открываете командные окна и хотите запустить некоторый код PHP, и ваша среда будет настроена. Вы также можете добавлять другие вещи в этот пакетный файл, когда вам нужны другие вещи, добавленные в вашу среду, такие как Composer и т. Д.

Да! Это работает для меня. PHP.ini лучше с PHP.exe в одной папке, так что Web и CLI PHP могут ссылаться на один и тот же PHP.ini. Scott Chu 8 лет назад 0
@ScottChu Не совсем, это две разные среды, и в реальной жизни вам часто нужны разные конфигурации для обоих. RiggsFolly 8 лет назад 0
3
Cornelius

Согласно документации:

Файл конфигурации (php.ini) читается при запуске PHP. Для версий PHP серверного модуля это происходит только один раз при запуске веб-сервера. Для версий CGI и CLI это происходит при каждом вызове.

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.

Вы должны попробовать либо PHPRCпеременную среды, либо ключ реестра [HKEY_LOCAL_MACHINE\SOFTWARE\PHP].

0
Gunther

Я попробовал все без успеха. изменил apache httpd.conf, php.ini и несколько других попыток, которые всегда приводили к загрузке файла конфигурации - (нет). Наконец, я скопировал все файлы из каталога php в каталог C: \ Program Files (x86) \ Apache Software Foundation \ Apache2.2 \ bin и все начало работать. В совершенстве. К сожалению, это не идеальное решение, но оно сработало.