2011-10-05 48 views
0

我嘗試使用SSH2連接到SFTP服務器,但它似乎PHP陷入一個循環。 報告錯誤。嘗試SFTP服務器使用SSH2連接,但該腳本將永遠運行下去沒有任何錯誤

我的代碼:

$connection = ssh2_connect('my-server.url', 22); 
var_dump($connection); 
if (ssh2_auth_password($connection, 'username', 'password')) 
{ 
    echo "Authentication success"; 
    if(ssh2_scp_recv($connection, "/throw_me_an_error/", "/somewhere/")) 
    { 
     echo "file recived"; 
    } 
    else 
    { 
     echo "error"; 
    } 
} 
else 
{ 
    echo "Authentication failure"; 
} 

產生這樣的輸出:

resource(7) of type (SSH2 Session) 
Authentication success 

但只要腳本嘗試運行ssh2_scp_recv它得到了stucked和永遠的無故障運行。我試着用現有的和不存在的文件。每次都有相同的結果 - 腳本在循環中運行。

它不僅ssh2_scp_recv即使我嘗試ssh2_exec或偉馳需要編寫或服務器上讀取一些其他的方法,它會得到stucked。

這是怎麼回事?

謝謝!

回答

3

你可能有更多的運氣與phpseclib, a pure PHP SSH implementation

+0

很酷,我不知道這一點。這個純PHP ssh真的有用嗎?與擴展相比,性能如何? – aurora

+2

我已經成功使用了它幾次。而http://core.trac.wordpress.org/ticket/16925#comment:7意味着它實際上比libssh2更快,但我認爲這也取決於您的網絡拓撲結構。也許phpseclib在傳輸到遠程服務器時速度更快,libssh2在傳輸到本地服務器時速度更快。或者,也許phpseclib全面更快 - 不知道! – nigol

相關問題