php-fpm devuelve una respuesta vacía a nginx

9

nginx se conecta a php-fpm a través de fastcgi, utilizando el estándar /etc/nginx/fastcgi_paramsen el bloque de ubicación.

Cuando se conecta a /.status (php-fpm.ini :: ping.path) desde la línea de comando con cgi-fcgi -bind, el resultado vuelve como se esperaba (conjunto X-Powered-By, cuerpo de respuesta, etc.).

Al solicitar con nginx, el resultado vuelve vacío (conjunto X-Powered-By, sin longitud ni contenido del cuerpo). nginx devuelve 200, ya que obtuvo una respuesta "válida".

Vigilando tcpdump, he aislado las solicitudes de paridad en sus encabezados FCGI (menos las variables env relacionadas con el usuario todavía establecidas por el shell).

David Souther
fuente
Intente cambiar al usuario nginx se ejecuta como y vuelva a ejecutar la prueba cgi-fcgi -bind.
Algunos Linux Nerd
Siempre arruino las implementaciones de NRPE probándolas como root ... pensé que podrías haber hecho lo mismo.
Algunos Linux Nerd

Respuestas:

11

El factcgi_paramsarchivo estándar no contiene la línea clave para SCRIPT_FILENAME.

location ~ \.php$ {
                include fastcgi_params;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}

Agréguelo y reinicie nginx.

shukshin.ivan
fuente
4

Bueno, tu pregunta es un poco vaga. Una llamada "pantalla blanca de la muerte" (WSOD) podría ser activada por una cantidad interminable de cosas. Pero algunas cosas que hago si me encuentro con esto:

  • Active lo siguiente en su php.ini:

    display_errors = 1
    display_startup_errors = 1
    error_log = /path/to/file
    error_reporting = -1 ; (the -1 activates absolutely everything)
    log_errors = 1
    
  • Activa en tu php-fpm.conf:

    error_log = /path/to/file
    
  • Active para cada configuración de grupo php-fpm:

    catch_workers_output = 1
    
  • Repita su solicitud y verifique todos los registros (incluido el registro de errores nginx)
  • Aumente el nivel de registro (por ejemplo, depuración en nginx)

Si nada de esto le ayuda a localizar el problema, publique la información y las configuraciones completas del sistema. Nadie puede darte una respuesta precisa sin eso.

Grillete de carne
fuente