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:9000
contradice su nginx conf, ¿reload nginx conf?Respuestas:
Como referencia, adjunto mi
location
bloque para capturar archivos con la.php
extensión:Vuelva a verificar
/path/to/fastcgi-params
y 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
.conf
tiene 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 unanginx
actualización el 10 de septiembre de 2014.fastcgi_params
vsfastcgi.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.conf
y verificar el valor del parámetrolisten
.2) El parámetro
listen
debe coincidir con elfastcgi_pass
pará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
location
sección en/etc/nginx/sites-enabled/default
:Compruebe que el archivo
snippets/fastcgi-php.conf
existe 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.conf
y 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/html
está 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.ini
hashort_open_tag
activado (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.c
Para compilarlo, primero instale
gcc
ylibfcgi-dev
luego 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_tag
de/etc/php5/fpm/php.ini
fuente
Agregue esto en
/etc/nginx/conf.d/default.conf
:fuente
/etc/nginx/fastcgi_params
archivo 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 configuradoOn
en 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-mysql
seguido 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-mysql
yphp-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
location
bloque 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.php
Ha 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