Curl holt .cgi-Datei ab, immer 504 Gateway-Timeout

Curl holt .cgi-Datei ab, immer 504 Gateway-Timeout

Ich habe eine IP-Kamera und verwende die Get-Methode, um den Alarm einzuschalten.

Wenn ich den Browser benutze ist alles ok

http://da***.com:808/set_alarm.cgi?user=***&pwd=***&motion_armed=1"

Wenn ich versuche, diese PHP-Datei zu verwenden, erhalte ich immer die Meldung „504 Gateway Time Out“.

<?php

    function httpGet($url)
      {
        $ch = curl_init();  

        curl_setopt($ch,CURLOPT_URL,$url);

        $output=curl_exec($ch);
        curl_close($ch);
        return $output;
      }

     echo httpGet("http://da***.com:808/set_alarm.cgi?user=***&pwd=***&motion_armed=1");
?>

Kann mir jemand helfen?

Danke

Antwort1

Ich denke, Sie fordern ein Skript vom selben Server an, und 504 dies liegt wahrscheinlich nur an einem PHP-Backend-Prozess. Wenn Sie also eine Anfrage vom Browser aus stellen, handelt es sich nur um eine Anfrage, und sie wird vom Server empfangen.

Wenn Sie php-cgi verwenden, hoffen wir, dass es hilft, die Umgebungsvariable vor dem Starten von php-cgi zu konfigurieren.

setze PHP_FCGI_CHILDREN=0

setze PHP_FCGI_MAX_REQUESTS=10000`

Überprüfen Sie, ob Ihr Backend mehrere Anfragen gleichzeitig verarbeiten kann und ob Ihr Skript nicht aus irgendeinem Grund ein „Dead Look“ erzeugt (also seine eigene Ausgabe anfordert).

Überprüfen Sie die FCGI-Protokolle. Wenn das nicht hilft, erhöhen Sie die Debug-Level auf nginx.

verwandte Informationen