【问题标题】:PHP Shell_Exec not working?PHP Shell_Exec 不工作?
【发布时间】:2013-05-27 23:08:14
【问题描述】:

我有以下代码:

$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>";

例如也不起作用。为什么?

【问题讨论】:

    标签: php c linux


    【解决方案1】:

    这肯定是权限问题。确保您尝试使用脚本中的 ./ 命令执行的文件具有 +x 权限。这是之前关于赋予文件可执行权限的帖子:Creating executable files in Linux

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

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

    chmod +x ProgramName
    

    【讨论】:

    • 嗯。当你说它不起作用时,你能在你的问题中包括它给出的错误吗?还是只打印一个空字符串?
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-23
      • 2010-11-09
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      • 1970-01-01
      相关资源
      最近更新 更多