2010-05-14 132 views
9

我在apache2中设置了我的custom.conf文件:如何添加Apache PATH变量的路径?

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开发环境。 谢谢!

回答

2

对我来说,这似乎很奇怪,你正试图从Apache中设置PATH。相反,你应该为你的系统设置PATH。有几种方法可以在Mac OS X要做到这一点:

用户特定
对于单个用户,可以编辑〜/ .profile文件并添加:

export PATH="$PATH":/opt/local/lib/mysql5/bin:/this-is-a-test 

或者你也可以创建/编辑〜/ .MacOSX/environment.plist并以此方式定义PATH。

全系统
在Mac OS X的新版本,有一个名为“的/ etc /路径”,有一个名为“/etc/paths.d”,让您扩展文件夹文件默认路径。基本上,您将在“/etc/paths.d”中创建一个文件,列出您希望添加到默认路径的所有路径。在不支持此功能的Mac OS X版本中(可以根据“/ usr/libexec/path_helper”是否存在来判断),可以通过将上面的export语句放在/ etc/profile中来编辑所有用户的默认路径。

+0

迈克尔,感谢您的回应。我的.profile和.bash_login文件都有指定的路径,但在Apache上运行的PHP无法识别它们。我只是尝试了/etc/paths.d/选项,但这似乎也不起作用,我是否必须重新启动机器才能生效?我重新启动apache - 什么也没有。 – TylerNZ 2010-05-14 21:40:58

+0

@TylerNZ,您需要关闭,然后重新打开终端,然后在您定义这些变量的环境中重新启动Apache。 – 2010-05-14 21:59:33

+0

尝试过,仍然没有...我认为需要为apache或根用户执行特定的操作,哪个apache运行的是? – TylerNZ 2010-05-14 22:07:58

8

Ubuntu的服务器,在/ etc/apache2的/ envvars中, 为CentOS的服务器,在/ etc/SYSCONFIG/httpd的, 补充:

export PATH=<your php cli path> 

,并重新启动Apache

0

这个问题旧的,但如果它帮助其他人,如果您使用Windowsmod_fcgid检查您是否在您的httpd.conf中设置了FcgidInitialEnv,并删除它以采用系统PATH。