mac上的apache2的$ PATH环境变量

时间:2011-07-26 17:17:40

标签: php apache macos environment-variables

我试图让apache / php识别我的git的路径。我一直在研究和查看网络的各个角落,但无法找到如何做到这一点。基本上,无论我尝试什么,当我运行echo phpinfo();时,Apache Environment路径都不会从/usr/bin:/bin:/usr/sbin:/sbin更改。当我在PHP中运行system('echo $PATH');时,它会读取相同的内容。

系统信息:

  • Mac OSX(Lion)
  • Apache 2(以_www运行)
  • PHP 5.3.6

这是我到目前为止所尝试编辑的内容:

  • 的/ etc /简档
  • 〜/ .bash_profile中
  • 〜/ .profile中
  • 的/ etc /路径
  • /etc/path.d/ {NEW_FILE}

到目前为止,我没有尝试过更改$PATH变量。有什么想法吗?

所以这是最终的解决方案。我编辑了

/System/Library/LaunchDaemons/org.apache.httpd.plist

并添加了

<key>EnvironmentVariables</key>
<dict>
    <key>PATH</key>
    <string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin</string>
</dict>

6 个答案:

答案 0 :(得分:32)

您可以在/System/Library/LaunchDaemons/org.apache.httpd.plist

中设置PATH环境变量

docs中的更多内容。

答案 1 :(得分:4)

您是否更新了用户'_www'的PATH环境变量? Apache将从用户运行本身读取环境变量。或者,看起来您在更新PATH环境变量后没有重启apache。

如果你想在PHP中修改环境变量,getenv()和putenv()可能是更好的选择。

答案 2 :(得分:3)

El Capitan的重要提示(对于新答案抱歉 - 我没有足够的Rep来评论)

在OSX 10.11上,/ System / Library文件夹受到保护,因此无法编辑文件。

你需要:

  • 重新启动进入恢复模式(启动声音后保持CMD + r)
  • 进入恢复模式后,转到Utilities&gt;终端
  • 执行命令 csrutil disable
  • 重新启动回OSX - 您现在应该可以更改文件
  • 完成后,返回恢复模式并运行 csrutil enable

希望有所帮助

答案 3 :(得分:1)

我创建了这个要点,从上面的信息中帮助我:

https://gist.github.com/srayhunter/5208619

我的问题是PHP没有找到我们在/ usr / local / bin下安装的程序。一旦我们完成了上述操作,它就可以在mac osx上运行并且运行良好。

答案 4 :(得分:0)

对于ubuntu服务器,在/ etc / apache2 / envvars中, 对于centos服务器,在/ etc / sysconfig / httpd中, 添加:

export PATH=<your php cli path>

并重新启动apache

答案 5 :(得分:0)

与我安装Derby的问题类似。我解决它的方法是打开TextEdit。选择文件&gt;此时打开按Shift + Command +。 ,这将允许您查看所有文档。前往用户目录并搜索名为“.profile”的文件。打开它并添加导出VARIABLE = Value行,例如:

导出DERBY_HOME = / opt / local / share / java / derby /

保存文档并重新启动终端以查看更改是否生效。