PHP shell_exec仅适用于某些命令

时间:2012-05-17 16:52:45

标签: php mamp

我是一个完整的PHP(LAMP / WAMP / MAMP)菜鸟,我遇到了尝试从Web服务器运行shell命令的新手中常见的问题。我在Mac mini上有一个MAMP设置,我想收集Android命令的输出,

adb devices

所以我可以显示连接到我的mac mini的设备列表。每当我在PHP脚本中将命令传递给shell_exec时,我都会返回一个空字符串。几次网络搜索后,我无法弄清楚如何解决问题。我试过跑

shell_exec("who am i")

返回“Clifton”,即启动MAMP的用户帐户的名称。我确认同一个用户帐户可以执行“adb devices”命令。 Android工具安装在该用户帐户的主文件夹中。我也尝试将绝对路径传递给命令。此时,我确定这是一个配置问题,但我不知道要配置什么或在哪里。

2 个答案:

答案 0 :(得分:7)

试试这个:

shell_exec("adb devices  2>&1")

来源:http://www.php.net/manual/en/function.shell-exec.php#106250

答案 1 :(得分:1)

你应该尝试打开文件/ Applications / MAMP / Library / bin / envvars,然后评论if和else的四行。这看起来像这样:

#if test "x$DYLD_LIBRARY_PATH" != "x" ; then
#  DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#else
#  DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib"

对我来说很好用!我希望你能享受它。祝你好运!