Aprendiendo a depurar errores en aplicaciones PHP como Wordpress

Los problemas que atendemos con más frecuencia son derivados de fallos de código en aplicaciones PHP, puede ser por un error en una modificación de código realizada recientemente, algún plugin no compatible, una actualización fallida, conflicto entre componentes, entre otros.

Cuando esto sucede, el síntoma suele ser una página en blanco o un error de tipo 500 (Internal Server Error), el sistema ocultará los detalles bajo estos dos errores para evitar que un atacante pudiese tener información sensible que le permita vulnerar la seguridad de tu web.

En este ejemplo práctico partimos de una aplicación WordPress que ha dejado de funcionar, muestra una página en blanco y no sabemos el motivo (si modificaste código, actualizaste o instalaste algún plugin, siempre será más sencillo volver sobre tus pasos para revertir el problema).

El primer paso siempre es poder ver el error real que produce el fallo interno, para ello debemos activar el mostrado de errores desde cPanel, recuerda que una vez termines de depurar el problema debes desactivar de nuevo esta función.

También es recomendable activar el modo depuración en WordPress, esto lo puedes hacer con un click usando WordPress Toolkit Deluxe o manualmente desde el fichero wp-config.php.

Ya con el mostrado de errores activos, al acceder podremos ver el mensaje de error que se produce, sería del tipo "fatal error" ya que detiene la ejecución de toda la aplicación.

Fatal error: require(): Failed opening required 
'/home/user/public_html/wp-content/plugins/woocommerce/src/Packages.php' 
(include_path='.:/opt/alt/php74/usr/share/pear') 
in /home/user/public_html/wp-content/plugins/woocommerce/woocommerce.php on line 25

Este error puede parecer un poco críptico pero es más sencillo de lo que parece, nos indica que hubo un error al cargar un fichero (Failed opening required) llamado:

public_html/wp-content/plugins/woocommerce/src/Packages.php

y que dicho intento de carga se realizó en la línea 25 del fichero:

public_html/wp-content/plugins/woocommerce/woocommerce.php

Leyendo la ruta del fichero podemos ver que se trata del plugin "woocommerce", previsiblemente estaría dañado por la falta del fichero Packages.php, por lo que podríamos optar por eliminar el directorio wp-content/plugins/woocommerce para de esa forma recuperar el acceso y volver a reinstalarlo, o restaurar dicho directorio desde nuestras copias de seguridad, usando una fecha en la que todo estuviese funcionando correctamente.

Aunque siempre contarás con nuestra ayuda para depurar este tipo de problemas, aprender como obtener esta información es esencial para que el flujo de desarrollo en tu día a día no se vea interrumpido, y puedas actuar de forma ágil ante cualquier error que surja.