2012-09-15 58 views
0

我使用curl從頁面獲取數據Apache HTTP服務器已停止工作 - 捲曲

$curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $page);  
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); 
    $str = curl_exec($curl); 
    curl_close($curl); 
    $raw= str_get_html($str); 

其中$page是鏈接到頁面

它的偉大工程,但是當我試圖去獲取數據從更大再正常不過我的Apache停止響應頁面

這是Apache日誌:

[Sat Sep 15 10:17:36 2012] [notice] Apache/2.2.21 (Win32) PHP/5.3.9 configured -- resuming normal operations 
[Sat Sep 15 10:17:36 2012] [notice] Server built: Sep 10 2011 11:34:11 
[Sat Sep 15 10:17:36 2012] [notice] Parent: Created child process 3908 
[Sat Sep 15 10:17:36 2012] [notice] Child 3908: Child process is running 
[Sat Sep 15 10:17:36 2012] [notice] Child 3908: Acquired the start mutex. 
[Sat Sep 15 10:17:36 2012] [notice] Child 3908: Starting 64 worker threads. 
[Sat Sep 15 10:17:36 2012] [notice] Child 3908: Starting thread to listen on port 8080. 
[Sat Sep 15 10:17:53 2012] [notice] Parent: child process exited with status 3221225477 -- Restarting. 

我認爲頁面大小是一個問題(我不確定),有人可以確認嗎?有什麼方法可以解決這個問題嗎?我試圖增加php.ini中的memory_alocation,但它沒有幫助

+0

和「大於正常」意味着更多可測量單位的尺寸是多少? –

+0

你知道你正在加載的內容的大小嗎? –

+0

也沒有'memory_alocation'配置項。你的意思是'memory_limit'嗎? –

回答

0

您的Web應用程序是否在Windows上運行?如果是這樣,這篇文章可能會有所幫助:該行的開始

set_time_limit(0); 

地點:http://www.java-samples.com/showtutorial.php?tutorialid=1050

+0

是的,我確實看到了,並嘗試過,但它並沒有解決我的問題,相同的腳本與任何其他頁面正常工作 – gogic1

0

也許你的PHP頁面被暫停,因爲越來越頁面持續這麼長時間,你可以用set_time_limit()這樣禁用超時你的腳本。

+0

我設置了捲曲時間限制 curl_setopt($ curl,CURLOPT_CONNECTTIMEOUT,10) ; 但我沒有得到超時我得到apache崩潰 – gogic1

+0

超時選項是cURL,我說的是PHP超時,你正在運行這些cURL調用的頁面可能超時你的CURLOPT_CONNECTTIMEOUT選項的獨立性。默認的PHP超時時間是30秒。 – Nelson

+0

測試,沒有幫助,幾秒後我得到錯誤 – gogic1