【问题标题】:Execute linux shell command using PHP script and display in browser?使用 PHP 脚本执行 linux shell 命令并在浏览器中显示?
【发布时间】:2015-07-12 17:02:18
【问题描述】:

Executing unix shell commands using PHP Running shell commands using PHP script Execute a shell command through php and display it in browser? 我已经参考了上面的链接。但是,我在浏览器中显示 linux shell 命令过程时遇到了问题。 我的 linux 命令:top -n 1 并想在浏览器中使用 php 显示它们..

myscript.php
<?php
$var = shell_exec('top -n 1');
echo "<pre>$var</pre>";
?>

现在,当我刷新浏览器时,我无法在浏览器中看到输出。

【问题讨论】:

    标签: php linux shell browser command


    【解决方案1】:

    好的,我明白你的问题 Rana。 linux 中的一些 shell 命令需要与 TERM 环境变量一起设置。 top 就是其中之一。 此外,必须使用 -b 标志才能从输出缓冲区获取结果,在这种情况下是终端... 试试这个代码:

    <?php
    $var = shell_exec('TERM=xterm /usr/bin/top -n1 -b');
    echo "<pre>$var</pre>";
    ?>
    

    【讨论】:

    • 嘿安德烈亚斯,这工作!!。我感谢你的努力。非常感谢。现在我可以使用 php 脚本执行 shell 命令并在浏览器中显示。
    【解决方案2】:

    您的脚本看起来不错,让我们通过更改脚本来做一些非常简单的事情来确保您的环境设置正确。尝试将所有代码替换为

    <?php
    echo "Hello World";
    

    如果可行,则需要进一步调试:您是否在共享网络主机上,PHP 可能配置为禁用脚本执行?查看shell_exec 是否被禁用as detailed here(将字符串exec 替换为shell_exec)。

    【讨论】:

    • 嗨,马丁,我的脚本与 ls -l 和其他 linux 命令配合得很好。但只有 top 命令不起作用。
    【解决方案3】:

    由于用户浏览器不是交互式终端,因此我们必须在每次回发中执行您的最后一条命令,以模拟 linux top 命令。

    【讨论】:

    • 嗨 Andreas,那么我们现在可以执行什么来使用我的 php 脚本执行 top 命令。一旦请求 php script shell_exec 命令,我想在浏览器上显示信息。
    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多