【发布时间】:2014-09-09 18:10:56
【问题描述】:
我有一个调用 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 的连接是否有任何类似的问题需要考虑??
【问题讨论】:
标签: php python ssh remote-server