
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.