2016-08-17 58 views
0

我設置了超時和set_time_limit的所有選項,但沒有幫助。 40分鐘後CURL得到500錯誤。在遠程服務器上啓動長時間進程,我需要等待完成。如果文件很小 - 一切正常,如果文件很大 - 40秒後出現500錯誤。這是我的代碼:CURL在40秒後得到500錯誤

$curl = curl_init("http://example.com/index.php?page=uploads"); 
    curl_setopt($curl, CURLOPT_POST, 1); 
    $datas = array(
     "id" => $id, 
     "video" => $filename->new_file_name, 
     "title" => $_POST["title"], 
     "description" => $_POST["description"], 
     "category" => array($_POST["category"]), 
     "location" => $_POST["location"], 
     "check" => $check, 
     "start" => $start, 
     "duration" => $duration 
    ); 
    $data = json_encode($datas); 

    $fp = fopen(dirname(__FILE__).'/errorlog.txt', 'w'); 
    curl_setopt($curl, CURLOPT_VERBOSE, 1); 
    curl_setopt($curl, CURLOPT_STDERR, $fp); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0); 
    curl_setopt($curl, CURLOPT_TIMEOUT_MS, 900000); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_NOSIGNAL, 1); 
    curl_setopt($curl, CURLOPT_FRESH_CONNECT, 1); 
    curl_setopt($curl, curl_exec, 0); 
    curl_exec($curl); 
    print_r(curl_getinfo($curl)); 
    curl_close($curl); 
+0

你應該在你的服務器端有錯誤檢查,因爲HTTP錯誤500的意思是「內部服務器錯誤」。 –

+0

你使用正確的網址(http://example.com/index.php?page=uploads)嗎? – mishanon

+0

是的,這是正確的網址。遠程服務器上的腳本啓動。遠程腳本通過curl獲取命令,解析POST,開始轉換文件...文件被轉換並保存在文件夾中。日誌沒有錯誤。在遠程服務器上成功完成腳本。但開始後40秒捲曲給我500錯誤。但是CURL必須獲得關於完成的成功消息。它變成斷開連接。它總是40秒... –

回答

0

一個HTTP500錯誤表明存在SEVER端錯誤。

檢查Web服務器(Apache?)或應用程序服務器(Php?)日誌以便能夠調試問題。

HTTP500狀態解釋:http://www.checkupdown.com/status/E500.html

+0

遠程服務器上的腳本啓動。遠程腳本通過curl獲取命令,解析POST,開始轉換文件...文件被轉換並保存在文件夾中。日誌沒有錯誤。在遠程服務器上成功完成腳本。但開始後40秒捲曲給我500錯誤。但是CURL必須獲得關於完成的成功消息。它變成斷開連接。它總是40秒... –