X

Error 500 en Drupal – ¿Cómo solucionarlo?

Cualquier persona que tenga un sitio web probablemente se ha cruzado con el famoso error 500 alguna vez en su vida.

Este es un error que generalmente se da por temas relacionados a la programación/desarrollo o configuración del sitio, aunque en algunos pocos casos se pueden dar por la configuración del servidor o del webserver. Es común también ver el error 500 en WordPress a veces luego de que actualizamos un plugin o el theme de nuestra web.

Hoy vamos a ver este tema desde un punto de vista en particular, echaremos un vistazo el Error 500 en Drupal y cómo solucionarlo.

Origen del error 500 en Drupal

Como ya les comentábamos en el primer párrafo, los errores 500 suelen originarse en el 95% de los casos en configuraciones relacionadas a nuestro sitio web. Esto puede ser, por ejemplo, el uso de ciertos plugins o themes, o si tenemos el sitio programado para utilizar algo que no debamos estar utilizando.

Un ejemplo sencillo sería el uso de una función shell_exec de PHP, que en la mayoría de los servidores web de hosting compartido viene desactivada por seguridad.

Si por ejemplo intentamos utilizar una función que no está activa, puede derivar en un error 500 (a veces llamado Internal Server Error). Otro posible origen para el error 500 en Drupal son las actualizaciones de componentes como plugins/extensiones y themes/plantillas.

No es nada raro que en una versión nueva se introduzca una funcionalidad que por algún motivo no es compatible con el server y termina rompiendo nuestro sitio. Esta es una de las grandes razones por las cuales siempre debemos generar backups antes de hacer actualizaciones en nuestra web.

Los motivos por los cuales tu Drupal puede dar un error 500 son realmente muchos, incluso puede darse por configuraciones en el .htaccess que no son compatibles con el handler PHP del servidor, como sería el caso de un php_flag o php_value en un servidor que corre con suPHP. Resumiendo, las principales causas detrás del error 500 son:

  • Configuraciones a nivel de Drupal.
  • Configuración o funciones de un plugin.
  • Funciones del theme.
  • Una actualización reciente de plugins o theme.
  • Un .htaccess mal configurado.
  • Uso de una versión incorrecta de PHP que no sea compatible con la programación del sitio.
  • Uso de permisos/propietario incorrecto en carpetas como public_html.

Lo importante en cualquier caso es saber cómo encontrar el origen del error, y para eso lo que debemos hacer es revisar nuestros logs o bien activar el display_errors de PHP.

Ambas opciones nos pueden ayudar a identificar el origen de un error 500.

Generalmente el log es la mejor alternativa, aunque en ocasiones es posible que el log no guarde nada y el origen del error sí se vea al activar display_errors, o viceversa por supuesto: no se ve nada nuevo con display_errors activo pero sí se guardan datos relevantes en el log.

Cómo solucionar el error 500 en Drupal

Como ya comentábamos, hay muchos factores que entran en juego a la hora de investigar un error 500, ya que puede tener su origen en muchas cosas distintas, desde configuraciones del propio Drupal o de plugins hasta reglas de .htaccess o incluso puede darse por un tema de propietario o permisos.

Lamentablemente no existe una solución global para un error como este, lo que debemos hacer es activar el display_errors de PHP, verificar el error_log del sitio o bien incluso podemos activar el modo debug/desarrollador de Drupal, que nos arrojará información adicional sobre lo que estamos viendo y puede ser muy útil si no logramos obtener nada mediante el error_log ni el display_errors.

Dependiendo de lo que encontremos a la hora de buscar el origen del error, tendremos que proceder de una forma u otra. Por ejemplo si vemos que el error se debe a permisos/propietario incorrectos tendremos que corregirlos, esto se hace por ejemplo desde un gestor de FTP o desde el gestor de archivos de cPanel.

Si el origen está relacionado a la versión de PHP del sitio, o una configuración a nivel de PHP, podemos editar el PHP de nuestro sitio y hacer los cambios necesarios.

Por ejemplo en los planes compartidos de Infranetworking contamos con un genial Selector PHP para que puedas personalizar el PHP de cada sitio, de forma que cada cuenta de cPanel disponga de un PHP independiente, con su propia versión y configuraciones, como se ve en la captura de abajo para que te hagas una idea.

En el caso de que estés recibiendo el error luego de haber realizado una actualización de Drupal o de alguno de sus componentes, hay que solucionarlo cuanto antes.

En muchas ocasiones lo mejor que se puede hacer es restaurar un respaldo, de forma que después podamos montar el mismo sitio en un ambiente de desarrollo y allí realizar todas nuestras pruebas tranquilamente, para recién proceder a actualizar en producción cuando estemos seguros de que en desarrollo todo ha funcionado bien.

Por supuesto para poder restaurar un respaldo es imprescindible tener uno a mano, así que recuerda absolutamente siempre realizar un respaldo antes de correr actualizaciones en tu sitio, de esta forma te ahorrarás un gran dolor de cabeza y tener una pérdida de usuarios y dinero.

Conclusión

Como hemos podido ver, el origen del error 500 en Drupal puede estar en muchos lugares distintos, como configuraciones del sitio, configuraciones de .htaccess, del PHP de la cuenta, en los permisos de carpetas importantes, etc.

La solución por supuesto dependerá de dónde se origine el error, y para poder rastrearlo contamos con distintas herramientas como el display_errors de PHP, el propio error_log del sitio o incluso el modo debug/developer de Drupal. Si utilizamos todas estas herramienta de seguremos encontraremos el origen del error 500 en Drupal y podremos descubrir cómo solucionarlo.

Artículos relacionados