Как мне добавить пути к переменной Apache PATH?
Я установил в моем файле custom.conf в apache2 это:
SetEnv PATH $PATH:/opt/local/lib/mysql5/bin:/this-is-a-test
Однако это не работает. Когда я звоню:
$hey = shell_exec('env'." 2>&1"); var_dump($hey);
Я получил:
... PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/opt/local/bin
Кто-нибудь может помочь? Я на Mac, использую Macports для своей среды разработки. Спасибо!
4 ответа
Мне кажется странным, что вы пытаетесь установить PATH из Apache. Вместо этого вы должны установить PATH для вашей системы. Есть несколько способов сделать это в Mac OS X:
Пользователь конкретных
Для одного пользователя вы можете отредактировать ~/.profile и добавить:
export PATH="$PATH":/opt/local/lib/mysql5/bin:/this-is-a-test
Или вы можете создать / отредактировать ~/.MacOSX/environment.plist и таким образом определить путь.
Общесистемную
В более новых версиях Mac OS X есть файл с именем "/ etc / paths" и папка с именем "/etc/paths.d", которая позволяет расширять пути по умолчанию. По сути, вы должны создать файл в /etc/paths.d, в котором перечислены все пути, которые вы хотите добавить к путям по умолчанию. В версиях Mac OS X, которые не поддерживают это (вы можете сказать, основываясь на том, существует ли "/ usr / libexec/path_helper"), можно отредактировать пути по умолчанию для всех пользователей, поместив оператор экспорта выше в / etc / profile.
Для сервера Ubuntu в /etc/apache2/envvars, для сервера centos, в /etc/sysconfig/httpd, добавить:
export PATH=<your php cli path>
и перезапустите apache
Этот вопрос старый, но в случае, если он помогает другим, если вы используете Windows с mod_fcgid
проверьте, есть ли у вас FcgidInitialEnv
установить в вашем httpd.conf
и удалите его, чтобы принять системный PATH.
Macports Apache 2.4 установить
Единственный способ, который я нашел, чтобы заставить это застрять при перезагрузке, это отредактировать macports apache2.plist. Шаги, которые я предпринял:
1.sudo /opt/local/sbin/apachectl stop
2. Редактировать плист: /opt/local/etc/LaunchDaemons/org.macports.apache2/org.macports.apache2.plist
И добавить:
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/bin:/bin:/usr/sbin:/sbin:{add paths here}</string>
</dict>
3.sudo port unload apache2
4.sudo port load apache2
5.sudo /opt/local/sbin/apachectl start
Пути прилипают при перезагрузке. Однако plist, вероятно, будет удален при следующем обновлении macports, которое я сделаю.
РЕДАКТИРОВАТЬ: И это подтвердилось. Я обновился до Mojave со связанным обновлением macports, и мне пришлось повторно применить шаги, описанные выше