Ответ 1
Вы можете установить переменную среды PATH в /System/Library/LaunchDaemons/org.apache.httpd.plist
.
Подробнее в docs.
Я пытаюсь получить apache/php, чтобы узнать путь к моему git. Я занимаюсь исследованием и просмотром во всех уголках сети и не могу найти, как это сделать. В принципе, независимо от того, что я пытаюсь, при запуске echo phpinfo();
путь Apache Environment
не изменяется от /usr/bin:/bin:/usr/sbin:/sbin
. И когда я запускаю system('echo $PATH');
в PHP, он читает то же самое.
Информация о системе:
Вот что я пробовал редактировать до сих пор:
Ничего, что я до сих пор не пробовал, изменил переменную $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>
Вы можете установить переменную среды PATH в /System/Library/LaunchDaemons/org.apache.httpd.plist
.
Подробнее в docs.
Вы обновили переменную среды PATH пользователя "_www"? Apache будет считывать переменные среды, которые пользователь запускает сам. Или, похоже, вы не перезапускали apache после обновления переменной среды PATH.
И если вы хотите изменить переменную среды в PHP, getenv() и putenv() могут быть лучшим выбором.
putenv: http://www.php.net/manual/en/function.putenv.php
$path = getenv ('PATH'); putenv ( "PATH = $path:/new_path_that_you_want_to_add" );
Важное примечание для El Capitan (Извинения за новый ответ - у меня недостаточно комментариев для комментариев)
В OSX 10.11 папка /System/Library защищена, поэтому файлы не могут быть отредактированы.
Вам необходимо:
csrutil disable
csrutil enable
Надеюсь, что поможет
для сервера ubuntu, в /etc/apache 2/envvars, для сервера centos, в /etc/sysconfig/httpd, добавить:
export PATH=<your php cli path>
и перезапустите apache
Аналогичная проблема с установкой Derby. То, как я решил, это открыть TextEdit. Выберите "Файл" > "Открыть" в этот момент, нажмите Shift + Command +., это позволит вам просмотреть все документы. Зайдите в каталог пользователя и найдите файл под названием ".profile". Откройте его и добавьте экспортированную строку VARIABLE = Value, например:
экспорт DERBY_HOME =/opt/local/share/java/derby/
Сохраните документ и перезапустите терминал, чтобы узнать, вступили ли изменения.
Я создал эту суть, которая помогла мне разобраться с приведенной выше информацией:
https://gist.github.com/srayhunter/5208619
Моя проблема заключалась в том, что PHP не нашел программу, которую мы установили в /usr/local/bin. Как только мы сделали это, все работало и отлично играло на Mac OSX.