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


12

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

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

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

Ответы:


10

Вам не нужно помещать муравейник, чтобы сделать с 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.
Скотт Чу

@ScottChu Не совсем, это две разные среды, и в реальной жизни вам часто нужны разные конфигурации для обоих.
RiggsFolly

4

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

Файл конфигурации (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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.