Cómo resolver los errores más comunes de PrestaShop
PrestaShop es uno de los CMS para tiendas online más populares. Dispone de multitud de complementos, módulos y temas para personalizar y añadir nuevas funcionalidades a nuestra tienda. Como es habitual, a medida que trabajamos con la aplicación, nos pueden aparecer mensajes de error. A continuación, explicamos cómo resolver alguno de los errores más comunes de PrestaShop.
1.- Maximum execution time exceded
Un error muy habitual mientras trabajamos con PrestaShop es el de tiempo de ejecución superado. Este error se produce cuando estamos ejecutando algún proceso que dura más tiempo del que está configurado en el PHP del alojamiento.
El mensaje de error es similar al siguiente:
«Fatal error: Maximum execution time of 10 seconds exceeded in /usr/home/example.com/web/tools/smarty/sysplugins/smarty_internal_cacheresource_file.php on line 180»
En este caso, podemos solucionarlo aumentando el tiempo de ejecución desde el apartado Configurar PHP, dentro del Panel de control del alojamiento.
2.- Request entity too large
Cuando subimos un tema o estamos haciendo alguna operación con archivos de cierto tamaño, nos puede aparecer una ventana con el error «Request entity too large».
Este error es causado por la limitación del valor de PHP post_max_size. Lo corregimos accediendo al Panel de control del alojamiento, en el apartado Configurar PHP, y aumentamos el parámetro post_max_size.
3.- Advertencia de nombre máximo de campos
Si trabajamos con formularios y también algunas herramientas de traducción, pueden mostrar un mensaje de advertencia como el siguiente:
Warning, your PHP configuration limits the maximum number of fields to post in a form: 1000 for max_input_vars.
Please ask your hosting provider to increase the this limit to 1318 at least or edit the translation file manually.
Del mismo modo que los anteriores errores mencionados, éste también se trata de un parámetro PHP que podemos aumentar desde el Panel de control del alojamiento, en el apartado Configurar PHP. Aumentamos el parámetro max_input_vars.
4.- Error al acceder a la administración
Un error que nos podemos encontrar al intentar acceder a la administración es el siguiente:
Warning: tempnam(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/usr/home/example.com/:/home/example.com/:/usr/home/services/:/usr/share/php/) in /usr/home/example.com/web/classes/PrestaShopAutoload.php on line 151
Este error es debido a que PrestaShop intenta acceder a un directorio en el que no tiene permisos. Es un error en el archivo PrestaShopAutoload.php y lo podemos corregir sustituyéndolo por el del repositorio oficial.
Conectamos por FTP, entramos en el directorio clases, y renombramos, primero, el archivo PrestaShopAutoload.php. Después, subimos el archivo que hemos descargado y ya deberíamos poder acceder a la administración de PrestaShop.
5.- Warning Bad Request
La aplicación del PrestaShop puede mostrar un aviso informativo sobre el mod_security como el siguiente:
Apache mod_security is activated on your server. This could result in some Bad Request errors.
El mod_security es un módulo de seguridad que está instalado en el servidor. Desde el Panel de control del alojamiento, en el apartado Firewall, lo podemos desactivar. Aun así, es posible que PrestaShop siga mostrando el mensaje ya que, aunque esté desactivado, sigue estando instalado en el servidor.
En este caso, si lo tenemos desactivado desde el Panel de control, ya no debemos tener en cuenta este aviso.
6.- Página en blanco
A veces, PrestaShop nos puede quedar en blanco y no mostrar nada. La principal causa de este comportamiento es cuando la aplicación necesita ampliar el límite de memoria. Podemos ampliar este parámetro PHP desde el Panel de control del alojamiento, en el apartado Configurar PHP.
Una manera para poder identificar el error que está causando la página en blanco en PrestaShop es habilitar el modo DEBUG. Lo podemos activar editando el archivo defines.inc.php dentro de la carpeta config donde tenemos instalado PrestaShop.
Modificamos la línea:
define(‘_PS_MODE_DEV_’, false);
por
define(‘_PS_MODE_DEV_’, true);
De esta manera, PrestaShop muestra los mensajes de error que se produzcan en lugar de quedarse en blanco. Nos puede ser muy útil para tratar de identificar el origen del error.