【发布时间】:2011-03-26 19:14:44
【问题描述】:
我正在尝试让 PHP 在 OS X 上进行系统调用。但是,它似乎无法找到系统路径中包含的任何内容。
当我跑步时...
putenv("PATH={$_SERVER["PATH"]}:/usr/local/bin");
...就在系统调用之前,它可以工作。这不是一个实际的解决方案,因为执行系统调用的代码是一个插件,所以我宁愿不接触会使其不兼容的源代码来更新。
Apache2 以与我登录时相同的用户身份运行,因此理论上它可以访问与我相同的命令。
此外,相同的代码在我的 Ubuntu 机器上也能正常工作。
【问题讨论】:
-
getenv("PATH")说什么?可能 Mac OS 上没有为 PHP/Apache 用户设置路径? -
好吧,运行 , 和 输出 /usr/bin:/bin:/usr/sbin:/sbin、(我的用户)和 /usr/bin:/bin:/usr/sbin:/sbin。从控制台运行“echo $PATH”作为 apache 用户输出 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git /bin:/usr/X11/bin
标签: php macos path system-calls