无法从php web脚本运行shell脚本

时间:2011-07-08 20:24:12

标签: php unix shell

我正在尝试从php脚本运行shell脚本。

我完全控制了环境(mac上的unix),我应该正确设置所有权限等。

网页脚本位于/htdocs/

shell脚本可以在任何地方执行,所以当我转到shell中的/ htdocs /时,我可以像这样轻松运行它: $ my_shellscript

..但是当我的php脚本(位于htdocs中)尝试调用它时:

shell_exec('my_shellscript');

我一无所获。

我已经证明可以从该位置调用该脚本,并且我已暂时授予完全访问权限以尝试以某种方式使其工作。我疯了,请帮忙。

如果您知道通过网络触发shell脚本的其他方式,那就没问题了。

提前致谢。

4 个答案:

答案 0 :(得分:1)

好吧,我有几个星期相同的问题,解决方案是检查快速是否有权执行您的脚本。您也可以尝试在php cli中运行脚本。

答案 1 :(得分:0)

由于它是一个shellcript,因此需要使用路径前缀来调用它。我的猜测是你需要这样做:

shell_exec('./my_shellscript');

答案 2 :(得分:0)

首先:确保php未在Safe Mode

中运行

接下来的事情:尝试使用exec()函数运行它并使用完整路径(例如/ var / www / htdocs / my_shellscript)

答案 3 :(得分:0)

尝试

echo shell_exec('my_shellscript 2>&1');

将捕获脚本的stderr输出并将其打印出来。如果脚本中的某些内容失败,则在不以交互方式运行时,此输出将会丢失。