¿Cómo puedo hacer que PHP muestre el error en lugar de darme un error interno del servidor 500 [duplicado]
Esto nunca ha sucedido antes. Por lo general, muestra el error, pero ahora solo me da un error interno del servidor 500. Por supuesto, antes, cuando mostraba el error, eran servidores diferentes. Ahora estoy en un servidor nuevo (tengo root completo, así que si necesito configurarlo en algún lugar de php.ini, puedo hacerlo). ¿O tal vez sea algo con Apache?
Lo he estado soportando simplemente transfiriendo el archivo a mi otro servidor y ejecutándolo allí para encontrar el error, pero se ha vuelto demasiado tedioso. ¿Hay alguna manera de solucionar esto?
Verifique la configuración y error_reporting
en su archivo. Deben configurarse en y respectivamente (aunque no debe usarlos en un servidor de producción, así que desactívelo y utilícelo en su lugar si lo implementa). También puedes cambiar estas configuraciones (excepto ) al comienzo de tu script para configurarlas en tiempo de ejecución (aunque es posible que no detectes todos los errores de esta manera):display_errors
display_startup_errors
php.ini
E_ALL
"On"
display_errors
log_errors
display_startup_errors
error_reporting(E_ALL);
ini_set('display_errors', 'On');
Después de eso, reinicie el servidor.
Utilice php -l <filename>
(es una 'L') desde la línea de comando para generar el error de sintaxis que podría estar causando que PHP arroje el error de estado 500. Generará algo como:
PHP Parse error: syntax error, unexpected '}' in <filename> on line 18
Vale la pena señalar que si su error se debe a .htaccess, por ejemplo, falta un rewrite_module, aún verá el error 500 interno del servidor.
Tenga cuidado de comprobar si
display_errors
o
error_reporting
está activo (no es un comentario) en algún otro lugar del archivo ini.
Mi servidor de desarrollo se negó a mostrar errores después de actualizar a Kubuntu 16.04. Revisé php.ini numerosas veces... resultó que había un diplay_errors = off; alrededor de 100 líneas debajo de mi
display_errors = on;
¡Así que recuerda que el último cuenta!