Como proveedores de servicios de programación para PrestaShop, a menudo recibimos solicitudes de soporte  con un error muy común, que es la «pantalla blanca PrestaShop» o la «página en blanco de PrestaShop».

Este error puede estar ocasionado por innumerables circustancias, pero aquí vamos a tratar de hacer una recopilación de las más comunes y sus soluciones.

Memory limit 

Con mucho, la razón más común para la pantalla en blanco es que PrestaShop alcalza el límite de memoria de PHP.

Esto depende de la configuración predeterminada del servidor, que normalmente la memoria permitida para los procesos PHP suele estar limitada a 32MB, 64MB o 128MB.

PrestaShop requiere al menos 128MB para funcionar, y algunos módulos pueden necesitar más que eso. En Pixefora a nuestros clientes recomendamos 256MB o 512MB si se dispone de un VPS.

Para aumentar el memory limit de PHP se puede hacer de varias formas.

La más segura es editar el archivo php.ini en la cuenta del sitio web, cambiando la configuración de «memory_limit» a «512 M». Si php.ini no está presente en tu sitio, puedes hacerlo usando .htaccess. Agrega esta linea a tu archivo .htaccess. php_value memory_limit 512M

¿No estás seguro como aumentar la memoria?

Pregúntanos y consigue tu presupuesto si ningún compromiso.

Permisos de archivos y carpetas incorrectos

La segunda razón más común para la pantalla blanca de PrestaShop son los persmisos incorrectos establecidos para archivos y carpetas, muy común para los servidores en los que SuPHP o FAST-CGI están habilitados.

Para que PrestaShop funcione correctamente estos permisos deben conigurarse:

  • 755 – Para carpetas
  • 644 – Para archivos

En algunos servidores los archivos PHP pueden configurarse como CGI y requiriendo permiso 755, pero esto es poco frecuente.

Si crees que los permisos de archivos o carpetas pueden estar equivocados, puedes hacerlo de forma masiva para todo el directorio de PrestaShop. 

Por ejemplo, en los servidores cPanel / WHM, usamos estos comandos para restablecer los permisos de archivos y carpetaS:

find /home/USERNAME/public_html -type d -exec chmod 755 {} \;

find /home/USERNAME/public_html -type f -exec chmod 644 {} \;

¿No estás seguro como restaurar los permisos?

Pregúntanos y consigue tu presupuesto si ningún compromiso.

Archivos corruptos o codificación erronea

Los scripts PHP pueden ser un poco exigentes cuando se trata de espacios en blanco o codificación de archivos errónea.

Lo idea es que los archivos PHP se guarden y carguen en formato de archivo UTF-8 SIM BOM, pero dependiendo del editor de archivos que utilicemos, se puede guardar el archivo en ANSI o UTF-8, que el compilador de PHP no entiende.

También es posible que en una edición de algún archivo PHP, se haya introducido accidentalmente un espacio antes de la inicial «<? php>».

La mejor manera de resolver esto es descargar una copia nueva de PrestaShop y reemplazar los archivos recientemente modificados. Si se han realizado grandes cambios en los archivos, entonces deberás verificar manualmente los formatos de archivos para detectar errores de sintaxis.

Si esto es complicado, no te preocupes.

Pregúntanos y consigue tu presupuesto si ningún compromiso.

Errores en módulos o temas recientemente instalados / actualizados.

Los complementos de PrestaShop (temas y módulos) ayudan a configurar una tienda para adaptarla a tus necesidades. Pero el inconveniente es que algunos de estos temas y módulos pueden no estar bien actualizados y puestos al día.

Muchas veces hemo visto algunos módulos que utilizan funciones en desuso o un código erroneo, lo que hace que PrestaShop muestre la pantalla en blanco.

Por lo tanto, si la pantalla blanca se mostró después de que instaló o actualizó recientemente un nuevo complemento, intenta eliminar esa carpeta del backend. Debería estar ubicado en la carpeta «/themes» o «/modules» en el public_html de tu PrestaShop, realizado un backup antes de nada.

Si esto es complicado, no te preocupes.

Pregúntanos y consigue tu presupuesto si ningún compromiso.

Faltan módulos PHP

Para que PrestaShop funcione, necesitamos los siguientes módulos PHP:

  • Mcrypt
  • OpenSSL
  • Zip
  • Curl
  • GD
  • PDO

En algunos servidores, especialmente en los VPS, es posible que uno o más de estos módulos no estén instalados.

También hemos visto casos en los que está instalado, pero no habilitados en el archivo de configuración PHP.

Para verificar si estos módulos están habilitados, copia el siguiente código en un archivo llamado «phpinfo.php» y súbelo en tu directorio de publicación. Posteriormente abrelo en un navegador y comprueba si estas extensiones estan instaladas y habilitadas:

<?php phpinfo(); ?>

OJO: Recuerda borrar el archivo phpinfo.php una vez que hayas terminado la verificación de módulos. Evita que los hackers sepan los detalles de tu configuración PHP.

Si falta algunos de esos módulos, verifica el php.ini del servidor para ver si está habilitado. Si no, deberás instalarlos.

Si esto es complicado, no te preocupes.

Pregúntanos y consigue tu presupuesto si ningún compromiso.

Database connection limit

En algunas tiendas hemos visto el error «PrestaShop Fatal error: no utf-8 support. Please check your server configuration«. 

Puede parecer que la compatibilidad con UTF-8 no está habilitada en el servidor, pero en realidad es solo que PrestaShop no puede ejecutar una consulta a la Base de Datos.

Algunos servidores tienen límites de consulta de base de datos (por ejemplo, 10.000 consultas por hora). Cualquier consutla por encima de ese límite no se enviará a la base de datos MySQL, y mostrará un error UTF-8.

Por supuesto, también es posible que la codificación UTF-8 en la base de datos pueda cambiar por algún motivo.

Si tienes un VPS, puedes solucionar esto cambiando la variable «max_questions» en el archivo de configuración de MySQL a «0» (ilimitado).

Si esto es complicado, no te preocupes.

Pregúntanos y consigue tu presupuesto si ningún compromiso.

Caché obsoleto, .htaccess incorrecto y otros

Hay innumerables razones por las que PrestaShop puede mostrar una página en blanco, algunas de ellas son:

  • Caché obsoleto: las páginas antiguas pueden entrar en conflicto con las nuevas páginas recompiladas. Para corregirlo, deshabilita el caché y fuerce una compilación.
  • Errores de .htaccess: los errores de sintaxis en los archivos .htacccess, especialmente los que se usan para pasar variables de PHP, pueden causar errores de compilación.
  • Configuración de seguridad: algunas configuraciones de seguridad, como los límites de mod_security, pueden hacer que la ejecución de según que scripts falle. Deberás averiguarlo mirando los registros del servidor web. Nosotros recomendamos en PrestaShop deshabilitar mod_security.
  • Otros: Básicamente, cualquier cosa que bloquee la ejecución correcta de los archivos de PrestaShop puede causar este error. Si ninguno de estos parece encajar con tu problema, deberás habilitar el Informe de Errores.

¿Qué hago si nada de esto funciona?

En Pixefora, resolvemos problemas siguiendo las evidencias.

En el caso de PrestaShop, si aparece una página en blanco, encontraremos formas de hacer que muestre un error. Luego revisaremos las entradas de registros asociadas y encontraremos un error real como:

“Warning: Cannot modify header information – headers already sent”

Esto nos da una pista sobre lo que está mal, y veremos la siguiente ubicación.

Si quieres intentarlo tu mismo, debes empezar habilitando el informe de errores en PrestaShop. Para ello, busca el archivo config/define.inc.php en tu directorio de PrestaShop. Edita:

define (‘_ PS_MODE_DEV_’, false);

por

define (‘_ PS_MODE_DEV_’, true);

Si esto es complicado, no te preocupes.

Pregúntanos y consigue tu presupuesto si ningún compromiso.