Cómo solucionar el error 500 en PrestaShop (cPanel y DirectAdmin)
¿Te has encontrado con la temida pantalla en blanco o el mensaje "Error 500 Internal Server Error" en tu tienda PrestaShop? No te preocupes, es uno de los problemas más comunes y, por suerte, casi siempre tiene solución. Este error significa que el servidor encontró una condición inesperada que le impidió completar la petición. En este artículo, te guiaré paso a paso para solucionar el error 500 PrestaShop tanto si usas cPanel como DirectAdmin. Vamos a ello.
¿Qué es el error 500 en PrestaShop y por qué ocurre?
El error 500 es un error genérico del lado del servidor. En PrestaShop, suele aparecer por varias razones, pero las más frecuentes son:
- Problemas de archivos .htaccess: Este archivo de configuración del servidor web (Apache) puede corromperse o tener directivas incorrectas.
- Problemas de permisos de archivos y carpetas: Si los permisos no son los correctos, el servidor no puede leer o escribir los archivos necesarios.
- Errores de PHP: Un límite de memoria excedido, un tiempo de ejecución demasiado corto o un error en algún módulo o tema.
- Módulos o temas incompatibles: Tras una actualización o instalación, algún componente puede estar causando un conflicto.
- Problemas con la configuración de PHP (php.ini): Valores incorrectos en la configuración de PHP del servidor.
- Corrupción de archivos del núcleo de PrestaShop: Algún archivo esencial puede estar dañado o faltante.
Preparación antes de empezar a solucionar el error
Antes de tocar nada, es fundamental que tomes una precaución: haz una copia de seguridad completa de tu tienda. Esto incluye tanto los archivos (vía FTP o el gestor de archivos de tu panel) como la base de datos (desde phpMyAdmin). Si algo sale mal, podrás restaurar todo.
[WARNING] No omitas este paso. Una copia de seguridad es tu salvavidas. Si no sabes cómo hacerla, contacta con tu proveedor de hosting.
Paso 1: Activar el modo debug de PrestaShop para ver el error real
El error 500 es muy genérico. Para saber exactamente qué está fallando, debemos activar el modo de depuración (debug) de PrestaShop. Esto te mostrará el mensaje de error real en lugar de la pantalla en blanco.
Para usuarios de cPanel
- Accede a tu cPanel y busca la sección "Archivos".
- Haz clic en "Administrador de Archivos".
- Navega hasta la carpeta raíz de tu PrestaShop (normalmente
public_htmlo el nombre de tu dominio). - Busca el archivo
config/defines.inc.php. - Haz clic derecho sobre él y selecciona "Editar".
- Busca la línea que dice:
define('_PS_MODE_DEV_', false); - Cámbiala por:
define('_PS_MODE_DEV_', true); - Guarda los cambios. A partir de ahora, al cargar tu tienda verás un mensaje de error detallado en lugar del error 500. Anota ese mensaje, te dará la pista clave.
Para usuarios de DirectAdmin
- Accede a tu DirectAdmin y ve a "Administrador de Archivos".
- Navega hasta la carpeta raíz de tu PrestaShop.
- Busca el archivo
config/defines.inc.php. - Haz clic en el icono de "Editar" (un lápiz o el texto "Editar").
- Realiza el mismo cambio que en cPanel:
define('_PS_MODE_DEV_', false);adefine('_PS_MODE_DEV_', true); - Guarda el archivo.
[TIP] Una vez solucionado el error, NO OLVIDES volver a cambiar
_PS_MODE_DEV_afalsepara que los errores no se muestren a tus clientes.
Paso 2: Solucionar los problemas más comunes según el error
Dependiendo del mensaje que veas tras activar el debug, actuarás de una u otra forma. Aquí tienes los casos más típicos.
Caso A: Error relacionado con el archivo .htaccess
Si el error dice algo como "Internal Server Error" y ves algo sobre .htaccess, es muy probable que el archivo esté dañado. La solución es regenerarlo.
- Desde tu panel de control (cPanel o DirectAdmin), ve al Administrador de Archivos.
- Busca el archivo
.htaccessen la raíz de tu PrestaShop. OJO: Los archivos que empiezan por punto (.) suelen estar ocultos. Activa la opción "Mostrar archivos ocultos" en el panel. - Renómbralo a algo como
.htaccess_oldo bórralo (si tienes copia de seguridad, mejor). - Ahora, accede a tu Back Office de PrestaShop (la URL
/admin). Si no puedes, no te preocupes, continúa. - Ve a Configuración de la tienda > Rendimiento.
- Haz clic en el botón "Limpiar caché" y luego en "Guardar".
- PrestaShop regenerará automáticamente un nuevo archivo
.htaccesslimpio.
Si no puedes acceder al Back Office, puedes forzar la regeneración desde el código. Crea un archivo PHP temporal en la raíz con el siguiente contenido (ajusta la ruta a tu carpeta admin):
<?php
require_once 'config/config.inc.php';
require_once 'classes/Tools.php';
require_once 'classes/Dispatcher.php';
$htaccess = new HtaccessGenerator();
$htaccess->generate();
echo 'Archivo .htaccess regenerado correctamente.';
?>
Luego, ejecuta ese archivo desde tu navegador (ej: tudominio.com/regenerar.php) y bórralo después.
Caso B: Error de permisos de archivos
Si el error menciona algo sobre permisos de escritura o lectura, es hora de revisarlos. Los permisos correctos para PrestaShop son:
- Archivos: 644
- Carpetas: 755
- Archivos de configuración (config/settings.inc.php): 444 o 644 (dependiendo del servidor)
Cómo cambiarlos en cPanel:
- En el Administrador de Archivos, selecciona todos los archivos y carpetas (Ctrl+A).
- Haz clic en "Permisos" en la barra superior.
- Marca las casillas para establecer 755 en carpetas y 644 en archivos. Es más fácil si seleccionas por separado.
- También puedes usar la opción "Cambiar permisos de forma recursiva" para aplicar a todas las subcarpetas.
Cómo cambiarlos en DirectAdmin:
- En el Administrador de Archivos, selecciona los archivos o carpetas.
- Haz clic en "Cambiar permisos".
- Introduce el valor numérico (755 para carpetas, 644 para archivos).
- Marca la opción "Recursivo" si quieres aplicarlo a todo el contenido.
[INFO] Los permisos incorrectos son una de las causas más frecuentes del cPanel error 500. Asegúrate de que la carpeta
cache,log,uploadyimgtengan permisos 755.
Caso C: Límites de PHP (memoria, tiempo de ejecución)
Si el error es algo como "Fatal error: Allowed memory size of X bytes exhausted" o "Maximum execution time of X seconds exceeded", necesitas aumentar los límites de PHP.
Desde cPanel:
- Busca la sección "Software" y haz clic en "Seleccionar versión de PHP" o "Administrador de PHP" (depende de la versión de cPanel).
- Haz clic en "Opciones" o "Switch to PHP Options".
- Busca los valores memory_limit, max_execution_time y upload_max_filesize.
- Auméntalos. Por ejemplo:
memory_limit = 256M(o incluso 512M)max_execution_time = 300upload_max_filesize = 64M
- Guarda los cambios.
Desde DirectAdmin:
- Ve a "Configuración de PHP" o "PHP Selector" (dependiendo de la versión).
- Busca la opción "Custom PHP Configuration" o similar.
- Modifica los mismos parámetros que en cPanel.
- Guarda los cambios.
[WARNING] Si no encuentras estas opciones, contacta con tu hosting. Ellos pueden modificar el
php.inidel servidor por ti.
Caso D: Módulo o tema conflictivo
Si el error aparece justo después de instalar o actualizar un módulo o tema, ese es el culpable. La solución es desactivarlo.
- Si puedes acceder al Back Office, ve a Módulos > Catálogo de módulos.
- Busca el módulo sospechoso y haz clic en "Desinstalar".
- Si no puedes acceder al Back Office, tendrás que hacerlo por FTP o panel de archivos:
- Ve a la carpeta
/modules/en la raíz de PrestaShop. - Renombra la carpeta del módulo conflictivo (ej:
mimoduloamimodulo_old). Esto lo desactivará. - Si el problema es el tema, renombra la carpeta
/themes/de tu tema activo (ej:tutemaatutema_old). PrestaShop usará el tema por defecto (si existe).
- Ve a la carpeta
Caso E: Corrupción de archivos del núcleo
Si nada de lo anterior funciona, es posible que algún archivo del núcleo de PrestaShop esté dañado. La solución es reinstalar PrestaShop sin perder datos.
- Descarga la misma versión de PrestaShop que tienes instalada desde prestashop.com.
- Extrae el archivo ZIP en tu ordenador.
- Sube solo la carpeta
/admin(la nueva, renómbrala con el nombre de tu carpeta admin actual) y la carpeta/installa tu servidor, sobrescribiendo los archivos existentes. - Ejecuta
tudominio.com/instally sigue el proceso de actualización/reinstalación. El asistente detectará que ya tienes una base de datos y te pedirá que la actualices. - IMPORTANTE: No marques la opción de "Eliminar tablas existentes" o perderás todos tus datos.
[TIP] Si no sabes qué versión tienes, mira el archivo
/config/settings.inc.phpo la versión en el Back Office.
Paso 3: Verificar la configuración del servidor (cPanel y DirectAdmin)
A veces, el error 500 es culpa de la configuración del servidor web. Aquí tienes algunas comprobaciones adicionales.
Para cPanel
- Comprobar la versión de PHP: Ve a "Seleccionar versión de PHP" y asegúrate de que estás usando una versión compatible con tu PrestaShop (PrestaShop 1.6 necesita PHP 5.6 o 7.0; PrestaShop 1.7 y 8 necesitan PHP 7.1 o superior).
- Revisar los logs de errores: En cPanel, busca la sección "Métricas" y haz clic en "Log de errores". Ahí verás los errores detallados del servidor.
Para DirectAdmin
- Comprobar la versión de PHP: Ve a "Configuración de PHP" y selecciona la versión adecuada.
- Revisar los logs de errores: En DirectAdmin, busca "Estadísticas" > "Log de errores" o similar. También puedes ver los logs de Apache en
/var/log/httpd/si tienes acceso SSH.
Paso 4: Limpiar la caché de PrestaShop
A veces, una caché corrupta puede causar el error 500. Forzar su limpieza puede resolverlo.
- Desde el Administrador de Archivos de tu panel, navega a la carpeta
/var/cache/dentro de la raíz de PrestaShop. - Borra todo el contenido de las subcarpetas
cache/ysmarty/. No borres las carpetas en sí, solo su contenido. - También puedes borrar el contenido de la carpeta
/cache/smarty/compile/y/cache/smarty/cache/.
[INFO] Si no puedes borrar los archivos, es posible que el servidor los esté usando. Prueba a renombrar la carpeta
cacheacache_oldy crea una nueva carpetacachevacía con permisos 755.
Preguntas frecuentes (FAQ) sobre el error 500 en PrestaShop
¿Por qué aparece el error 500 después de una actualización?
Las actualizaciones pueden cambiar la estructura de archivos o requerir nuevas versiones de PHP. Si algún módulo o tema no es compatible, saltará el error. Sigue los pasos de este artículo, empezando por desactivar módulos y temas.
¿El error 500 puede deberse a un problema de la base de datos?
Sí, aunque es menos común. Si la base de datos está corrupta o tiene tablas dañadas, puede provocar un error 500. Puedes repararla desde phpMyAdmin: selecciona la base de datos, marca todas las tablas y elige "Reparar tabla".
¿Qué hago si no puedo acceder ni al Back Office ni al panel de control?
Contacta con tu proveedor de hosting. Ellos tienen acceso directo al servidor y pueden revisar los logs de error o incluso restaurar una copia de seguridad. Explícales que tienes un solucionar error interno PrestaShop y que necesitas ayuda con los archivos.
¿El error 500 afecta al SEO?
Sí, y mucho. Si el error persiste, los motores de búsqueda (Google) pueden interpretar que tu sitio no funciona correctamente y empezar a eliminar tus páginas de su índice. Por eso es crucial solucionarlo rápidamente.
¿Puedo prevenir el error 500 en el futuro?
Sí, con estas buenas prácticas:
- Mantén PrestaShop, módulos y temas actualizados a sus últimas versiones estables.
- Haz copias de seguridad periódicas (archivos y base de datos).
- No instales módulos de fuentes no confiables.
- Revisa los límites de PHP de tu hosting y ajústalos si es necesario.
- Utiliza un plugin de caché (como PrestaShop's built-in cache) para reducir la carga del servidor.
Con estos pasos, deberías poder solucionar el error 500 PrestaShop tanto en cPanel como en DirectAdmin. Recuerda que la paciencia y el método son clave. Si después de todo esto el error persiste, no dudes en contactar con el soporte técnico de tu hosting, ellos tienen las herramientas para diagnosticar problemas más profundos del servidor. ¡Buena suerte!
