Intereting Posts
Классы PHP, почему используется общедоступное ключевое слово? CodeIgniter: как «выделить» ссылку на страницу, на которой пользователь в данный момент включен? PHP mySQL – вставить новую запись в таблицу с автоматическим приращением на первичный ключ Как использовать одно соединение MySql с несколькими объектами PHP. Задача zend Framework FlashMessenger mysql_num_rows () ожидает, что параметр 1 будет ресурсом, boolean given Как передавать информацию через веб-страницы веб-сайта Получайте и обновляйте текст каждые несколько секунд от источника HTTP до HTTPS-сайта Как правильно избежать строки через PHP и mysql Почему константа `FILTER_VALIDATE_NUMBER_FLOAT` сбрасывает символ десятичного знака? PHP preg_match с рабочим регулярным выражением Как передать переменную PHP в Javascript? CodeIgniter Active Record не равно Отображение значений базы данных в соответствии с выбранным фильтром в выпадающем меню Использование соединений My SQL

Обработчик для fastcgi-script возвращает недопустимый код результата

У меня странный вопрос с подключением PHP-приложения к службе SOAP 1.2 + WSDL:

Предыдущие сведения: Apache server 2.4 с модулем php5-fcgi. Я работаю над клиентом для службы SOAP, и я могу сделать запрос на услугу.

Задание прошло некоторое время. Мне нужно было сделать set_time_limit (60), потому что, если у меня его нет, скрипт возвращает ошибку тайм-аута простоя:

FastCGI: сообщение с сервером «/ usr / lib / cgi-bin / php5-fcgi» отменено: тайм-аут простоя (30 секунд)

С set_time_limit у меня другая ошибка:

    AH00524: обработчик для fastcgi-скрипта возвращает неверный код результата 1

    Эта ошибка появляется, когда я пытаюсь выполнить запрос SOAP. Без него страница работает нормально.

    С этой ошибкой в ​​журнале у меня есть другая ошибка в навигаторе. В IE страница не загружается, Firefox показывает страницу «Ошибка кодирования содержимого».

    Эта ошибка появляется, если я попытаюсь показать на экране результат соединения SOAP (с var_dump), а также, если я попытаюсь выполнить запрос, но не отправит его на экран.

    Пытаясь найти «Ошибка кодирования содержимого», я нашел что-то о сжатии. Я пытался сделать «ob_start» до и после set_time_limit, но, когда я пытаюсь это сделать, я получаю ошибку таймаута в журнале (я думаю, что PHP не делает изменение таймаута), а также на странице показывает ошибка внутреннего сервера 500.

    В чем проблема? Единственный вариант, который, по моему мнению, может быть причиной этой проблемы, – это некоторый тайм-аут между модулем Apache и php5-fcgi, но я не знаю, как это изменить для проверки другого параметра.


    РЕДАКТИРОВАТЬ:

    У меня два сервера на одном компьютере: Apache2 (2.4.10) + php5-fcgi (5.6.2) (порт HTTP 80, порт 443 HTTPS) и Nginx (1.6.2) + php5-fcgi (HTTP-порт 8080) ,

    Те же страницы, протестированные с Apache2, не работают (ошибка описана сверху), по HTTP и HTTPS. Затем я пытаюсь войти с Nginx (тот же webroot, теоретически такой же php5-fcgi config), а затем, работая правильно.

    Благодаря,

    Related of "Обработчик для fastcgi-script возвращает недопустимый код результата"

    Большая часть времени ожидания тайм-аута при использовании fastCGI вызвана запросом CGI дольше, чем время, заданное параметром idle-timeout. Если не настроено, значение по умолчанию составляет 30 секунд.

    Из документации mod_fastcgi :

    -idle-timeout n (30 секунд) Число секунд бездействия приложения FastCGI, разрешенное до того, как запрос будет прерван, и событие заносится в журнал (при ошибке LogLevel). Таймер бездействия применяется только до тех пор, пока соединение выполняется с приложением FastCGI. Если запрос поставлен в очередь для приложения, но приложение не отвечает (путем написания и промывки) в течение этого периода, запрос будет прерван. Если связь завершена с приложением, но неполная с клиентом (ответ буферизирован), таймаут не применяется.

    В файлах журналов вы можете увидеть что-то вроде этого:

    [fastcgi:error] FastCGI: comm with server "/var/www/bin/php-fastcgi" aborted: idle timeout (30 sec), referer: http://example.org/script.php 

    И в веб-браузере yoy получите сообщение «Ошибка кодирования контента».

    Чтобы избежать этой ошибки, можно увеличить тайм-аут простоя в конфигурации FastCGI.

     FastCgiConfig -idle-timeout 900 

    Таким образом, увеличивая время ожидания простоя, вам больше не нужно использовать set_time_limit.