He configurado un servidor nginx con php5-fpm. Cuando intento cargar el sitio, aparece una página en blanco sin errores. Las páginas HTML se sirven bien pero no php. Intenté encender display_errors en php.ini pero no tuve suerte. php5-fpm.log no produce ningún error y tampoco lo es nginx.
nginx.conf
server {
listen 80;
root /home/mike/www/606club;
index index.php index.html;
server_name mikeglaz.com www.mikeglaz.com;
error_log /var/log/nginx/error.log;
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
EDITAR
Aquí está mi registro de errores nginx:
2013/03/15 03:52:55 [error] 1020#0: *55 open() "/home/mike/www/606club/robots.txt" failed (2: No such file or directory), client: 199.30.20.40, server: mikeglaz.com, request: "GET /robots.txt HTTP/1.1", host: "mikeglaz.com"

connect() failed ... fastcgi://127.0.0.1:9000contradice su nginx conf, ¿reload nginx conf?Respuestas:
Como referencia, adjunto mi
locationbloque para capturar archivos con la.phpextensión:Vuelva a verificar
/path/to/fastcgi-paramsy asegúrese de que esté presente y que el usuario nginx pueda leerlo.fuente
reemplazar
con
y elimine fastcgi_param SCRIPT_FILENAME ... en nginx.conf
fuente
.conftiene una configuración adicional del parámetro que falta_params./etc/init.d/nginx restart) también me lo arregló en Debian Testing después de unanginxactualización el 10 de septiembre de 2014.fastcgi_paramsvsfastcgi.conf: blog.martinfjordvald.com/2013/04/…También tuve este problema y finalmente encontré la solución aquí . En resumen, debe agregar la siguiente línea a su archivo de configuración nginx fastcgi (/ etc / nginx / fastcgi_params en Ubuntu 12.04)
fuente
Muchos usuarios caen en este hilo esperando encontrar una solución para las páginas en blanco que se muestran mientras usan nginx + php-fpm , siendo yo uno de ellos. Este es un resumen de lo que terminé haciendo después de leer muchas de las respuestas aquí más mis propias investigaciones (actualizado a php7.2):
1) Abrir
/etc/php/7.2/fpm/pool.d/www.confy verificar el valor del parámetrolisten.2) El parámetro
listendebe coincidir con elfastcgi_passparámetro en el archivo de configuración de su sitio (i, e:)/etc/nginx/sites-enabled/default.3) Verifique que el archivo realmente exista:
4) Si no existe, significa que php7.2-fpm no se está ejecutando, por lo que debe reiniciarlo:
Con respecto a la
locationsección en/etc/nginx/sites-enabled/default:Compruebe que el archivo
snippets/fastcgi-php.confexiste en la ubicación/etc/nginx/:Este archivo contiene una lista de definiciones de variables requeridas por php7.2-fpm. Las variables se definen directamente o mediante la inclusión de un archivo separado.
Este archivo se encuentra en
/etc/nginx/fastcgi.confy se ve así:nginx incluye dos posibles archivos de parámetros: fastcgi_params y fastcgi.conf . La diferencia entre ambos es la definición de variable
SCRIPT_FILENAME:Para resumir , fastcgi.conf siempre debería funcionar. Si por alguna razón que está configurado está usando fastcgi_params , debe definir
SCRIPT_FILENAME:Ahora vuelva a cargar la configuración de nginx:
Y verifique que un archivo php se muestre correctamente. Por ejemplo:
/var/www/html/test.php
¿Dónde
/var/www/htmlestá la ruta a la raíz del documento?Si a pesar de todo, todavía se está viendo un archivo en blanco, asegúrese de que
php.inihashort_open_tagactivado (si se está probando una página PHP con las etiquetas cortas).fuente
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;Hizo el truco finalmente.Asegúrese de tener esto en / etc / nginx / fastcgi_params
¿Quién sabe por qué esto ya no está allí? ¡La cantidad de tiempo que esto debe desperdiciar colectivamente!
fuente
Escribí un breve programa en C que devuelve las variables de entorno pasadas de nginx a la aplicación fastCGI.
Guarde esto en un archivo, por ejemplo
fcgi_debug.cPara compilarlo, primero instale
gccylibfcgi-devluego ejecute:Para ejecutarlo, instale
spawn-fcgi, luego ejecute:Luego, cambie su configuración de nginx fcgi para que apunte al programa de depuración:
Reinicie nginx, actualice la página y debería ver todos los parámetros aparecer en su navegador para que pueda depurar. :-)
fuente
apt-get install spawn-fcgi libfcgi-dev.Estas sugerencias me ayudaron con mi instalación de Ubuntu 14.04 LTS,
Además necesitaba para encender la
short_open_tagde/etc/php5/fpm/php.inifuente
Agregue esto en
/etc/nginx/conf.d/default.conf:fuente
/etc/nginx/fastcgi_paramsarchivo sería más apropiado, creo.En caso de que alguien tenga este problema pero ninguna de las respuestas anteriores resuelva sus problemas, estaba teniendo el mismo problema y tuve más dificultades para rastrearlo ya que mis archivos de configuración eran correctos, mis trabajos ngnix y php-fpm funcionaban bien, y no hubo errores en los registros de errores.
Error tonto pero nunca verifiqué la variable de etiqueta abierta corta en mi archivo php.ini que estaba configurado en
short_open_tag = Off. Como mis archivos php estaban usando en<?lugar de<?php, las páginas aparecían en blanco. La etiqueta de apertura corta debería haberse configuradoOnen mi caso.Espero que esto ayude a alguien.
fuente
La razón por la que ocurre este problema es porque las configuraciones fastcgi en nginx no funcionan como se requiere y en su lugar o procesamiento, responden como datos html. Hay dos formas posibles de configurar su nginx para evitar este problema.
Método 1:
Método 2:
Ambos métodos funcionarían correctamente, puede seguir adelante y tomar cualquiera de ellos. Casi realizan las mismas operaciones con muy pocas diferencias.
fuente
Buena suerte
fuente
Ninguna de las respuestas anteriores funcionó para mí: PHP estaba representando todo correctamente, excepto las páginas que dependían de mysqli, para lo cual enviaba una página en blanco con un código de respuesta 200 y no arrojaba ningún error. Como estoy en OS X, la solución fue simplemente
sudo port install php56-mysqlseguido de un reinicio de PHP-FPM y nginx.
Estaba migrando de una configuración anterior de Apache / PHP a nginx, y no noté que la versión no coincidía en el controlador para
php-mysqlyphp-fpm.fuente
Tuve un problema similar, nginx estaba procesando una página a la mitad y luego se detenía. Ninguna de las soluciones sugeridas aquí funcionaba para mí. Lo arreglé cambiando el búfer nginx fastcgi:
Después de los cambios mi
locationbloque se veía así:Para más detalles, consulte https://www.namhuy.net/3120/fix-nginx-upstream-response-buffered-temporary-file-error.html
fuente
Si obtiene una pantalla en blanco, puede deberse a 2 razones:
Navegador que bloquea la visualización de los marcos. En algunos navegadores, los marcos se consideran inseguros. Para superar esto, puede iniciar la versión sin marco de phpPgAdmin al
http://-your-domain-name-/intro.phpHa habilitado una función de seguridad en Nginx para X-Frame-Options, intente deshabilitarla.
fuente
Esto resolvió mi problema:
fuente
Este es mi servidor virtual para UBUNTU 18.04 + apache + php7.2
La última línea lo hace diferente a las otras respuestas.
fuente
Tuve un error similar, pero en combinación con Nextcloud. Entonces, en caso de que esto no funcionó, intente: echar un vistazo al manual de Nginx .
fuente