PHP Shell_Exec无法正常工作?

时间:2013-06-01 04:12:25

标签: php c linux

我有以下代码:

$output = shell_exec("./Program $var1 $var2");
echo "<pre>$output</pre>";

它不起作用,但

$output = shell_exec("ls");
echo "<pre>$output</pre>";

确实有效。

$output = shell_exec("top");
echo "<pre>$output</pre>";
例如,

也不起作用。为什么呢?

2 个答案:

答案 0 :(得分:1)

这肯定是权限问题。确保您尝试使用脚本中的./命令执行的文件具有+ x烫发。这是关于提供文件可执行权限的先前线程:Creating executable files in Linux

如果文件已具有+ x权限,则运行命令的脚本可能存在权限问题。无论哪种方式,如果你可以运行ls而不是./和top,则必须是权限。

编辑:我给出的链接,我意识到有很多关于Perl和bash脚本的信息。重要的是,使文件可执行的命令是

chmod +x ProgramName

答案 1 :(得分:0)

根据$ var1和$ var2的内容,您可能需要围绕它进行escapeshellarg调用。

 $output = shell_exec("./Program ".escapeshellarg($var1)." ".escapeshellarg($var2));

即使它不起作用也可能是个好主意。还要确认您的路径是否正确。也许用file_exits('./Program');支票