2013-04-02 335 views
0

我有一個需要處理1到5個小時(向我們的客戶發送通訊)的php腳本。我嘗試了set_time_limit(2000);ini_set('max_execution_time', 360000);,但都沒有炒鍋。他們在XAMPP本地服務器上工作得很好,但他們不能在我們的專用服務器上工作(Apache & Apache)。我也改變了Apache的超時300(這是50),但腳本運行30秒後,它返回:Linux服務器上的內部服務器錯誤(500)和PHP'max_execution_time

內部服務器錯誤頁面(錯誤500)

我不知道如果有其他地方超時和/或爲什麼服務器不遵守ini_set()set_time_limit()函數。我們使用Unix CentOS 6和Plesk 11.9作爲服務器。我也改變了默認php.ini max-excution-time,它的工作原理...

我看了很多文章和論壇,但我不知道爲什麼會發生這種情況。我感謝您的幫助。

+0

只是一個建議,你可以創建一個cron工作嗎? – Class

+0

從命令行調用的腳本沒有時間限制。你不想要一個涉及這個的瀏覽器。 – 2013-04-02 20:38:15

+0

我建議cron任務,獲取包併發送,將此包標記爲已發送和下一個週期,獲取下一個包併發送等。 – mkjasinski

回答

0

更好的方法是使用ini_set()set_time_limit()在向客戶發送新聞稿的腳本的頂部......您不應該嘗試主要配置文件......還有,如上面提到的那樣,cron作業是很適合這種情況..

+0

嘿傢伙,我感謝您的回答和評論。我設置了cron作業,並且它工作得很完美。我也嘗試過大塊(每塊有150封電子郵件)的方法,而且這個方法也可以... –

0

我很感謝你的回答和評論。我設置了cron作業,並且它工作得很完美。我也嘗試過大塊(每塊大約150封電子郵件)的方法,而且這個方法也適用。

0

//添加,在你的PHP文件頭或配置

ini_set('max_execution_time','256'); //max_execution_time','0' <- unlimited time 
ini_set('memory_limit','512M'); 

良好的工作!