2013-04-28 35 views
0

我試圖做一個簡單的網絡應用程序來執行SSH命令。 UI將使用ajax來處理命令並返回響應。我一直在尋找PHP的SSH2函數來處理SSH,但我不知道如何保持連接打開。我不想爲每個新命令都保持登錄狀態,並且很難跟蹤我所在的目錄。是否有解決方案?是一個基於Web的SSH應用程序嗎?

+1

你見過phpseclib庫嗎?請參閱:http://phpseclib.sourceforge.net/ – 2013-04-28 06:40:08

+0

它似乎有同樣的問題。 – James 2013-04-28 06:43:19

+2

你正在尋找的東西不能通過一個簡單的PHP腳本來實現。這違背了處理php腳本的典型web請求的性質。你確實需要在服務器上運行一些永久實例,一些deamon會打開並保持與ssh服務器的連接。然後,你可以從一個PHP腳本連接到該deamon併發出命令。所以你使用deamon作爲一種代理。 – arkascha 2013-04-28 06:48:39

回答

1

由於其架構PHP插入到Web服務器不能有資源(如文件,套接字等)的持久性句柄。因此答案很簡單 - 您需要一些其他服務器(而不是apache + PHP)來完成這項工作。例如,Windows和Java服務器上的IIS可讓您擁有每個會話的存儲空間並在那裏保留句柄。

+0

這不應該作爲評論,因爲它並沒有提供真正的答案嗎? – arkascha 2013-04-28 06:49:32

+0

它可以用Python來處理嗎? – James 2013-04-28 06:55:31

+1

@詹姆斯這是服務器架構的問題,而不是語言。 Linux上的Apache爲每個連接創建一個進程,這意味着在關閉連接(處理請求時)時,由進程打開的任何內容都將關閉。手柄無法生存。所以重要的是架構,而不是語言。上面的Arkascha的評論適用 - 您需要運行一些持久的服務並保持連接。 – 2013-04-28 09:49:53

相關問題