2015-06-01 113 views
2

事情是,用戶點擊一個按鈕,它啓動一個AJAX請求(並不重要)。 這個ajax請求調用一個php腳本,它下載並隨後上傳一個大文件(php腳本應該運行大概4分鐘);自然,用戶「等待」ajax響應,告訴他一切都是正確的。ajax請求返回「錯誤500」,php腳本仍在工作

但是,在130秒後,此ajax請求會返回狀態碼爲「500 Internal server error」的響應。 但是,沒有。 2;在後端,php腳本仍在運行(我知道它是從日誌記錄創建的)。

哪裏有問題?

  • 的max_execution_time並不影響它,因爲PHP腳本仍然運行在本地主機上
  • ,一切都正常,出現這種情況只有我們的生產服務器上
  • memory_limit的,不影響它,(PHP腳本仍在運行)
  • jQuery的AJAX超時並不影響它(默認情況下,沒有超時,我還設置超時300秒,但沒有效果:()

我很歡迎任何想法,如何解決這個

編輯: 造成的FastCGI空閒超時

+0

我會改變你使用,如果可能的模式。要求這麼長時間的請求並不是一個好主意。 –

+0

感謝您查看fastCGI超時的提示。奇怪的是,即使FastCGI超時(活動和請求)設置爲600秒,我的服務器也會在800〜900秒之間超時。對我來說,提高請求超時值解決了我的長PHP腳本坐在一個循環中等待另一個進程完成的問題。 –

回答

0

你能添加誤差函數也是你的ajax請求?

$.ajax({ 
    type: "POST", 
    url: "yourpublicfunction", 
    success: function(response){}, 
    error: function(response){ 
     console.log(response.responseText); 
    } 
}); 

,這樣就可以在瀏覽器控制檯日誌中看到你的Web方法返回,