【发布时间】:2017-10-12 12:40:22
【问题描述】:
作为一个新手:我正在尝试开发一个运行 shell 命令并在网页上显示输出的 php 应用程序。
html文件:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("button").click(function() {
$.get("snmp-cmd.php?code=myFunction", function(data, status) {
alert("Data: " + data + "\nStatus: " + status);
});
});
});
</script>
</head>
<body>
<button>Execute Command</button>
</body>
</html>
和php文件:
<?php
$command1 = "snmpget -v 3 -u username -a SHA -A mypasswd -x DES -X mypasswd -l authPriv -IR 192.168.1.1:161 eNodeBopStatus.0";
$command = "sudo whoami";
$output1 = shell_exec($command);
$output = exec($command);
echo $output;
?>
问题是:如果我尝试 $command = "ls -ltr",它可以工作,但如果我尝试 "whoami" 或 snmp 命令,则不会显示警报框中的数据。
注意:如果我在控制台上运行 php 文件,我会看到“whoami”和 snmp 命令的输出。我猜,只是没有显示在ajax部分。 我在 chrome 中调试:网络选项卡 > 时间延迟显示:待处理
请帮忙。
【问题讨论】:
-
与您的
whoami我认为由于sudo,它正在等待处理。尝试不使用 sudo,它应该 - 也许 - 工作 -
@atester 你试过 sudo echo
whoami -
您的 error_log 说明了什么?有什么错误吗?
-
@sheplu 我也试过不使用 sudo 但它不起作用
-
@shashi "sudo echo whoami" 也会在“数据”中显示任何内容