Cómo solucionar el error 'Error 500' en PrestaShop (guía completa)
¿Qué significa el Error 500 en PrestaShop y por qué aparece?
El error 500 prestashop, también conocido como "Error interno del servidor", es uno de los mensajes más frustrantes que puedes encontrar al administrar tu tienda online. Es un error genérico que indica que algo salió mal en el servidor, pero no te dice exactamente qué es. Es como si tu coche se parara en medio de la carretera y el tablero solo mostrara "problema interno": sabes que hay algo, pero no sabes si es el motor, la batería o el combustible.
Este error puede aparecer en la tienda completa, en el panel de administración o solo en algunas páginas concretas. Lo bueno es que, en la mayoría de los casos, tiene solución y no implica que hayas perdido tus datos. En esta guía completa te enseñaré paso a paso cómo solucionar error 500 prestashop, desde las soluciones más simples hasta las más avanzadas.
Para que te hagas una idea, las causas más comunes son:
- Archivos con permisos incorrectos (muy frecuente).
- Un archivo .htaccess dañado o mal configurado.
- Falta de memoria PHP (límite de memoria agotado).
- Errores en módulos o temas recién instalados.
- Problemas con el archivo de configuración
config/settings.inc.php. - Incompatibilidad de versiones de PHP con tu PrestaShop.
- Problemas en el servidor (memoria, CPU, disco lleno).
Vamos a ir de lo más fácil a lo más complejo. No te saltes pasos, porque muchas veces la solución es más sencilla de lo que parece.
Primeros pasos: activar el modo de depuración de PrestaShop
Antes de tocar nada, necesitas ver el error real detrás de la pantalla blanca. PrestaShop tiene un modo de depuración que muestra los errores detallados en lugar del mensaje genérico. Esto es oro puro para diagnosticar.
### Cómo activar el modo debug desde el servidor
Accede a tu panel de control de hosting, ya sea cPanel, Plesk o Syspanel (el panel que usa HestiaCP, accesible por el puerto 2106). Busca el apartado de "Administrador de archivos" o usa FTP con un cliente como FileZilla.
Una vez dentro de la raíz de tu PrestaShop (normalmente public_html o www), busca el archivo config/defines.inc.php.
Abre ese archivo con un editor de texto (no con el bloc de notas de Windows, mejor algo como Notepad++ o el editor del propio panel). Busca esta línea:
define('_PS_MODE_DEV_', false);
Cámbiala por:
define('_PS_MODE_DEV_', true);
Guarda el archivo y sube los cambios. Ahora recarga tu tienda. En lugar del error 500, verás un mensaje con la descripción exacta del problema, como "Fatal error: Allowed memory size of X bytes exhausted". Ese mensaje te dirá exactamente por dónde tirar.
[TIP] Anota el error exacto que aparece. Te servirá para aplicar la solución correcta directamente sin tener que probar todo.
Si después de activar el modo debug la página sigue en blanco, es que el error es muy grave o hay un problema de memoria extrema. No te preocupes, sigue leyendo.
Solución 1: Revisar los permisos de archivos y carpetas
Los permisos incorrectos son la causa número uno del prestashop error 500. Si algún archivo tiene permisos demasiado restrictivos o demasiado permisivos, Apache puede bloquear la ejecución.
### Permisos recomendados para PrestaShop
- Carpetas (directorios): 755
- Archivos estáticos (imágenes, CSS, JS): 644
- El archivo
config/settings.inc.php: 444 (solo lectura) o 644 según tu hosting.
Para cambiarlos, ve al panel de archivos de tu hosting, selecciona todos los archivos de la raíz y cambia los permisos. En cPanel se hace con un clic derecho > "Change Permissions". En Syspanel (puerto 2106) busca la opción de "Permisos" en el gestor de archivos.
Si usas FTP, selecciona todo y en FileZilla: clic derecho > "File permissions...". Marca las casillas de lectura y ejecución para todos, y escritura solo para el propietario.
### Comando rápido por SSH (si tu hosting lo permite)
Si tienes acceso SSH, este comando arregla los permisos de golpe:
find /ruta/a/tu/prestashop -type d -exec chmod 755 {} \;
find /ruta/a/tu/prestashop -type f -exec chmod 644 {} \;
chmod 444 /ruta/a/tu/prestashop/config/settings.inc.php
[WARNING] Si tu hosting usa PHP como módulo de Apache (mod_php), los archivos deben tener permisos 644 y carpetas 755. Si usa PHP-FPM, a veces necesitas 775 en carpetas. Prueba primero con 755 y si sigue el error, prueba con 775.
Solución 2: Regenerar el archivo .htaccess
El archivo .htaccess es un archivo oculto en la raíz que controla las reglas de reescritura de URL y otros parámetros. Si está dañado o tiene reglas incompatibles, el servidor devuelve un error 500 prestashop.
La forma más fácil de regenerarlo es desde el panel de administración de PrestaShop, pero si no puedes acceder al panel, hazlo manualmente.
### Regenerar .htaccess desde el panel de administración
Si puedes acceder a tu back-office:
- Ve a Parámetros avanzados > Rendimiento.
- Busca la opción "Regenerar el archivo .htaccess" y actívala.
- Guarda los cambios.
### Regenerar .htaccess manualmente
Renombra el archivo .htaccess actual a .htaccess.bak (por si acaso) y crea uno nuevo con el siguiente contenido básico:
# -------- START PrestaShop
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^tudominio.com$
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ webservice/$1 [QSA,L]
RewriteRule ^.*$ - [NC,L]
</IfModule>
# -------- END PrestaShop
Sustituye tudominio.com por tu dominio real. Después, desde el back-office de PrestaShop (si puedes entrar) ve a Parámetros avanzados > Rendimiento y pulsa "Regenerar .htaccess". Si no puedes entrar, prueba a entrar a la tienda y luego vuelve a generar el archivo desde FTP después de que PrestaShop lo reescriba automáticamente.
[INFO] A veces el problema no es el archivo en sí, sino que está vacío o tiene caracteres corruptos. Renombrarlo y regenerarlo desde el panel suele arreglarlo.
Solución 3: Aumentar el límite de memoria PHP
Otro clásico. PrestaShop es una aplicación pesada, y si tu hosting tiene un límite de memoria bajo (por ejemplo, 32M o 64M), puede fallar con un error 500, sobre todo al guardar productos o generar páginas complejas.
### Dónde cambiar el límite de memoria
- Desde el archivo
config/settings.inc.php: añade esta línea al final:
ini_set('memory_limit', '256M');
-
Desde el archivo
php.ini(si tu hosting permite editarlo): buscamemory_limity cámbialo amemory_limit = 256M. -
Desde
.htaccess: añade estas líneas al inicio:
php_value memory_limit 256M
php_value max_execution_time 300
- Desde cPanel / Plesk / Syspanel: busca la sección de "PHP Settings" o "Selector de versiones de PHP" y cambia el valor de
memory_limita 256M o 512M.
[TIP] Si usas Syspanel (puerto 2106), ve a "Web > PHP Settings" y ahí puedes ajustar la memoria sin tocar archivos.
Después de cambiar esto, guarda y recarga. Si el error 500 desaparece, era falta de memoria.
Solución 4: Desactivar módulos o temas problemáticos
A veces el error 500 aparece justo después de instalar un módulo nuevo o cambiar de tema. Si es tu caso, el culpable es muy probablemente ese módulo o tema.
### Cómo desactivar módulos sin entrar al panel
Si el error te bloquea el back-office, puedes desactivar módulos desde la base de datos. Accede a phpMyAdmin (desde cPanel, Plesk o Syspanel).
Busca la tabla ps_modules (el prefijo puede variar, como ps_, prestashop_, etc.). Localiza el módulo sospechoso y cambia su campo active de 1 a 0.
### Cómo desactivar el tema actual
Si el problema es el tema, renombra la carpeta del tema en /themes/ (por ejemplo, de mi_tema a mi_tema_bak). PrestaShop usará el tema por defecto automáticamente.
### Otra opción: desactivar todos los módulos de golpe
En la tabla ps_modules, ejecuta este SQL:
UPDATE ps_modules SET active = 0;
Luego, desde el back-office, ve activando módulos de uno en uno para ver cuál causa el error.
[WARNING] Haz siempre una copia de seguridad de la base de datos antes de ejecutar comandos SQL. Si algo sale mal, puedes restaurar.
Solución 5: Revisar la versión de PHP
PrestaShop es sensible a la versión de PHP. Si tu hosting actualizó PHP a una versión demasiado nueva o demasiado antigua, puede aparecer el prestashop error 500.
### Versiones recomendadas según la versión de PrestaShop
- PrestaShop 1.6: PHP 5.6 o 7.0 (máximo 7.1).
- PrestaShop 1.7: PHP 7.1 a 7.4 (se recomienda 7.2 o 7.3).
- PrestaShop 8.x: PHP 7.2 a 8.1.
Para cambiar la versión de PHP, ve a tu panel de hosting. En cPanel busca "Select PHP Version" o "MultiPHP Manager". En Syspanel (puerto 2106), ve a "Web > PHP Settings" y elige la versión.
Si no sabes qué versión tienes, crea un archivo llamado info.php en la raíz con este contenido:
<?php phpinfo(); ?>
Ábrelo en el navegador (tudominio.com/info.php) y verás la versión. Luego borra ese archivo por seguridad.
[TIP] Si tu hosting no te deja cambiar la versión de PHP, contacta con soporte y pídeles que la cambien a la que necesitas.
Solución 6: Comprobar el espacio en disco y la memoria del servidor
Un disco duro lleno o una memoria RAM agotada en el servidor también pueden provocar errores 500. Esto es más común de lo que parece.
### Cómo comprobar el espacio en disco
Desde tu panel de hosting, busca la sección de "Estadísticas" o "Uso de disco". Si está al 95% o más, libera espacio: borra logs, cachés, backups antiguos y archivos temporales.
### Cómo comprobar la memoria del servidor
Si tu plan de hosting es muy básico (compartido), puede que el servidor esté sobrecargado. En este caso, contacta con tu proveedor y pregunta si hay problemas de recursos.
[INFO] Si usas Syspanel, puedes ver el uso de disco y RAM en la pestaña "Estadísticas" del panel. Si está al límite, considera hacer una limpieza o contratar más recursos.
Solución 7: Restaurar el archivo settings.inc.php
El archivo config/settings.inc.php contiene las credenciales de la base de datos. Si está corrupto, incompleto o con permisos incorrectos, PrestaShop no puede conectar con la base de datos y devuelve un error 500.
### Cómo verificar el archivo
Accede por FTP o gestor de archivos a /config/settings.inc.php. Ábrelo y comprueba que contiene las constantes DB_HOST, DB_USER, DB_PASSWD, DB_NAME correctas. Si alguna está vacía o con datos extraños, es el problema.
### Cómo restaurarlo desde una copia de seguridad
Si tienes una copia del archivo (de un backup anterior), súbela de nuevo. Si no, puedes crear uno nuevo con esta estructura:
<?php
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'tu_base_de_datos');
define('_DB_USER_', 'tu_usuario');
define('_DB_PASSWD_', 'tu_contraseña');
define('_DB_PREFIX_', 'ps_');
define('_MYSQL_ENGINE_', 'InnoDB');
define('_PS_CACHING_SYSTEM_', 'CacheMemcache');
define('_PS_CACHE_ENABLED_', '0');
define('_COOKIE_KEY_', 'cadena_aleatoria_de_32_caracteres');
define('_COOKIE_IV_', 'cadena_aleatoria_de_8_caracteres');
define('_PS_CREATION_DATE_', date('Y-m-d'));
define('_RIJNDAEL_KEY_', 'cadena_aleatoria_de_32_caracteres');
define('_RIJNDAEL_IV_', 'cadena_aleatoria_de_16_caracteres');
define('_PS_VERSION_', '1.7.8.0');
[WARNING] No inventes las claves de cifrado ni las contraseñas si no sabes lo que haces. Mejor restaura desde un backup o pide ayuda a tu hosting.
Solución 8: Revisar los logs del servidor
Si nada de lo anterior funciona, es hora de mirar los logs del servidor. Ahí está la respuesta exacta al error.
### Dónde encontrar los logs
- cPanel: "Errores de error" o "Error Logs" en la sección de métricas.
- Plesk: "Logs" > "Error Log".
- Syspanel (puerto 2106): "Registros" o "Logs" > "Error log".
- Vía FTP: en la carpeta
/logs/o/var/logs/si tienes acceso.
Busca las líneas que correspondan a la fecha y hora en que apareció el error 500. El mensaje te dirá exactamente qué archivo o función falla.
### Ejemplo de log típico
[Wed Oct 25 10:00:00 2025] [error] [client 192.168.1.1] PHP Fatal error: Call to undefined function mb_strlen() in /home/user/public_html/classes/Validate.php on line 325
Ese error indica que falta la extensión mbstring de PHP. Solución: instala esa extensión desde tu panel (en cPanel: "Select PHP Version" > extensiones; en Syspanel: "PHP Extensions").
Solución 9: Reinstalar PrestaShop (último recurso)
Si has probado todo y sigue el error, puede que la instalación esté dañada de forma irreparable. En ese caso, la solución más segura es reinstalar PrestaShop conservando tus datos.
### Pasos para reinstalar sin perder la tienda
- Descarga la misma versión de PrestaShop que tienes actualmente.
- Sube los archivos por FTP, pero no sobrescribas la carpeta
config/niimg/. - Ejecuta el instalador (
/install) y cuando te pida la base de datos, selecciona "No eliminar datos" o "Instalar sin borrar". - Al finalizar, borra la carpeta
/install.
[WARNING] Haz una copia de seguridad completa (archivos + base de datos) antes de intentar esto. Si algo sale mal, podrás restaurar.
Preguntas frecuentes sobre el error 500 en PrestaShop
### ¿Por qué me da error 500 solo en el panel de administración?
Suele ser por un módulo que interfiere con el back-office, por permisos incorrectos en la carpeta admin/ o por un problema de sesión.
