FastCGI: "comunicación con el servidor cancelada: lectura fallida" solo para un archivo específico

FastCGI: "comunicación con el servidor cancelada: lectura fallida" solo para un archivo específico

Pregunta relacionada: Error FastCGI y Apache 500 de forma intermitente

La solución no me funciona.


El problema:

Tengo una aplicación Laravel 5.1 (estaba en producción en otros servidores sin ningún problema) ejecutándose en una versión nueva.Servidor Ubuntu 14.04conApache 2.4.7y PHP a través dePHP-FPM.

Todo funciona bien siempre que no se invoque un determinado archivo en la aplicación:

$compiledPath = __DIR__.'/cache/compiled.php';

if (file_exists($compiledPath)) {
    require $compiledPath; // this causes a "500 Internal Server Error"
}

Es un archivo específico de Laravel.creado automáticamentepor el propio marco para acelerar un poco las cosas (para que no sea un error en mi código), realmente existe y tengo permisos de acceso completo. Esalrededor de 600kBen tamaño. Cuando lo quito, todo funciona bien. Pero cuando le digo a Laravel que lo cree nuevamente y luego accedo a cualquier ruta de la aplicación, aparece un "Error interno del servidor 500" con las siguientes entradas de registro:

[fastcgi:error] [pid 14334] (104)Restablecimiento de conexión por parte del par: [cliente xxx.xxx.xxx.xxx:41395] FastCGI: comunicación con el servidor "/var/www/clients/client1/web1/cgi-bin/ php5-fcgi-yyy.yyy.yyy.yyy-80-domain.com" cancelado: lectura fallida

[fastcgi:error] [pid 14334] [cliente xxx.xxx.xxx.xxx:41395] FastCGI: encabezados incompletos (0 bytes) recibidos del servidor "/var/www/clients/client1/web1/cgi-bin/php5- fcgi-yyy.yyy.yyy.yyy-80-dominio.com"

[fastcgi:error] [pid 14334] (104)Restablecimiento de conexión por parte del par: [cliente xxx.xxx.xxx.xxx:41395] FastCGI: comunicación con el servidor "/var/www/clients/client1/web1/cgi-bin/ php5-fcgi-yyy.yyy.yyy.yyy-80-domain.com" cancelado: lectura fallida

[fastcgi:error] [pid 14334] [cliente xxx.xxx.xxx.xxx:41395] FastCGI: encabezados incompletos (0 bytes) recibidos del servidor "/var/www/clients/client1/web1/cgi-bin/php5- fcgi-yyy.yyy.yyy.yyy-80-dominio.com"

Lo que he probado:

Probé la solución en la pregunta relacionada mencionada anteriormente, que también representa la mayoría de las otras sugerencias relacionadas con este problema que pude encontrar: juegue con las configuraciones comunes de PHP-FPM para asignar más recursos. La respuesta aceptada también menciona la opción de abandonar FastCGI por completo, pero no quiero llegar allí. Así que jugué con los valores, pero no tuve suerte.

No hay carga alguna en el servidor ya que soy el único que lo usa, así que realmente dudo que sea un problema con los recursos disponibles (es un VPS con 12 GB de RAM).¿Podría tener algo que ver con el tamaño del archivo?Es el único archivo PHP tan grande.

Podría reproducir el problema en 2 servidores diferentes con la misma configuración. Lo hizonoocurre en un servidor Ubuntu 12.04 con Apache 2.2 con FastCGI.

Mi configuración actual:

PHP-FPM:

pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 0

<IfModule mod_fastcgi.c>
    ...
    Alias /php5-fcgi /var/www/....
    FastCgiExternalServer /var/www/.... -idle-timeout 300 -socket /var/lib/php5-fpm/web1.sock -pass-header Authorization
</IfModule>

php.ini

memory_limit = 512M
output_buffering = on

Respuesta1

Si PHP falla solo en archivos fuente específicos, la razón más probable es que algún acelerador de código PHP (caché de código de operación) como Xcache, APC o eAccelerator tenga problemas con el archivo. Esto puede deberse a errores en el acelerador o en el propio PHP.

Puede intentar ejecutar su script a través de la interfaz de línea de comandos de PHP ( php-clicomando), ya que PHP CLI no utiliza ningún acelerador.

información relacionada