> Faqs > Mostrar errores PHP en la página, en vez de error 500

Mostrar errores PHP en la página, en vez de error 500

Estoy entrando en mi servidor y veo un error 500 que no me deja entender qué es lo que está ocurriendo. Por lo visto el error 500 es un error de programación en PHP. Mi alojamiento es PHP y estas páginas deberían estar funcionando en este servidor, porque las tengo funcionando correctamente en mi servidor local.

¿Existe alguna manera de hacer que el servidor muestre los errores PHP en vez de sacar el error 500? Porque yo antes, cuando tenía errores de PHP en mi página, salía el error en la propia página y entonces se podía entender qué es lo que estaba pasando.

Respuestas

Vamos a ver. El tema que tienes puede venir por varios temas. Uno de ellos, el más probable, es bien simple, porque sólo tienes que configurar el PHP.ini para que muestren los errores de PHP.

Esto se hace con la directiva del PHP.ini display_errors. Lo más seguro que tendrás en tu PHP.ini la variable de esta manera:

display_errors = Off 

Esto sería lo correcto para un servidor en producción (el servidor en el que entran los usuarios para ver la página), que debería funcionar correctamente. En un entorno de producción puede ser buena idea no mostrar los errores PHP para que los usuarios no vean informaciones críticas o delicadas.

Pero claro, si no ves los errores, puede que sea dificil saber qué es lo que está pasando. Entonces, en el php.ini puedes colocar:

display_errors = On 

Ahora bien, también tendrías que tener acceso al php.ini. Si no tienes acceso a modificar ese fichero, pregunta al servicio técnico de tu alojamiento para que te digan cómo mostrar los errores. Quizás ellos te faciliten, a través del panel de control de tu hosting, una opción para ver el log de errores PHP. O quizás estos logs se acumulen en tu espacio de alojamiento.

Bueno... y otra de las cosas que pueden pasar es que tengas un error en tu fichero .htaccess. Si es que tienes un fichero de estos en tu servidor, prueba momentáneamente a quitarlo, para ver si el error persiste. Si ya no te da ese error, pues revisa el htaccess para ver qué es lo que pueda estar pasando.

Miguel Angel
3295 146 215 17

Hay una manera de mostrar los errores de PHP, sin necesidad de modificar el archivo php.ini, directamente mediante código en el archivo .php que estás programando.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

error_reporting(E_ALL);

la función ini_set() de PHP se encarga de sobreescribir la configuración por defecto del php.ini que tienes, pero únicamente para la página que estás programando. Además, la función error_reporting() define el nivel de los errores que mostrará el sistema. Con E_ALL indicamos que se muestren todos los errores y todos los warning, notices, etc.

El único problema, que es muy frecuente en realidad, es que los alojamientos básicos bloquean algunas de las funciones críticas de PHP, justamente para que no se haga un mal uso del servidor y pueda afectar al sitio web o a dominios alojados en la misma máquina. ini_set() es una función que puede alterar la configuración de PHP, por lo tanto es bastante crítica y por eso muchas veces se desactiva en alojamientos tradicionales.

Juanjo
248 8 18 5

Buenas, en mi caso actualicé la versión de PHP y se solucionó. (también comparé la versión de que funcionaba de manera local a remota).

David
0
Sí, es muy buena idea comprobar qué versión de PHP usas en local y qué versión de PHP usas en el servidor remoto, porque si no son las mismas puede que te arroje el servidor remoto errores que no existan en el servidor de desarrollo.