Nginx me está dando un error 500 que «me está volviendo loco. En primer lugar, tengo un personalsite.conf
archivo dentro de /etc/nginx/conf.d/
donde tengo mi bloque de servidor.
Esta es la configuración de mi bloque de servidor:
server { listen 80; server_name personalsite.me; charset UTF-8; access_log /var/log/nginx/personalsite.access.log main; error_log /var/log/nginx/personalsite.error.log; root /usr/share/nginx/html/personalsite; index index.php index.html index.htm; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html/; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Además, el usuario de nginx tiene los permisos adecuados asignados sobre /usr/share/nginx/html/personalsite/
.
Lo que pasa es que Nginx me está dando un error 500 cuando intento navegar personalsite.me
, y lo curioso es que lo sé porque revisé el personalsite.access.log
y lo veo, porque el navegador simplemente se queda en blanco. Por razones desconocidas Nginx no puede mostrarme su página de error 500, correctamente declarada en el bloque del servidor como puede ver.
Otra cosa extraña es que personalsite.error.log
está en blanco, no registra nada.
También tengo ese dominio declarado con su IP en mi archivo /etc/hosts
. Así que realmente no tengo idea de lo que está sucediendo aquí.
Todo es r Unning CentOS 7 en un VPS Digital Ocean.
Respuesta
La mayoría de los errores surgen debido a una mala configuración cuando se configura Nigix. Sugeriré verificar el archivo (/etc/php-fpm.d/www.conf
).
vi /etc/php-fpm.d/www.conf
Busque la línea que especifica el parámetro de escucha y cámbielo para que tenga el siguiente aspecto:
listen = /var/run/php-fpm/php-fpm.sock
A continuación, busque las líneas que establecen el listen.owner
y listen.group
y descomentarlos. Deberían verse así:
listen.owner = nobody listen.group = nobody
Por último, busque las líneas que establecen el usuario y el grupo y cambie sus valores de «apache» a «nginx»:
user = nginx group = nginx
Luego guarde y salga
/etc/init.d php-fpm restart
Respuesta
No es la mejor respuesta del mundo, pero un error 500 es demasiado ambiguo, podría ser su configuración de nginx o podría estar relacionado con el contenido de su sitio. Minimice su configuración y reconstruya hasta que pueda reproducir el problema.
Reemplace el contenido del sitio con un index.html simple con solo texto sin formato. Omita todas las directivas de error adicionales y el bloque de ubicación. Una vez que haya establecido la funcionalidad básica, puede sentirse menos loco y agregar sus otras directivas, probando sobre la marcha, hasta que pueda aislar cualquier directiva que cause problemas y pueda encontrar la causa raíz desde allí.
Comentarios
Respuesta
Cuando PHP display_errors está desactivado, los errores PHP pueden devolver el error Nginx 500.
Debería echar un vistazo a sus registros php-fpm, estoy seguro de que encontrará el error allí. Con CentOS 7:
tail -f /var/log/php-fpm/www-error.log
También puede mostrar errores de PHP. En /etc/php.ini, cambie:
display_errors = Off
a:
display_errors = On
phpinfo.php
y funciona perfectamente. El sitio web que ' estoy tratando de ejecutar usa Yii Framework. Revisé la wiki oficial y dice: " El software es nginx, php-fpm (php5-fpm). Por rendimiento, ' se recomienda ejecutar php-fpm en modo SOCKET, en lugar de acceder a través de IP: PORT. Ese es el método que se muestra a continuación " Yo ' estoy usando Nginx exactamente así. Así que no tengo idea de por qué me da un error 500 y no escribiré en el archivo error.log.