使用 PHP 脚本执行 linux shell 命令并在浏览器中显示?

Execute linux shell command using PHP script and display in browser?

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

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

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

您的脚本看起来不错,让我们通过更改脚本来执行一些非常简单的操作来确保您的环境设置正确。尝试用

之类的东西替换所有代码
<?php
echo "Hello World";

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

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

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