在python脚本中执行ssh,这是从php exec命令调用的

时间:2014-09-09 09:46:36

标签: php python ssh remote-server

我有一个调用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 ??

上的连接应考虑的类似问题

1 个答案:

答案 0 :(得分:-1)

尝试在PHP代码中使用此代码。注意:该文件应具有.php扩展名。

 <html>  
 <head></head>  
 <body>  
 <H3>Executing...</H3>  
 <?php exec("p.py"); ?>  
 <H3>Completed...</H3>  
 </body>  
 </html>