Solución: Error 500 en PrestaShop (cPanel, Plesk, DirectAdmin)
[INFO] Si has llegado hasta aquí es porque tu tienda PrestaShop te está mostrando el temido error 500 PrestaShop. Respira hondo, no es el fin del mundo. En este artículo, te voy a guiar paso a paso para que lo soluciones en los tres paneles de control más comunes: cPanel, Plesk y DirectAdmin. No necesitas ser un experto en programación; solo sigue el orden de las soluciones.
El error 500 PrestaShop (o PrestaShop 500 internal server) es un error genérico que indica que algo falló en el servidor, pero no te dice exactamente qué. Es como si el motor de tu coche se parara sin encender el testigo de "check engine". Por eso, vamos a ir de lo más simple a lo más complejo para diagnosticar y arreglar el problema.
¿Por qué aparece el Error 500 en PrestaShop?
Antes de lanzarnos a tocar archivos, es útil entender las causas más comunes. Esto te ahorrará tiempo. Las razones típicas son:
- Archivos con permisos incorrectos: PrestaShop necesita que ciertos archivos y carpetas tengan permisos específicos para leer y escribir.
- Un archivo
.htaccesscorrupto o incompatible: Este archivo es vital para las URL amigables y la configuración del servidor. Si se daña, todo colapsa. - Límite de memoria PHP agotado (memory_limit): Si tu tienda crece y el límite es bajo, el servidor se rinde.
- Errores de sintaxis en un archivo de configuración: A veces, al editar
config/settings.inc.php(en versiones antiguas) oapp/config/parameters.php(en versiones modernas), se introduce un error. - Un módulo o tema incompatible: Tras una actualización o instalación, algo puede romper la compatibilidad.
- Actualización de PHP incompleta o versión no soportada: Si tu hosting cambió la versión de PHP, tu PrestaShop puede no ser compatible.
Fase 1: Diagnóstico Inicial (Obligatorio)
Vamos a activar el "modo detective" para que el servidor nos diga qué está pasando. No te saltes este paso.
### Activar el modo debug de PrestaShop
Este modo revelará el error exacto en lugar de la página blanca o el error genérico.
- Accede a tu panel de control (cPanel, Plesk o DirectAdmin) y abre el Administrador de Archivos o usa un cliente FTP (como FileZilla).
- Navega hasta la raíz de tu instalación de PrestaShop (donde están las carpetas
admin,config,img, etc.). - Busca el archivo llamado
config/defines.inc.php. - Ábrelo con el editor de texto del panel (clic derecho -> Editar).
- Busca la línea que dice
define('_PS_MODE_DEV_', false);. - Cambia
falseportrue. Debe quedar así:define('_PS_MODE_DEV_', true);. - Guarda los cambios y sube el archivo si usaste FTP.
Ahora, recarga tu tienda. En lugar del error genérico, verás un mensaje de error detallado en inglés, con la ruta del archivo que falla. Anota ese mensaje, te será muy útil. Si no ves nada y sigue el error 500, el problema es más profundo (probablemente permisos o el .htaccess).
[WARNING] No olvides volver a poner false en ese archivo cuando termines de arreglar el problema. Dejar el modo debug activo en producción es un riesgo de seguridad.
Fase 2: Soluciones Rápidas y Comunes
Estas son las soluciones que funcionan en el 80% de los casos. Las veremos para los tres paneles.
### Solución 1: Regenerar el archivo .htaccess
Este es el culpable número uno. Si se corrompe, tienes el error 500 PrestaShop asegurado.
En cPanel:
- Ve a Administrador de Archivos y navega a la raíz de PrestaShop.
- Activa la opción "Mostrar archivos ocultos" (normalmente en Configuración o Ajustes).
- Busca el archivo
.htaccess. Si existe, renómbralo a.htaccess_old(clic derecho -> Renombrar). - Ve a tu back-office de PrestaShop (ej:
tudominio.com/admin123). Si no puedes acceder, prueba con la URL directa. - Ve a Parámetros Avanzados > Rendimiento.
- Haz clic en el botón "Regenerar el archivo .htaccess" (o "Guardar" en esa página).
- Vuelve a cargar tu tienda. Si funciona, ¡genial! Si no, borra el
.htaccess_oldy pasa a la siguiente solución.
En Plesk:
- Ve a Administrador de Archivos en el dominio correspondiente.
- Navega a la raíz de PrestaShop (normalmente
httpdocs). - Activa "Mostrar archivos ocultos" en la esquina superior.
- Renombra
.htaccessa.htaccess_oldcomo en el caso anterior. - Accede a tu back-office y regenera el archivo desde Parámetros Avanzados > Rendimiento.
En DirectAdmin:
- Ve a Administrador de Archivos (File Manager).
- Accede a la carpeta de tu dominio (ej:
domains/tudominio.com/public_html). - Igual que antes, muestra archivos ocultos y renombra
.htaccessa.htaccess_old. - Regenera el archivo desde el back-office.
[TIP] Si no tienes acceso al back-office, puedes crear un archivo .htaccess vacío en la raíz y subirlo. A veces, PrestaShop lo regenera solo al recargar la página.
### Solución 2: Corregir los permisos de archivos y carpetas
Los permisos incorrectos (normalmente después de una restauración o transferencia) causan el error.
La regla de oro en PrestaShop:
- Carpetas (Directorios): Permisos
755. - Archivos: Permisos
644. - Carpeta
configycache: A veces necesitan755o incluso777temporalmente para que PrestaShop escriba en ellas.
Cómo hacerlo en cPanel:
- En el Administrador de Archivos, selecciona todos los archivos y carpetas de la raíz.
- Haz clic en Permisos (o Permisos de archivos).
- Verás una ventana. Cambia los permisos a
755para carpetas y644para archivos. Es tedioso, pero hay un truco:- Para carpetas: Marca las casillas que sumen
755(Propietario: Lectura, Escritura, Ejecución; Grupo: Lectura, Ejecución; Público: Lectura, Ejecución). - Para archivos: Marca
644(Propietario: Lectura, Escritura; Grupo: Lectura; Público: Lectura).
- Para carpetas: Marca las casillas que sumen
- Aplica los cambios.
En Plesk y DirectAdmin:
El proceso es idéntico, solo cambia la interfaz. Busca la opción "Permisos" o "CHMOD" al seleccionar los archivos. Si tienes acceso a SSH (terminal), puedes usar el comando mágico:
find /ruta/a/tu/prestashop -type f -exec chmod 644 {} \;
find /ruta/a/tu/prestashop -type d -exec chmod 755 {} \;
[WARNING] No dejes nunca los permisos en 777 de forma permanente. Es un grave agujero de seguridad. Úsalo solo para la carpeta cache y var/cache temporalmente y luego vuelve a 755.
Fase 3: Soluciones Avanzadas (PHP y Configuración)
Si lo anterior no funcionó, vamos a por el motor.
### Solución 3: Aumentar el límite de memoria PHP (memory_limit)
Un límite bajo es otra causa común del error 500 PrestaShop, especialmente si tienes muchos módulos o productos.
Opción A: Desde el panel de control (cPanel, Plesk, DirectAdmin)
- cPanel: Busca la sección "Software" o "MultiPHP INI Editor". Selecciona tu dominio y cambia
memory_limita512Mo768M. Guarda. - Plesk: Ve a "PHP Settings" dentro de tu dominio. Busca
memory_limity cámbialo a512M. - DirectAdmin: Busca "PHP Settings" o "Custom Build". Dentro de las opciones de PHP, localiza
memory_limity ajústalo.
Opción B: Editando el archivo php.ini
Si no encuentras la opción en el panel, crea o edita un archivo llamado php.ini en la raíz de tu PrestaShop y añade:
memory_limit = 512M
max_execution_time = 300
upload_max_filesize = 64M
Opción C: Desde el archivo .htaccess
Añade estas líneas al final de tu .htaccess (el que ya regeneraste):
<IfModule mod_php7.c>
php_value memory_limit 512M
php_value max_execution_time 300
</IfModule>
### Solución 4: Verificar la versión de PHP
PrestaShop 1.6 no funciona bien con PHP 7.4+ o PHP 8.0. PrestaShop 1.7 necesita PHP 7.1 o superior. Si tu hosting actualizó PHP automáticamente, tu tienda puede morir.
- cPanel: Ve a "MultiPHP Manager" y selecciona una versión compatible (ej: PHP 7.4 para PrestaShop 1.7, PHP 7.1 para PrestaShop 1.6).
- Plesk: Ve a "PHP Settings" y cambia la versión.
- DirectAdmin: Ve a "PHP Version" o "Custom Build" y selecciona la versión.
[INFO] La versión de PHP correcta depende de tu versión de PrestaShop. Consulta la documentación oficial de PrestaShop para saber cuál es la ideal. Usar una versión muy nueva o muy vieja es un error común.
Fase 4: Solución Definitiva (Si nada funciona)
Si has llegado hasta aquí, el problema es más específico. Vamos a aislarlo.
### Solución 5: Desactivar módulos y cambiar de tema (Forzado)
Si un módulo se rompe, te dejará sin acceso al back-office. Pero podemos desactivarlo desde la base de datos.
- Accede a phpMyAdmin (desde cPanel, Plesk o DirectAdmin).
- Selecciona la base de datos de tu PrestaShop.
- Abre la tabla
ps_module(el prefijo puede variar, ej:ps_). - Busca los módulos que instalaste recientemente (los que sospechas que causan el problema).
- Localiza la columna
activey cámbiala a0para desactivarlos.
Para cambiar el tema:
- En la base de datos, busca la tabla
ps_theme. - Anota el nombre del tema actual.
- Cámbialo a un tema por defecto (ej:
classicpara PrestaShop 1.7,defaultpara 1.6).
### Solución 6: Revisar los logs del servidor
El modo debug no te mostró nada, pero el servidor guarda un registro de errores.
- cPanel: Busca la sección "Errores" o "Errores de Apache". También puedes ver el archivo
error_logen la raíz de tu sitio. - Plesk: Ve a "Logs" en el dominio.
- DirectAdmin: Busca "Error Logs" en el menú.
Busca la línea que coincida con la fecha y hora del error. Verás algo como PHP Fatal error: .... Ese mensaje es oro puro. Te dirá exactamente qué archivo y línea falla.
### Solución 7: Reinstalar PrestaShop (Último recurso)
Si todo lo demás falla, la solución nuclear es reinstalar. No pierdas tus datos (base de datos y archivos de productos), solo reemplaza los archivos del núcleo.
- Descarga la misma versión de PrestaShop que tienes (ej: 1.7.8.10) desde tu cuenta en PrestaShop.
- Descomprime el archivo en tu ordenador.
- Sube solo el contenido de la carpeta
prestashopa tu servidor, sobrescribiendo los archivos existentes. NO borres las carpetasimg,themes,modules(o haz una copia de seguridad antes). - No ejecutes el instalador. Simplemente sube los archivos.
- Borra los archivos
var/cache/prodyvar/cache/devpara forzar la regeneración.
Esto reemplazará los archivos corruptos del núcleo sin tocar tu configuración ni tus productos.
Preguntas Frecuentes (FAQ)
P: ¿Por qué veo el error 500 solo en el back-office y no en la tienda?
R: A menudo es un problema de un módulo específico del back-office o un problema con el tema del administrador. Intenta desactivar los módulos recientes desde phpMyAdmin, como se explicó en la Solución 5.
P: El error 500 PrestaShop ocurre después de mover mi tienda a un nuevo hosting.
R: Es casi seguro que sea un problema de permisos o de la ruta en config/settings.inc.php (o parameters.php). Verifica los permisos (Solución 2) y asegúrate de que las rutas en esos archivos apunten a la nueva ubicación.
P: ¿Puedo evitar el error 500 en el futuro?
R: Sí, siguiendo estas buenas prácticas:
- Mantén PrestaShop, módulos y temas actualizados.
- No instales módulos de fuentes no confiables.
- Haz copias de seguridad periódicas.
- Aumenta el límite de memoria PHP de forma proactiva.
P: Mi hosting usa "Syspanel" (HestiaCP). ¿Las soluciones son las mismas?
R: Sí, el proceso es muy similar, pero la interfaz cambia. En Syspanel, accede al panel con el puerto 2106 (ej: https://tudominio.com:2106). Dentro, busca "Administrador de Archivos" y "Base de Datos". Las soluciones sobre permisos y .htaccess son idénticas. Para cambiar la versión de PHP, busca la sección "PHP" o "Configuración de PHP" dentro del dominio. La lógica es la misma, solo cambia el nombre de los botones.
Resumen Final
Hemos recorrido un camino lógico para solucionar error 500 PrestaShop. Desde lo más simple (regenerar .htaccess) hasta lo más complejo (reinstalar el núcleo). Recuerda siempre:
- Activa el modo debug para obtener pistas.
- Regenera el
.htaccess. - Corrige los permisos.
- Aumenta la memoria PHP.
- Revisa los logs del servidor para el mensaje exacto.
No te desesperes. El error 500 PrestaShop es frustrante, pero casi siempre tiene solución. Si has seguido todos los pasos y aún así no funciona, es hora de contactar a tu proveedor de hosting. Ellos tienen acceso a los logs del servidor a un nivel más profundo y podrán identificar el problema con precisión.
[TIP] Antes de hacer cualquier cambio, SIEMPRE haz una copia de seguridad de tu base de datos y de los archivos. Esto te permitirá revertir cualquier error que cometas durante el proceso.
