Как мне добавить пути к переменной 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, и мне пришлось повторно применить шаги, описанные выше

Другие вопросы по тегам