El controlador de fastcgi-script arrojó un código de resultado no válido

Tengo una pregunta extraña con la aplicación PHP que se conecta a un servicio SOAP 1.2 + WSDL:

Información previa: Apache Server 2.4 con el módulo php5-fcgi. Estoy trabajando en un cliente para un servicio SOAP, y puedo hacer alguna solicitud para el servicio.

La solicitud tomó un tiempo para completarse. He necesitado hacer un set_time_limit (60) porque si no lo tengo, el script devuelve el error de tiempo de inactividad:

FastCGI: comm con el servidor “/ usr / lib / cgi-bin / php5-fcgi” anulado: tiempo de inactividad (30 seg)

Con set_time_limit, tengo otro error diferente:

AH00524: El controlador de fastcgi-script devolvió el código de resultado no válido 1

Este error aparece cuando bash hacer la solicitud SOAP. Sin él, la página funciona bien.

Con este error en el registro, tengo otro error diferente en el navegador. En IE, la página no se carga, Firefox muestra la página “Error de encoding de contenido”.

Este error aparece si trato de mostrar en la pantalla el resultado de la conexión SOAP (con var_dump) y, también, si bash hacer la solicitud pero no la envío a la pantalla.

Al tratar de buscar el “Error de encoding de contenido”, he encontrado algo sobre la compresión. Intenté hacer “ob_start” antes y después de set_time_limit, pero, cuando bash hacerlo, obtengo un error de tiempo de espera en el registro (creo que PHP no hace que cambie el tiempo de espera), y, además, la página muestra un error interno de 500 servidores.

¿Cuál es el problema? La única opción que creo que puede obtener estos problemas es un tiempo de espera entre Apache y el módulo php5-fcgi, pero no sé cómo modificar esto para probar otra opción.


EDITAR:

Tengo dos servidores en la misma máquina, Apache2 (2.4.10) + php5-fcgi (5.6.2) (puerto HTTP 80, puerto HTTPS 443) y Nginx (1.6.2) + php5-fcgi (puerto HTTP 8080) .

La misma página, probada con Apache2, no funciona (el error se describe en la parte superior), en HTTP y HTTPS. Luego, trato de ingresar con Nginx (Same webroot, teóricamente la misma configuración de php5-fcgi), y luego, ejecutando correctamente.

Gracias,

La mayoría de las veces el error de tiempo de espera inactivo cuando se usa fastCGI es causado por una solicitud CGI más larga que la hora configurada con el parámetro tiempo de inactividad. Si no está configurado, el valor predeterminado es 30 segundos.

De la documentación de mod_fastcgi :

-idle-timeout n (30 segundos) La cantidad de segundos de inactividad de la aplicación FastCGI permitida antes de que se anule la solicitud y se registre el evento (en el LogLevel de error). El temporizador de inactividad se aplica solo mientras haya una conexión pendiente con la aplicación FastCGI. Si una solicitud se pone en cola para una aplicación, pero la aplicación no responde (escribiendo y vaciando) dentro de este período, la solicitud se cancelará. Si la comunicación se completa con la aplicación pero está incompleta con el cliente (la respuesta se almacena temporalmente), el tiempo de espera no se aplica.

En los archivos de registro, puede ver algo como esto:

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

Y en un navegador web, aparece el mensaje “Error de encoding de contenido”.

Para evitar este error, es posible boost el tiempo de espera inactivo en la configuración de FastCGI.

 FastCgiConfig -idle-timeout 900 

Por lo tanto, al boost el tiempo de inactividad, ya no necesita usar set_time_limit.