it-swarm.com.ru

Переменная среды $ PATH для Apache2 на Mac

Я пытаюсь заставить Apache/php распознать путь к моему git. Я исследовал и искал во всех уголках сети и не могу найти, как это сделать. По сути, независимо от того, что я пытаюсь, при запуске echo phpinfo(); путь Apache Environment не меняется с /usr/bin:/bin:/usr/sbin:/sbin. И когда я запускаю system('echo $PATH'); в PHP, он читает то же самое.

Системная информация:

  • Mac OSX (лев)
  • Apache 2 (работает как _www)
  • PHP 5.3.6

Вот что я пытался редактировать до сих пор:

  • / И т.д./профиль
  • ~/.Bash_profile
  • ~/.Profile
  • / И т.д./путь
  • /etc/path.d/{NEW_FILE}

Ничто из того, что я пробовал, не изменило переменную $PATH. Есть идеи?

РЕШЕНИЕ

Итак, вот окончательное решение. Я редактировал 

/System/Library/LaunchDaemons/org.Apache.httpd.plist

и добавил

<key>EnvironmentVariables</key>
<dict>
    <key>PATH</key>
    <string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin</string>
</dict>
28
Chuck Burgess

Вы можете установить переменную окружения PATH в /System/Library/LaunchDaemons/org.Apache.httpd.plist.

Подробнее в документы .

32
Monolo

Вы обновили переменную среды PATH пользователя '_www'? Apache будет читать переменные окружения от пользователя, который запускает сам. Или, похоже, вы не перезапустили Apache после обновления переменной среды PATH.

И если вы хотите изменить переменную окружения в PHP, лучше использовать getenv () и putenv ().

4
lqez

Важное примечание для El Capitan (извинения за новый ответ - мне не хватает представителя для комментариев)

В OSX 10.11 папка/System/Library защищена, поэтому файлы нельзя редактировать.

Вам нужно:

  • Перезагрузитесь в режим восстановления (удерживайте CMD + r после звука запуска)
  • В режиме восстановления перейдите в меню «Утилиты»> «Терминал».
  • Run: csrutil disable
  • Перезагрузитесь обратно в OSX - теперь вы сможете изменить файлы
  • После этого вернитесь в режим восстановления и запустите csrutil enable

Надеюсь, это поможет

3
Kiers_M

Я создал этот Gist, который выручил меня из информации выше:

https://Gist.github.com/srayhunter/5208619

Моя проблема заключалась в том, что PHP не находил программу, которую мы установили в/usr/local/bin. Как только мы сделали вышеописанное, все заработало и сыграло в Nice на Mac OSX.

1
Ray Hunter

Проблема, аналогичная той, что была у меня при установке Derby. Я решил это, открыв TextEdit. Выберите File> Open, нажмите Shift + Command +. , это позволит вам просмотреть все документы. Перейдите в каталог пользователя и найдите файл с именем «.profile». Откройте его и добавьте строку экспорта VARIABLE = Value, например:

export DERBY_HOME =/opt/local/share/Java/derby /

Сохраните документ и перезапустите свой терминал, чтобы увидеть, вступили ли изменения в силу.

0
Marek

для сервера Ubuntu, в /etc/Apache2/envvars, для сервера centos, в /etc/sysconfig/httpd, добавить:

export PATH=<your php cli path>

и перезапустите Apache

0
diyism