2015-05-15 78 views
1

我試圖通過由PHP調用的os.system()在python中運行SSH。當我通過CLI的CLI版本運行它時它工作正常,但它不通過燈泡運行。無法在Linux中通過XAMPP上的PHP運行SSH

以下是我的PHP代碼:

<?php $x=shell_exec('python test.py'); ?> 

以下是正在由PHP代碼調用的Python代碼(test.py):

import os 
os.system("ssh [email protected]") 

我也使用觸摸工具嘗試通過PHP中的exec(),發生同樣的事情。

+0

難道它甚至獲取到Python腳本? PHP能找到Python解釋器嗎?每個配置都允許shell_exec()和exec()嗎?您可以嘗試通過在shell_exec()或exec()調用中打印語句來進行調試(或者如果需要,可以寫入文件);如果可以的話,在你的python腳本中嘗試打印語句並從那裏開始工作。 – SaeX

+0

@SaeX是的,PHP腳本能夠執行python,我的python代碼中有打印語句,它們正在打印。 exec()能夠在我的系統上執行像ls和ps這樣的命令。 –

+0

它可能正在用不同的用戶運行ssh命令,而不是從CLI執行它。也許運行PHP的用戶沒有密鑰文件或其他東西的服務器密鑰。 –

回答

1

使用phpseclib。使用SSH2擴展所推薦的@Ramesh Dahiya是壞的一些理由,闡述了這裏:正在使用

http://phpseclib.sourceforge.net/ssh/compare.html

phpseclib的例子:

<?php 
include('Net/SSH2.php'); 

$ssh = new Net_SSH2('www.domain.tld'); 
if (!$ssh->login('username', 'password')) { 
    exit('Login Failed'); 
} 

echo $ssh->exec('pwd'); 
echo $ssh->exec('ls -la'); 
?>