Назад | Перейти на главную страницу

Curl получить из файла .cgi, всегда тайм-аут шлюза 504

У меня есть ip-камера, и я использую метод Get, чтобы включить будильник.

Когда я использую браузер, все в порядке

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

Если попытаться использовать этот файл php, я всегда получаю "504 тайм-аут шлюза"

<?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");
?>

Кто-нибудь может мне помочь?

Спасибо

Я думаю, вы запрашиваете какой-то скрипт с того же сервера, и 504 вероятно, из-за только одного внутреннего процесса PHP, поэтому, когда вы запрашиваете из браузера, его только один запрос и получает сервер.

Если вы используете php-cgi, настраивая переменную среды перед запуском php-cgi, надеюсь, это поможет.

установить PHP_FCGI_CHILDREN = 0

установить PHP_FCGI_MAX_REQUESTS = 10000`

Убедитесь, что ваш бэкэнд может обрабатывать несколько запросов одновременно и что ваш скрипт каким-то образом не создает мертвого вида (запрашивая вывод самого себя).

Проверьте журналы FCGI. Если это не помогает, увеличьте уровни отладки на nginx.