13 apache-2.2
你如何PATH
为Apache2设置环境变量?我试过/usr/sbin/envvars
在 httpd.conf 中设置它SetEnv PATH
(并使用 PassEnv 将它传递给 SSI),但它只是没有被执行。
Ste*_*ski 15
正如其他人所说,您可以通过使用环境变量文件来做到这一点。我将在此答案中提供更多详细信息,并证明其有效。
此环境变量文件必须来自apachectl
. 在我的 Ubuntu 机器上,这个文件位于/etc/apache2/envvars
. 在 RedHat 上,这是在/etc/sysconfig/httpd
. 在 FreeBSD 上,这是在/etc/rc.conf
(我认为)中设置的。作为替代方案,您还可以在启动脚本(/etc/init.d/httpd
或apachectl
等)中设置此信息。但是,我认为如果可能的话,最好不要管启动脚本。最好的地方是在指定的环境变量脚本中。
验证此 envvars 文件的位置。在 Ubuntu 上,/etc/init.d/apache2ctl
显示它来源/etc/apache2/envvars
:
# the path to the environment variable file
test -z "$APACHE_ENVVARS" && APACHE_ENVVARS='/etc/apache2/envvars'
# pick up any necessary environment variables
if test -f $APACHE_ENVVARS; then
. $APACHE_ENVVARS
fi
Run Code Online (Sandbox Code Playgroud)为了查看变量,我使用了Perl printenv.cgi 脚本,并在http://example.org/cgi-bin/printenv.cgi 上提供了它。该脚本向我显示了以下路径:
PATH = /usr/local/bin:/usr/bin:/bin
Run Code Online (Sandbox Code Playgroud)要更改这些变量,我编辑了 envvars 文件:
$ sudo vim /etc/apache2/envvars
Run Code Online (Sandbox Code Playgroud)在此文件中修改您的 PATH。在此示例中,我将附加/opt/local/bin
到我的 PATH。在某些情况下,您可能需要使用export PATH
而不仅仅是PATH
:
export PATH=$PATH:/opt/local/bin
Run Code Online (Sandbox Code Playgroud)重启apache
$ sudo service apache2 restart
* Restarting web server apache2
... waiting ...done.
$
Run Code Online (Sandbox Code Playgroud)查看http://example.org/cgi-bin/printenv.cgi上的结果,现在显示 PATH 现在包含一个新元素:
PATH = /usr/local/bin:/usr/bin:/bin:/opt/local/bin
Run Code Online (Sandbox Code Playgroud)如果上述方法不起作用,则可能会发生异常情况。也许您的脚本忽略或覆盖了 PATH。
归档时间: |
|
查看次数: |
72785 次 |
最近记录: |