我刚刚开始在php中使用shell_exec并停留在这一点上。 下面是我的php脚本,它可以在终端中正确运行,但不能在浏览器中运行。
<?php
echo shell_exec("ssh -tq root@192.168.31.5 \"whoami\"");
?>
在终端的输出是
$ php /var/www/html/monitor/ssh.php
root
有趣的是,哇的作用就像是魅力
<?php
echo shell_exec("whoami");
?>
任何建议都适用。谢谢!
编辑:-使用OB_START()和OB_GET_CONTENT
<?php
ob_start();
echo shell_exec("ssh -tq root@192.168.31.5 \"whoami\"");
$out1 = ob_get_contents();
ob_end_clean();
var_dump($out1);
?>
终端输出:-
php /var/www/html/monitor/ssh.php
string(6) "root"
浏览器中的输出(铬):-
string(0) ""
答案 0 :(得分:0)
那是因为在CLI中,您是作为用户从SSH执行脚本的(在您的情况下为root
),但在浏览器中,执行脚本的是您的WebServer
(apache / nginx)。为了使 root 作为浏览器中的输出,您可能需要看看ob_start ob_get_contents ob_flush
函数。