Як змінити шлях до PHP Windows ini


12

Я завантажив php, додав його до мого шляху і намагаюся ввімкнути openssl

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

Як змінити це, щоб вказати на папку php?

Відповіді:


10

Вам не потрібно ставити мурашки, що стосуються PHP, десь поблизу c:\windowsпапки.

Якщо ви це зробите, це послужить лише для вас, коли ви оновите PHP до нової версії.

Якщо ви CD на папку, в яку встановлено 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 протягом тривалості використовуваного вікна команд, і помістить його в одну з папок, яка вже є у вікні PATH.

Тож припустимо, що ви встановили PHP в C:\phpце пакетний файл

phppath.cmd

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

Потім ви просто запустіть цей пакетний файл будь-коли, коли ви відкриєте командне вікно і хочете запустити якийсь код PHP, і ваше середовище буде налаштовано. Ви також можете додавати в цей пакетний файл інші речі, коли вам потрібні інші речі, додані до вашого оточення, як композитор тощо.


Так! Це працює для мене. PHP.ini краще з PHP.exe в одній папці, щоб Web і CLI PHP могли посилатися на один і той же PHP.ini.
Скотт Чу

@ScottChu Насправді це 2 різні середовища, і в реальному житті ви часто хочете різних конфігурацій для обох.
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 мажор мінорні та версії версій. Якщо в будь-якому з цих ключів є значення для IniFilePath, перший знайдений буде використаний як розташування php.ini (лише для Windows).
  • [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP], значення IniFilePath (лише для Windows).
  • Поточний робочий каталог (крім CLI).
  • Каталог веб-сервера (для модулів SAPI) або каталог PHP (інакше в Windows).
  • Каталог Windows (C: \ windows або C: \ winnt) (для Windows), або - з параметром часу компіляції - file-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.