martes, 24 de septiembre de 2013

Solucionar pantalla blanca en Prestashop



A veces Prestashop se vuelve un poco loco y peta mostrando un pantallazo blanco, otras veces lo hace con toda la razón del mundo, sobre todo si hemos estado metiéndole mano a funciones, plantillas u otros maltratos que le hacemos al código de vez en cuando.

Si es porque hemos estado trasteando seguramente localizaremos rápidamente el problema, pero si surge por amor al arte es cuando nos puede desesperar un poco, sobre todo cuando lo hace a las 00:45 de la noche.

Voy a poner un par de consejos básicos que seguramente ya habréis visto en mil páginas y luego una que fue mi solución y no encontré por ningún lado.

Los pantallazos en blanco los podemos separar en diferentes casos.

Pantalla blanca en el Frontend con acceso al Backoffice: El problema estará en algún módulo instalado, en algún archivo de la raíz o tema o una mala compilación de smarty.

Pantalla blanca en el Backoffice con acceso al Frontend: Esto suele ser debido a errores de código en la carpeta del backoffice.

Pantalla blanca en Frontend y Backoffice: Errores de base de datos, de clases, de cache, de htaccess, o diferentes errores que los afecten por separado.

Creo que con esto seremos capaces de acotar el problema y solucionarlo más rápidamente.
Si nos encontramos en algún caso de estos y en la pantalla blanca no aparece ningún mensaje activaremos el modo debug manualmente.

Activar el Modo Debug de Prestashop

Lo más fácil es conectar a la FTP y descargar los archivos indicados, que editaremos en local y los subiremos de nuevo al dominio.

Para versiones inferiores a la 1.5.3 realizaremos los Pasos 1 y 2 y para versiones igual o superiores a la 1.5.3 haremos únicamente el Paso 2.

Paso 1
Buscamos el archivo www.mitienda.com/config/config.inc.php
Encontramos el siguiente código @ini_set('display_errors', 'off');
Y lo activamos, quedará así @ini_set('display_errors', 'on');

Paso 2
Ahora abrimos el archivo www.mitienda.com/config/defines.inc.php
Buscamos esto define('_PS_MODE_DEV_', false);
Y lo activamos de la siguiente forma define('_PS_MODE_DEV_', true);

Analizando errores.

Ahora si intentamos abrir la tienda nos mostrará los errores y seremos capaces de ver en qué línea está fallando. Los errores los veremos de uno en uno, así que cuando solucionemos uno y actualicemos la página no te alarmes si van apareciendo uno detrás de otro, claro está que dependerá del caso de cada uno y tendremos que realizar unas acciones u otras, aunque lo mejor será sustituir dichos archivos por una copia de seguridad, o si se trata de un módulo desinstalarlo, o eliminarlo.

Existe un caso en el que el debug no mostrará ningún error y la pantalla seguirá blanca tanto en el Backoffice como en el Frontend, esto suele ocurrir por una mala compilación de la cache o como en mi caso seguramente será por culpa del archivo class_index.php que encontraremos en la carpeta www.mitienda.com/cache/
 
Este archivo se genera automáticamente y a veces se trunca por la buenas, dejando la tienda inoperativa, si nos fijamos en la fecha del archivo veremos que será justo el momento en el que dejo de funcionar la tienda. Lo eliminamos y al actualizar la página todo funcionará correctamente.

No hay comentarios:

Publicar un comentario