我有一个调用python脚本的PHP代码。在python脚本中我使用ssh连接到远程系统并运行命令。当python代码独立执行时,一切看起来都很完美,但是当我从php调用它时,无法建立连接,并在浏览器中输出一个空字符串作为输出。
这是我的php脚本
<?php
$command = escapeshellcmd('python p.py');
$output = shell_exec($command);
echo $output;
?>
Python脚本(p.py)如下
import subprocess
proc = subprocess.Popen(["ssh remotehost uptime"], stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
print "program output:", out
执行时
python p.py
程序成功打印结果。当执行php脚本时,浏览器只显示
程序输出:
显示python脚本被执行,当通过php调用时,问题出在ssh连接中。 任何人都可以建议我一种方法让它正常工作吗?
编辑:
当我的python代码有数据库连接时,类似的问题已经过了。 冲浪后我发现在/ etc / sysconfig中我必须给出
setsebool -P httpd_can_network_connect_db = 1
是否存在与ssh ??
上的连接应考虑的类似问题答案 0 :(得分:-1)
尝试在PHP代码中使用此代码。注意:该文件应具有.php扩展名。
<html>
<head></head>
<body>
<H3>Executing...</H3>
<?php exec("p.py"); ?>
<H3>Completed...</H3>
</body>
</html>