Подтвердить что ты не робот

$ PATH для переменной apache2 на mac

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

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

  • Mac OSX (Lion)
  • 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>
4b9b3361

Ответ 1

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

Подробнее в docs.

Ответ 2

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

И если вы хотите изменить переменную среды в PHP, getenv() и putenv() могут быть лучшим выбором.

Ответ 3

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

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

Вам необходимо:

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

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

Ответ 4

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

export PATH=<your php cli path>

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

Ответ 5

Аналогичная проблема с установкой Derby. То, как я решил, это открыть TextEdit. Выберите "Файл" > "Открыть" в этот момент, нажмите Shift + Command +., это позволит вам просмотреть все документы. Зайдите в каталог пользователя и найдите файл под названием ".profile". Откройте его и добавьте экспортированную строку VARIABLE = Value, например:

экспорт DERBY_HOME =/opt/local/share/java/derby/

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

Ответ 6

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

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

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