Cómo solucionar el error 500 en PrestaShop (guía definitiva)
¿Qué es el error 500 en PrestaShop y por qué aparece?
El error 500 prestashop es uno de los problemas más temidos por cualquier dueño de tienda online. Se trata de un error genérico del servidor que indica que algo ha fallado internamente, pero sin darte detalles concretos sobre qué es lo que ha ocurrido. Es como si tu tienda te dijera: "algo ha ido mal, pero no te voy a decir qué".
Este error puede aparecer en cualquier momento: al acceder al panel de administración, al visitar la página principal de tu tienda, al intentar hacer un pedido o incluso al ejecutar un módulo concreto. La buena noticia es que, en la mayoría de los casos, se puede solucionar siguiendo una serie de pasos lógicos y ordenados.
Antes de empezar con las soluciones, es importante que entiendas las causas más comunes que provocan este error:
- Archivos con permisos incorrectos (generalmente después de una migración o actualización).
- Un módulo o tema que está generando un conflicto.
- Problemas con el archivo
.htaccessde PrestaShop. - Límite de memoria PHP agotado (memory_limit).
- Errores de sintaxis en archivos modificados manualmente.
- Problemas con la versión de PHP instalada en tu hosting.
- Base de datos corrupta o con tablas dañadas.
A lo largo de esta guía definitiva, te voy a enseñar a solucionar error 500 prestashop paso a paso, desde las soluciones más sencillas hasta las más avanzadas. No necesitas ser un experto en programación, solo tener paciencia y seguir el orden que te propongo.
Primeros pasos: activa el modo debug para ver el error real
¿Qué es el modo debug en PrestaShop?
Cuando PrestaShop muestra un error 500, lo primero que debes hacer es activar el modo debug para que la plataforma te muestre el error real que está ocurriendo. Sin esto, es como intentar arreglar un coche sin abrir el capó.
Para activar el modo debug, tienes que editar el archivo config/defines.inc.php que se encuentra en la raíz de tu instalación de PrestaShop. Busca la línea que dice:
define('_PS_MODE_DEV_', false);
Y cámbiala por:
define('_PS_MODE_DEV_', true);
Guarda el archivo y vuelve a cargar tu tienda. Ahora verás un mensaje de error mucho más detallado, con información sobre el archivo y la línea exacta donde se produce el problema.
[WARNING] No olvides desactivar el modo debug cuando termines de solucionar el error. Dejarlo activo en producción es un riesgo de seguridad grave.
¿Y si no puedo acceder al archivo por FTP?
Si no tienes acceso por FTP o por el administrador de archivos de tu hosting, puedes usar otra técnica. Crea un archivo llamado phpinfo.php en la raíz de tu PrestaShop con este contenido:
<?php phpinfo(); ?>
Ábrelo en tu navegador y busca la sección de "Configuration File" para ver la ruta del archivo php.ini. Esto te servirá más adelante para ajustar la configuración de PHP.
Solución 1: Verifica los permisos de archivos y carpetas
Permisos correctos para PrestaShop
Una de las causas más frecuentes del prestashop error critico son los permisos incorrectos en archivos y carpetas. Después de una migración, restauración o actualización, es muy común que los permisos se configuren de forma incorrecta.
Los permisos recomendados para PrestaShop son:
- Carpetas: 755 (rwxr-xr-x)
- Archivos: 644 (rw-r--r--)
- Archivo config/settings.inc.php: 444 (r--r--r--)
Para cambiar los permisos, puedes usar tu cliente FTP (FileZilla, por ejemplo). Selecciona todos los archivos y carpetas, haz clic derecho y elige "Permisos de archivo". Introduce el valor correspondiente y marca la opción de "Aplicar a todos los archivos y carpetas subyacentes".
[TIP] Si tu hosting usa Syspanel (antes conocido como HestiaCP), puedes acceder a su panel de control a través del puerto 2106 (por ejemplo,
https://tu-dominio.com:2106). Allí encontrarás un administrador de archivos integrado que te permitirá cambiar permisos sin necesidad de FTP.
Comprueba también el propietario de los archivos
Además de los permisos, es importante que el propietario de los archivos sea correcto. En la mayoría de los hosting compartidos, el usuario de FTP debe ser el propietario. Si los archivos pertenecen a otro usuario, podrías tener problemas incluso con permisos correctos.
Solución 2: Regenera el archivo .htaccess
El .htaccess de PrestaShop: un archivo delicado
El archivo .htaccess de PrestaShop controla las redirecciones, los enlaces amigables y la seguridad básica. Si este archivo se corrompe o tiene reglas incompatibles con tu servidor, el resultado es un error 500 prestashop.
Para regenerar el .htaccess desde el panel de administración:
- Ve a Parámetros Avanzados > Rendimiento.
- En la sección "Archivo .htaccess", haz clic en "Guardar" (sin cambiar nada).
- PrestaShop regenerará el archivo automáticamente.
Si no puedes acceder al panel de administración, tendrás que hacerlo manualmente:
- Conéctate por FTP y renombra el archivo
.htaccessa.htaccess_old. - Intenta acceder a tu tienda. Si el error desaparece, el problema era el
.htaccess. - Ve a tu panel de administración (si puedes acceder) y regenera el archivo como te he explicado antes.
- Si no puedes acceder al panel, crea un archivo
.htaccessnuevo con el contenido básico que te dejo aquí:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^api/ - [L]
RewriteRule ^ - [E=REWRITEBASE:/]
RewriteRule ^(.*)$ webservice/$1 [L]
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^(.*)$ %{ENV:REWRITEBASE}index.php [QSA,L]
</IfModule>
[WARNING] Este
.htaccesses el más básico posible. Si tu tienda usa enlaces amigables, necesitarás el completo que genera PrestaShop. Úsalo solo como solución temporal.
Solución 3: Aumenta el límite de memoria PHP
¿Por qué se agota la memoria?
Cada vez que PrestaShop carga una página, ejecuta cientos de funciones PHP y carga varios módulos. Si alguno de ellos consume demasiada memoria, PHP se queda sin recursos y lanza un error 500.
Para aumentar el límite de memoria, tienes varias opciones:
Opción A: Editar el php.ini
Busca la línea memory_limit y cámbiala a un valor mayor. Te recomiendo empezar con 256M:
memory_limit = 256M
Opción B: Crear un .user.ini en la raíz
Si tu hosting usa PHP-FPM, crea un archivo llamado .user.ini en la raíz de tu PrestaShop con este contenido:
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
Opción C: Modificar el archivo config/defines.inc.php
Añade esta línea justo después de la definición de _PS_MODE_DEV_:
ini_set('memory_limit', '256M');
[INFO] Si usas Syspanel (puerto 2106), puedes acceder a la configuración de PHP desde el apartado "Web > PHP". Allí podrás ajustar el
memory_limitde forma gráfica sin tocar archivos.
Solución 4: Desactiva módulos y cambia de tema
El conflicto de módulos: el culpable más habitual
Los módulos son la causa número uno de errores 500 en PrestaShop. Un módulo mal programado, desactualizado o incompatible con tu versión de PrestaShop puede romper toda la tienda.
Para arreglar 500 prestashop por conflictos de módulos, sigue estos pasos:
- Renombra la carpeta
modulesamodules_backupen tu servidor. - Crea una carpeta nueva llamada
modulesvacía. - Intenta acceder a tu tienda. Si funciona, el problema es un módulo.
- Ve moviendo módulos de
modules_backupamodulesde uno en uno, comprobando la tienda después de cada movimiento. - Cuando el error vuelva a aparecer, habrás encontrado el módulo problemático.
Cambia el tema por defecto
Si el problema no son los módulos, prueba a cambiar el tema:
- Renombra la carpeta
themesathemes_backup. - Crea una carpeta
themesnueva. - Descarga el tema por defecto de PrestaShop (classic) y colócalo en la carpeta.
- Prueba a acceder a tu tienda.
Solución 5: Comprueba la versión de PHP
La incompatibilidad de PHP: un clásico moderno
PrestaShop 1.7 y versiones anteriores no son compatibles con PHP 8.x en muchas de sus versiones iniciales. Si actualizaste la versión de PHP en tu hosting y ahora te aparece el error, es muy probable que sea por incompatibilidad.
Las versiones recomendadas según PrestaShop:
- PrestaShop 1.6: PHP 5.6 a 7.1
- PrestaShop 1.7.x: PHP 7.1 a 7.4
- PrestaShop 8.x: PHP 7.2 a 8.1
Para cambiar la versión de PHP:
- Accede a tu panel de control del hosting.
- Busca la sección de "Versión de PHP" o "Gestor de PHP".
- Selecciona la versión recomendada para tu PrestaShop.
- Guarda los cambios y prueba tu tienda.
[TIP] En Syspanel (puerto 2106), ve a "Web > PHP" y podrás cambiar la versión de PHP con un simple menú desplegable. Es la forma más rápida y segura de hacerlo.
Solución 6: Repara la base de datos
Tablas corruptas: el error silencioso
A veces el error 500 prestashop no tiene nada que ver con archivos, sino con la base de datos. Si alguna tabla está corrupta o tiene índices rotos, PrestaShop falla al intentar acceder a ella.
Para reparar las tablas:
- Accede a phpMyAdmin desde tu panel de control.
- Selecciona la base de datos de tu PrestaShop.
- Haz clic en la pestaña "SQL" y ejecuta:
REPAIR TABLE `ps_connections`, `ps_connections_page`, `ps_connections_source`;
Si no sabes qué tablas están dañadas, puedes reparar todas con:
REPAIR TABLE `ps_`*;
[WARNING] Haz una copia de seguridad de tu base de datos antes de ejecutar cualquier comando SQL. Un error en la reparación podría causar pérdida de datos.
Solución 7: Verifica los logs del servidor
Los logs: tu mejor amigo para el debug
Si ninguna de las soluciones anteriores funciona, es hora de mirar los logs del servidor. Estos archivos registran todos los errores que se producen y te darán la pista definitiva sobre qué está fallando.
Dónde encontrar los logs:
- cPanel: "Métricas > Errores" o en la carpeta
logsde tu cuenta. - Syspanel (puerto 2106): "Registros > Registros de errores" o en
home/usuario/logs. - DirectAdmin: "Información del dominio > Registros de errores".
Busca la última entrada de error antes de que se produjera el error 500. Normalmente verás algo como:
[error] PHP Fatal error: Uncaught Error: Call to undefined method...
Esa línea te indicará exactamente qué archivo está fallando.
Solución 8: Restaura una copia de seguridad
Cuando todo lo demás falla
Si has probado todas las soluciones anteriores y sigues con el prestashop error critico, la opción más segura es restaurar una copia de seguridad reciente de tu tienda.
Para restaurar:
- Sube los archivos de tu copia de seguridad por FTP (sobrescribe los actuales).
- Importa la copia de seguridad de la base de datos en phpMyAdmin.
- Borra el archivo
config/settings.inc.phpsi lo tienes (se regenerará). - Accede a tu tienda y sigue el asistente de instalación.
[INFO] Si no tienes una copia de seguridad reciente, contacta con tu proveedor de hosting. Muchos de ellos realizan copias diarias automáticas que pueden restaurar por ti.
Preguntas frecuentes sobre el error 500 en PrestaShop
¿El error 500 puede deberse a mi conexión a internet?
No. El error 500 es un error del servidor. Si fuera un problema de tu conexión, verías un error de red o de tiempo de espera, no un error 500.
¿Cuánto tiempo tarda en solucionarse?
Depende de la causa. Los problemas de permisos se solucionan en minutos, mientras que un conflicto de módulos puede llevarte varias horas si tienes muchos instalados.
¿Debo actualizar PrestaShop a la última versión?
Siempre es recomendable tener la última versión, pero antes de actualizar, haz una copia completa de seguridad. Las actualizaciones pueden causar errores 500 si hay módulos incompatibles.
¿Puedo evitar el error 500 en el futuro?
Sí, siguiendo estas buenas prácticas:
- Realiza copias de seguridad semanales.
- Actualiza módulos y temas regularmente.
- No instales módulos de fuentes no oficiales.
- Mantén PHP en una versión compatible.
- Revisa los logs del servidor periódicamente.
¿Qué hago si no puedo acceder al panel de administración?
Todas las soluciones que te he explicado se pueden hacer por FTP o phpMyAdmin, sin necesidad de acceder al panel. Si no tienes acceso FTP, contacta con tu hosting.
Resumen final: tu checklist definitiva
Para solucionar error 500 prestashop de forma ordenada, sigue esta secuencia:
- Activa el modo debug para ver el error real.
- Comprueba los permisos de archivos y carpetas.
- Regenera el
.htaccess. - Aumenta el límite de memoria PHP.
- Desactiva módulos y cambia de tema.
- Verifica la versión de PHP.
- Repara la base de datos.
- Revisa los logs del servidor.
- Restaura una copia de seguridad.
El error 500 puede ser frustrante, pero con esta guía tienes todas las herramientas para resolverlo. La clave está en ir descartando causas de forma metódica y no desesperarse. Recuerda que si tienes un hosting con Syspanel (acceso por puerto 2106), muchas de estas tareas se pueden hacer de forma más sencilla desde su panel gráfico.
¿Te ha funcionado alguna de estas soluciones? Si sigues teniendo problemas, no dudes en contactar con tu proveedor de hosting. Ellos tienen acceso a los logs del servidor y podrán ayudarte a identificar el problema exacto.
