Cómo resolver el error 500 en PrestaShop (Syspanel y otros)
¡Hola! Soy tu técnico de soporte amigable. Hoy vamos a desentrañar uno de los errores más temidos por los dueños de tiendas online: el temido error 500 en PrestaShop. Esa pantalla en blanco o el mensaje de "Error interno del servidor" pueden parecer el fin del mundo, pero no te preocupes, con esta guía paso a paso lo resolveremos juntos. Cubriremos desde causas comunes hasta soluciones específicas para Syspanel (accesible por el puerto 2106) y otros entornos de hosting.
Vamos a ello.
¿Qué es el error 500 en PrestaShop y por qué ocurre?
El error 500 es un código de estado HTTP que significa "Error interno del servidor". Es una forma genérica que tiene el servidor de decir: "Algo salió mal, pero no puedo darte más detalles por seguridad". En PrestaShop, esto suele deberse a problemas con archivos de configuración, módulos incompatibles, límites de memoria, permisos incorrectos o errores en el archivo .htaccess.
[INFO] No entres en pánico. El error 500 rara vez significa que hayas perdido datos. Casi siempre es un problema de configuración que se puede arreglar desde el panel de control o mediante FTP.
Primeros pasos: Activar el modo debug de PrestaShop
Antes de tocar nada, necesitamos que PrestaShop nos hable. Por defecto, el error 500 no muestra detalles, pero podemos activar el modo debug para ver el mensaje real del error.
Cómo activar el modo debug desde FTP
- Conéctate a tu hosting mediante FTP (FileZilla, Cyberduck, etc.).
- Busca la carpeta raíz de tu tienda (normalmente
public_html,wwwo el nombre de tu dominio). - Localiza el archivo
config/defines.inc.php. - Descárgalo, ábrelo con un editor de texto (Notepad++, Sublime Text, etc.) y busca esta línea:
define('_PS_MODE_DEV_', false); - Cámbiala a:
define('_PS_MODE_DEV_', true); - Guarda el archivo y súbelo de nuevo al servidor (sobrescribiendo el original).
Ahora, al recargar tu tienda, en lugar de la pantalla en blanco, verás un mensaje de error detallado con números de línea y archivos. Anota ese mensaje, nos será muy útil.
[WARNING] No dejes el modo debug activado en una tienda en producción. Una vez solucionado el error, vuelve a poner
_PS_MODE_DEV_enfalse.
Causa común #1: Límite de memoria PHP insuficiente
PrestaShop es un sistema exigente. Si tu tienda tiene muchos productos, módulos o tráfico, puede superar el límite de memoria PHP por defecto (normalmente 128M o 256M).
Solución desde Syspanel (puerto 2106)
Si tu hosting usa Syspanel (el panel de control que usamos aquí), es muy fácil ajustar esto:
- Accede a tu Syspanel en
https://tudominio.com:2106(o la IP de tu servidor con ese puerto). - Inicia sesión con tus credenciales.
- Busca la sección de "PHP" o "Opciones de PHP" (puede variar según la versión).
- Dentro de la configuración, busca el parámetro
memory_limit. - Auméntalo a
256Mo incluso512Msi tu hosting lo permite. - Guarda los cambios y reinicia el servicio de PHP si es necesario (suele haber un botón para ello).
Solución desde cPanel o Plesk
En otros paneles, el proceso es similar:
- cPanel: Ve a "Seleccionar versión de PHP" > "Opciones de PHP" y cambia
memory_limit. - Plesk: Ve a "Configuración de PHP" en el dominio correspondiente.
Solución manual mediante FTP
Si no tienes acceso al panel, puedes crear un archivo php.ini en la raíz de tu tienda con este contenido:
memory_limit = 256M
max_execution_time = 180
max_input_time = 180
upload_max_filesize = 64M
post_max_size = 64M
Sube el archivo y comprueba si el error desaparece.
Causa común #2: Módulos o temas incompatibles (especialmente después de actualizar)
Las actualizaciones de PrestaShop o de módulos suelen ser el detonante del error 500. Un módulo desactualizado o un tema mal codificado pueden romper la tienda.
Cómo identificar el módulo problemático
- Con el modo debug activado, busca en el mensaje de error el nombre del archivo que aparece. Por ejemplo:
.../modules/mimodulo/mimodulo.php. - Si ves un nombre de módulo, ese es el culpable.
Solución: Deshabilitar el módulo desde la base de datos (sin acceso al back office)
Si no puedes entrar al panel de administración, tendrás que desactivar el módulo directamente en la base de datos:
- Accede a phpMyAdmin desde tu panel de control (Syspanel, cPanel, etc.).
- Selecciona la base de datos de tu tienda PrestaShop.
- Busca la tabla
ps_modules(el prefijo puede serps_u otro). - Busca la fila del módulo problemático (por su nombre o id).
- Cambia el valor de la columna
activede1a0. - Guarda los cambios.
[TIP] Si no sabes qué módulo es, puedes desactivar todos los módulos no nativos de PrestaShop ejecutando esta consulta SQL en phpMyAdmin (¡con cuidado!):
UPDATE ps_modules SET active = 0 WHERE id_module > 1;
Luego ve reactivándolos uno a uno desde el back office.
Solución: Renombrar la carpeta del módulo vía FTP
Otra forma rápida de deshabilitar un módulo es renombrar su carpeta:
- Conéctate por FTP a la carpeta
/modules/de tu tienda. - Busca la carpeta del módulo sospechoso (ej:
mimodulo). - Cámbiale el nombre a algo como
_mimodulo_old. - PrestaShop ya no lo cargará y el error debería desaparecer.
Causa común #3: Archivo .htaccess corrupto o con reglas incorrectas
El .htaccess es un archivo de configuración del servidor Apache que PrestaShop usa para las URL amigables y la seguridad. Si se daña, provoca el error 500.
Solución: Regenerar el .htaccess desde el back office
Si aún puedes acceder al panel de administración:
- Ve a Parámetros de la tienda > Tráfico y SEO.
- En la sección "URLs amigables", desmarca la opción y guarda.
- Luego, vuelve a marcarla y guarda de nuevo. Esto regenera el
.htaccess.
Solución: Renombrar el .htaccess manualmente
Si no puedes entrar al back office:
- Conéctate por FTP a la raíz de tu tienda.
- Localiza el archivo
.htaccess(puede estar oculto; activa la opción "Mostrar archivos ocultos" en tu cliente FTP). - No lo borres, solo renómbralo a algo como
.htaccess_old. - Ahora intenta cargar tu tienda. Si funciona, el problema era el
.htaccess. - Para regenerarlo, entra al back office (si puedes) o crea uno nuevo desde la configuración de SEO.
[WARNING] Si renombras el
.htaccess, perderás las URL amigables temporalmente. La tienda seguirá funcionando, pero las URLs se verán comoindex.php?id_product=1. No te preocupes, al regenerarlo vuelven a la normalidad.
Causa común #4: Permisos de archivos y carpetas incorrectos
PrestaShop necesita permisos específicos para leer y escribir archivos. Si después de una migración o actualización los permisos se desconfiguran, aparece el error 500.
Permisos correctos para PrestaShop
- Carpetas: 755 (rwxr-xr-x)
- Archivos: 644 (rw-r--r--)
- Carpetas especiales (cache, log, upload, config): 777 (rwxrwxrwx) en algunos entornos, pero 755 suele ser suficiente si el servidor está bien configurado.
Cómo corregirlos desde Syspanel (puerto 2106)
En Syspanel, puedes usar el administrador de archivos:
- Ve a "Archivos" > "Administrador de archivos".
- Navega a la raíz de tu tienda.
- Selecciona todas las carpetas y archivos (Ctrl+A).
- Busca la opción "Permisos" o "CHMOD".
- Aplica 755 a las carpetas y 644 a los archivos. Si la herramienta no distingue, usa 755 para todo y luego cambia manualmente los archivos de la carpeta
config,cache,logyuploada 777 si es necesario.
Cómo corregirlos desde FTP
En FileZilla, puedes hacer clic derecho sobre una carpeta o archivo, seleccionar "Permisos de archivo..." y escribir el número (755, 644, etc.). Para cambiar todo un árbol de directorios, selecciona la carpeta raíz, haz clic derecho > "Permisos de archivo..." y marca "Recursivo en subdirectorios".
Causa común #5: Problemas con el archivo settings.inc.php
El archivo config/settings.inc.php contiene la configuración de la base de datos. Si está dañado o tiene datos incorrectos (por ejemplo, después de un cambio de contraseña de la base de datos), el error 500 es inmediato.
Solución: Verificar y corregir settings.inc.php
- Descarga el archivo
config/settings.inc.phpvía FTP. - Ábrelo con un editor de texto.
- Busca estas líneas y asegúrate de que los datos sean correctos:
define('_DB_SERVER_', 'localhost'); // o la IP del servidor de BD define('_DB_NAME_', 'nombre_base_datos'); define('_DB_USER_', 'usuario_base_datos'); define('_DB_PASSWD_', 'contraseña_base_datos'); define('_DB_PREFIX_', 'ps_'); - Si algo está mal, corrígelo, guarda y sube el archivo de nuevo.
[INFO] Si acabas de migrar tu tienda a un nuevo servidor, este archivo es el primero que debes revisar.
Causa común #6: Cache de PrestaShop o de PHP corrupta
A veces, el error 500 es simplemente un archivo de caché obsoleto o corrupto.
Solución: Limpiar la caché manualmente
- Conéctate por FTP.
- Borra todo el contenido de la carpeta
/cache/smarty/compile/(no borres la carpeta en sí, solo su interior). - Borra todo el contenido de
/cache/smarty/cache/. - Si existe, borra también el contenido de
/cache/class_index.php(puedes borrar el archivo directamente, se regenerará solo).
Solución: Limpiar la caché de PHP (OPcache)
Si tu servidor usa OPcache (común en PHP 7+), puede que esté sirviendo una versión antigua del código.
- Desde Syspanel: Busca la opción "Limpiar caché de PHP" o "Reiniciar PHP".
- Desde cPanel: Ve a "Seleccionar versión de PHP" y haz clic en "Limpiar caché de OPcache".
- Mediante un archivo: Crea un archivo llamado
opcache_clear.phpen la raíz con este contenido:
Ejecútalo desde el navegador (ej:<?php opcache_reset(); echo 'Caché de OPcache limpiada.';tudominio.com/opcache_clear.php) y luego bórralo por seguridad.
Causa común #7: Problemas con la versión de PHP
PrestaShop 1.7, por ejemplo, necesita PHP 7.1 como mínimo, y la versión 8.0+ puede dar problemas con algunos módulos. Si tu hosting ha actualizado PHP automáticamente, puede provocar el error 500.
Solución: Cambiar la versión de PHP desde Syspanel
- En tu Syspanel (puerto 2106), busca la sección "PHP".
- Deberías ver una lista de versiones disponibles (7.4, 8.0, 8.1, etc.).
- Selecciona una versión compatible con tu PrestaShop. Para PrestaShop 1.7, recomendamos PHP 7.4 o 8.0 (con cuidado). Para PrestaShop 8.x, PHP 8.1 es ideal.
- Guarda los cambios y espera unos segundos a que se apliquen.
Preguntas Frecuentes (FAQ)
¿El error 500 puede deberse a un ataque o malware?
Sí, aunque es menos común. Un archivo malicioso inyectado en tu tienda puede causar un error 500. Si después de seguir todos los pasos el error persiste, revisa los archivos en busca de código extraño (especialmente en index.php, config/ y modules/).
¿Pierdo mis productos si borro la carpeta cache?
No, los productos, pedidos y clientes están en la base de datos. La carpeta cache solo contiene archivos temporales. Es completamente seguro borrar su contenido.
¿Qué hago si no puedo acceder ni al FTP ni al panel de control?
Contacta con tu proveedor de hosting. Ellos pueden acceder directamente al servidor y desactivar módulos, cambiar permisos o revisar logs del servidor (como el error_log que suele estar en la raíz). Diles que necesitas revisar el "error log" de tu dominio.
¿El modo debug muestra información sensible?
Sí, muestra rutas de archivos, consultas SQL y a veces datos de configuración. Por eso es importante desactivarlo en tiendas en producción. Si necesitas mantenerlo activo por un tiempo, asegúrate de que solo tú tengas acceso.
¿Syspanel es lo mismo que HestiaCP?
Sí, en este artículo nos referimos a Syspanel como la interfaz amigable de HestiaCP. Recuerda que el acceso es por el puerto 2106 (ej: https://tudominio.com:2106).
Resumen y recomendaciones finales
Hemos recorrido las causas más comunes del error 500 en PrestaShop y cómo solucionarlo, desde ajustar el límite de memoria hasta limpiar la caché. Aquí tienes un checklist rápido:
- ✅ Activa el modo debug para ver el error real.
- ✅ Aumenta el límite de memoria PHP (desde Syspanel o manualmente).
- ✅ Desactiva módulos sospechosos (vía base de datos o FTP).
- ✅ Renombra o regenera el archivo
.htaccess. - ✅ Verifica los permisos de archivos y carpetas (755/644).
- ✅ Revisa
config/settings.inc.phppor datos incorrectos. - ✅ Limpia la caché de Smarty y de PHP.
- ✅ Cambia la versión de PHP si es necesario.
Si después de todo esto el error persiste, no dudes en contactar a tu soporte técnico. Diles que ya has seguido estos pasos y que necesitas revisar los logs del servidor (archivos error_log). Con paciencia y método, ese molesto error 500 desaparecerá.
¡Ánimo, que tu tienda volverá a funcionar en breve!
