在 OS X 10.7 上,使用 PHP 5.3 作为 Apache 模块与 Apache 2。
当我打开终端并输入时,echo $PATH
我得到:
/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/imagemagick/bin
但是当我getevn('PATH')
在 PHP 中运行时,我得到:
/usr/bin:/bin:/usr/sbin:/sbin
这意味着 PHP 中的大多数调用都exec()
无法找到我想要的命令/二进制文件。我尝试过以下两个httpd.conf
:
SetEnv PATH /opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/imagemagick/bin
PassEnv PATH
都没有任何效果。如何让 PHP/Apache 的 PATH 变量反映我用户的 PATH 变量?(理想情况下,如果我的变量发生变化,Apache 的变量也不需要手动更改。)
答案1
将(指令)更改user
为您的登录用户名。我不建议在生产环境中这样做。然而,在封闭的测试环境中,您可以得到您想要的东西。