2016-08-17 2 views
0

Ich setze alle Optionen mit Timeout und set_time_limit, aber es ist nicht hilfreich. CURL erhält 500 Fehler nach 40 Sekunden. Auf dem Remote-Server starten lange Prozess und ich brauche eine Wartezeit zu beenden. Wenn die Datei klein ist - alles in Ordnung, wenn die Datei groß ist - erhalten Sie nach 40 Sekunden 500 Fehler. Das ist mein Code:CURL bekomme 500 Fehler nach 40 Sekunden

$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

Sie sollten es Fehler bei Serverseite überprüfen, da 500 HTTP-Fehler bedeutet "Internal Server Error". –

+0

Verwenden Sie die richtige URL (http://example.com/index.php?page=uploads)? – mishanon

+0

Ja, es ist die korrekte URL. Skript auf dem Remote-Server ist gestartet. Remote-Skript Befehl durch curl abrufen, POST parsen, Datei konvertieren ... Die Datei wird konvertiert und im Ordner gespeichert. Die Protokolle sind keine Fehler. Das Skript wurde erfolgreich auf dem Remote-Server abgeschlossen. Aber Curl 40 Sekunden nach dem Start geben Sie mir 500 Fehler. Aber CURL muss eine Erfolgsmeldung über das Ende erhalten. Es wird wie eine Trennung. Und es immer 40 Sekunden ... –

Antwort

0

Ein HTTP500 Fehler zeigt an, dass es ein SEVER Seitenfehler.

Überprüfen Sie die Webserver (Apache?) Oder Anwendungsserver (PHP?) Protokolle, um das Problem zu debuggen.

HTTP500 Status erklärt: http://www.checkupdown.com/status/E500.html

+0

Skript auf Remote-Server ist Start. Remote-Skript Befehl durch curl abrufen, POST parsen, Datei konvertieren ... Die Datei wird konvertiert und im Ordner gespeichert. Die Protokolle sind keine Fehler. Das Skript wurde erfolgreich auf dem Remote-Server abgeschlossen. Aber Curl 40 Sekunden nach dem Start geben Sie mir 500 Fehler. Aber CURL muss eine Erfolgsmeldung über das Ende erhalten. Es wird wie eine Trennung. Und es sind immer 40 Sekunden ... –