Miércoles, 05 Agosto 2015 23:34

Log de errores en el dashboard de WordPress ¡controlando el problema!

Escrito por 
CMS:  WordPress |  Versión:  Todas |  Nivel de dificultad:  Básico |  Tiempo estimado de lectura:  10 minutos


Log de errores en el dashboard de WordPress ¡controlando el problema!Trabajar con WordPress implica pasar por procesos o fases en las que tenemos que depurar errores, unos producidos por el uso de plugins o temas incompatibles o desactualizados que afectan al funcionamiento de la web y otros provocados por nosotros mismos en el afán de realizar mejoras o añadir nuevas funcionalidades.

No seas manazas y usa un child-teme o trabaja en una sandbox antes de toquetear en el archivo functions.php

Sea cual sea tu motivo para tener que consultar los archivos de errores o logs, quiero decirte que además de ser importante saber localizarlos e interpretarlos, debes verlos como un aliado en tu labor de administrar y mantener un sitio con WordPress en perfecto estado de salud.

Solo entendiendo que la información que los logs de errores te aportan son el indicador claro de un problema y el punto de partida para solucionarlo llegarás a la conclusión de que ¡los logs están para ayudarte y facilitarte la localización de problemas!

El diagnóstico de problemas de WordPress, especialmente para las personas sin conocimientos técnicos, puede ser un trabajo muy desalentador.

Control de errores desde wp-config.php

Tal vez sea la forma más fácil de implementar un control de errores de PHP añadiendo unas líneas de código simples en el archivo wp-config.php.

Puedes crear un archivo vacío llamado php-errors.log. Este archivo servirá como registro de errores de PHP de tu sitio. El servidor tendrá acceso de escritura a este archivo (establece los permisos adecuados para ello).

Este archivo puede ser colocado en cualquier directorio, pero situándolo por encima del directorio raíz /public_html de tu sitio no será accesible desde el navegador. Una vez creado este archivo, con permisos de escritura, toma nota de la ruta absoluta, por ejemplo: /home/usuario/tmp/php-errors.log de esta forma tendrás permisos de escritura pero no será visible vía web.

A continuación, abre el archivo wp-config.php de tu sitio (ubicado en el directorio raíz de tu instalación de WordPress) y coloca el código siguiente inmediatamente por encima de la línea que dice:

/* ¡Eso es todo, deja de editar! Feliz blogging */

El código a insertar es:

// log de errores de php
@ini_set('log_errors','On'); // habilitar o deshabilitar el registro de errores php (utiliza 'On' u 'Off')
@ini_set('display_errors','Off'); // activar o desactivar la exhibición pública de los errores (utiliza 'On' u 'Off')
@ini_set('error_log','/home/pruebasw/tmp/php-errors.log'); // ruta del archivo de log del servidor con permisos de escritura

Nota: deberás cambiar /home/pruebasw/tmp/php-errors.log por tu ruta al archivo citado.

A partir de ahora todos los errores de PHP se registrarán en este archivo, permitiendo que puedas revisar y resolver los errores teniendo información concreta a tu alcance.

Debes añadir los siguientes defines en el archivo wp-config.php y los errores de depuración de WordPress se escribirán en el archivo php-errors.log.

define ('WP_DEBUG', true); // Habilitar el modo de depuración
define ('WP_DEBUG_LOG', true);

La mayoría de las instalaciones de WordPress ya tienen una entrada para WP_DEBUG establecida en false por lo que tendrás que cambiar este valor a true (verdadero). No es tan común tener WP_DEBUG_LOG ya establecido en wp-config.php y lo más probable es que tengas que agregar esa línea.


Probando, probando, 1 2 3...

Una manera fácil de probar que tu sistema de registro de errores está funcionando es disparar algunos errores básicos de PHP. Para ello puedes ir a Apariencia, Editor, editar el archivo de funciones del tema functions.php y añadir algo de código que desencadene un error, por ejemplo:

<? php echo "error"?>


¡¡Ojo!!! No hagas esto en una web "en producción" ya que dejará de ser accesible inmediatamente. Solo para pruebas desde una "sandbox" o en una copia de tu web.

El resultado del error recogido por el archivo php-errors.log será similar al siguiente:



Lo resuelves editando el archivo /public_html/wp-content/themes/tu_tema_en_uso/functions.php de tu Tema en uso y eliminando el código añadido al final. Guardas los cambios y tu web estará operativa de nuevo. :)

Si estás generando errores pero no se escriben en el archivo de registro php-errors.log, verifica que el archivo tiene permisos de escritura (normalmente 644) y que se encuentra en la carpeta adecuada de tu Hosting.


Un plugin muy práctico

Un plugin que puedes utilizar para analizar errores desde el dashboard y sin tener que averiguar dónde localizar esos archivos error_log, php-errors.log o consultar los registros de errores de tu panel de hosting cPanel, es el plugin llamado Error Log Monitor.

WordPress

Error Log Monitor

Añade un widget en el dashboard de WordPress que muestre las últimas entradas del registro de errores de PHP. También puedes enviar errores registrados a tu correo electrónico.

Lo instalas, activas y verás en el escritorio del dashboard un widget que irá recolectando los errores de PHP que vayan surgiendo en tu instalación activa.



Para que te funcione debes insertar este define en el archivo wp-config.php de tu instalación de WordPress, antes del texto /* ¡Eso es todo, deja de editar! Feliz blogging */:

ini_set('log_errors', 'On');
ini_set('error_log', '/home/pruebasw/public_html/wpencelado/php-errors.log');
Nota: La ruta de 'error_log' debe ser la relativa a la localización de tu archivo php-errors.log.


Conociendo la localización de los archivos de error y sabiendo interpretarlos adecuadamente o buscando en Internet a raíz del error encontrado en tu log de errores, tendrás todo lo necesario para llevar un mayor control de errores que se vayan produciendo, lo que te permitirá asegurarte un sitio web WordPress con un buen desempeño dando una mejor experiencia de uso a tus visitantes.


¿Te ha resultado interesante este artículo?

Suscríbete para recibir consejos exclusivos para WordPress, Joomla y PrestaShop



Luis Méndez Alejo

Miembro del equipo técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Google+