2012-05-09 93 views
0

我試圖通過使用popen執行命令,然後通過AJAX打印出其進度。我發現這post非常有用,並得到了AJAX腳本交流工作正常。問題是每當有一個來自ajax的異步GET到test時,重複popen上的句柄。如果我的shell只運行一次,那麼句柄不再有效。我無法弄清楚如何使$ handle在請求中持久化。popen處理持續連接

public function test() 
{ 
     chdir('my dir'); 
     $handle = popen('make install 2>&1','r'); 
     echo fread($handle, 2096); 


} 

一次只會有一個用戶請求....只能用於Admin的後端。 AJAX的輸出始終是「在src中進行安裝」。

+0

這不是真正的'popen'句柄,你需要保持開放,這是你需要繼續運行的PHP腳本本身。你是以這種方式做這件事嗎? – deceze

回答

2

你不能那樣做。您將不得不在後臺運行「make install」進程(例如通過exec()),並將其輸出重定向到執行AJAX請求時可以讀取的文件/管道。