Guía para solucionar el error 500 en PrestaShop (cPanel y más)
¿Qué significa el error 500 en PrestaShop?
Cuando visitas tu tienda online y aparece un mensaje como "Error interno del servidor" o directamente "Error 500", significa que algo ha fallado en el servidor donde está alojada tu web, pero no te dice exactamente qué es. Es un error genérico, lo que lo hace especialmente frustrante porque puede deberse a muchas causas distintas.
Piensa en ello como cuando un coche no arranca: puede ser por la batería, por falta de gasolina, por un problema eléctrico o incluso por algo tan simple como que no está en neutral. Con el error 500 en PrestaShop pasa algo parecido: hay que ir descartando posibles causas hasta encontrar la que está provocando el fallo.
La buena noticia es que, en la mayoría de los casos, este error tiene solución y no implica que hayas perdido tus datos. Solo necesitas paciencia, seguir los pasos que te explicamos a continuación y, sobre todo, no entrar en pánico.
¿Por qué aparece el error 500 en PrestaShop?
Antes de lanzarnos a solucionar el problema, es importante que entiendas las causas más comunes. Así podrás identificarlas más rápido:
- Archivos con permisos incorrectos: Si los permisos de los archivos o carpetas no son los adecuados, el servidor no puede leerlos o ejecutarlos.
- Archivo .htaccess corrupto: Este archivo controla muchas funciones de tu tienda. Si se daña, todo puede venirse abajo.
- Errores de PHP: Una versión incompatible de PHP, un módulo que falla o un límite de memoria insuficiente pueden provocar el error.
- Módulos o temas incompatibles: Algo tan sencillo como actualizar un módulo puede romper la compatibilidad con tu versión de PrestaShop.
- Problemas con la base de datos: Si la conexión a la base de datos falla o está corrupta, tu tienda no podrá cargar.
- Espacio en disco agotado: Si el servidor no tiene espacio libre, no puede generar las páginas dinámicas de tu tienda.
Ahora que ya sabes las posibles causas, vamos a por la solución. Te propongo un método paso a paso, del más sencillo al más complejo, para que puedas ir descartando sin necesidad de ser un experto.
Paso 1: Activa el modo depuración de PrestaShop
Lo primero que necesitas es que PrestaShop te muestre el error real. Por defecto, este está oculto y solo ves el mensaje genérico de error 500. Activar el modo depuración es como quitar la tapa del motor para ver qué pieza está fallando.
¿Cómo activar el modo depuración desde el archivo define.inc.php?
- Accede a tu panel de control de hosting, ya sea cPanel, Syspanel (el antiguo HestiaCP, que se accede por el puerto 2106) o cualquier otro que utilices.
- Entra en el Administrador de archivos y navega hasta la carpeta
/config/de tu instalación de PrestaShop. - Busca el archivo llamado
defines.inc.php. Haz clic derecho sobre él y selecciona Editar. - Dentro del archivo, busca esta línea:
define('_PS_MODE_DEV_', false);
- Cámbiala por:
define('_PS_MODE_DEV_', true);
- Guarda los cambios y cierra el archivo.
Ahora, cuando recargues tu tienda, en lugar del error 500 verás un mensaje mucho más descriptivo, con la ruta exacta del archivo que está fallando y el motivo. Anota ese mensaje porque te dará pistas clave para continuar.
[INFO] Después de solucionar el error, no olvides volver a poner
falseen esa línea para que tus clientes no vean información técnica sensible.
Paso 2: Revisa los permisos de archivos y carpetas
Si el modo depuración no te da una respuesta clara, el siguiente paso es verificar los permisos. Los permisos incorrectos son una de las causas más habituales del error 500 en PrestaShop.
Permisos recomendados para PrestaShop
- Carpetas: 755 (o 775 en algunos servidores).
- Archivos: 644 (o 664 en algunos servidores).
- Archivos de configuración (como
settings.inc.php): 444.
Cómo cambiar permisos desde cPanel o Syspanel
- En tu panel de control, abre el Administrador de archivos.
- Navega hasta la raíz de tu instalación de PrestaShop.
- Selecciona todos los archivos y carpetas (Ctrl+A o Cmd+A).
- Haz clic en Permisos en la barra superior.
- Introduce el valor numérico
755para carpetas y644para archivos. - Aplica los cambios y vuelve a probar tu tienda.
[WARNING] No establezcas permisos 777 en ningún archivo. Aunque puede "arreglar" temporalmente el error, deja tu tienda expuesta a ataques de seguridad muy graves.
Si prefieres hacerlo por línea de comandos (si tienes acceso SSH), estos comandos te servirán:
find /ruta/a/tu/prestashop -type d -exec chmod 755 {} \;
find /ruta/a/tu/prestashop -type f -exec chmod 644 {} \;
Paso 3: Regenera el archivo .htaccess
El archivo .htaccess es esencial para el correcto funcionamiento de PrestaShop, especialmente si has activado las URLs amigables. Si se corrompe o se genera con errores, el resultado es un error 500.
Cómo regenerar el .htaccess desde el panel de administración
- Accede a tu panel de administración de PrestaShop (normalmente en
/admino similar). - Ve a Parámetros avanzados → Rendimiento.
- Busca la sección URLs amigables.
- Asegúrate de que la opción Usar URL amigable esté activada.
- Haz clic en Guardar. Esto regenerará automáticamente el archivo
.htaccess.
Si no puedes acceder al panel de administración porque también te muestra el error, tendrás que hacerlo manualmente:
- En el Administrador de archivos, busca el archivo
.htaccessen la raíz de PrestaShop. - Renómbralo a algo como
.htaccess.bak(esto lo desactiva). - Vuelve a intentar cargar tu tienda. Si ahora funciona, el problema era el
.htaccess. - Para regenerarlo, entra en el panel de administración (ahora debería funcionar) y sigue los pasos anteriores.
[TIP] Si el problema persiste, prueba a vaciar la caché de PrestaShop desde Parámetros avanzados → Rendimiento → Vaciar caché. A veces un archivo de caché corrupto provoca el error.
Paso 4: Verifica la versión de PHP
PrestaShop es exigente con la versión de PHP que utiliza. Una versión demasiado antigua o demasiado nueva puede provocar incompatibilidades y, por tanto, el temido error 500.
Versiones de PHP recomendadas según la versión de PrestaShop
- PrestaShop 1.6: PHP 5.6 o 7.0.
- PrestaShop 1.7: PHP 7.1, 7.2 o 7.3.
- PrestaShop 8.x: PHP 7.2 o superior.
Cómo cambiar la versión de PHP en cPanel
- En cPanel, busca la herramienta Select PHP Version (o MultiPHP Manager).
- Selecciona tu dominio.
- Elige la versión de PHP recomendada para tu PrestaShop.
- Haz clic en Guardar.
Cómo cambiar la versión de PHP en Syspanel
Si tu hosting utiliza Syspanel (antes llamado HestiaCP), el proceso es similar:
- Accede a Syspanel a través del puerto 2106 (por ejemplo:
https://tu-dominio:2106). - Entra en la sección de Web o Dominios.
- Busca la opción de Configuración de PHP.
- Cambia la versión y guarda los cambios.
[INFO] Si no estás seguro de qué versión de PHP necesitas, consulta el archivo
composer.jsonde tu instalación de PrestaShop o la documentación oficial de tu versión.
Paso 5: Aumenta el límite de memoria de PHP
Otro de los culpables habituales del error 500 en PrestaShop es un límite de memoria insuficiente. Esto ocurre sobre todo cuando tienes muchos módulos activos o productos en tu catálogo.
Cómo aumentar el límite de memoria
Puedes hacerlo de dos formas:
Opción A: Desde el archivo php.ini
- Accede al Administrador de archivos.
- Busca el archivo
php.inien la raíz de tu PrestaShop (si no existe, créalo). - Añade o modifica esta línea:
memory_limit = 256M
- Guarda los cambios.
Opción B: Desde el archivo .htaccess
Añade estas líneas al final de tu .htaccess:
php_value memory_limit 256M
php_value max_execution_time 300
[TIP] Si no sabes qué valor poner, empieza con 256M. Si el error persiste, sube a 512M.
Paso 6: Comprueba el espacio en disco
Un servidor con el disco lleno puede provocar errores de todo tipo, incluido el 500. La solución es simple: libera espacio.
Cómo comprobar el espacio en disco
- En cPanel, busca la herramienta Uso de disco en la sección de archivos.
- En Syspanel, revisa la sección de Estadísticas o Recursos.
Si el espacio está al límite, elimina:
- Copias de seguridad antiguas.
- Archivos temporales.
- Logs de error que ya no necesites.
- Imágenes o archivos duplicados.
Paso 7: Revisa los módulos y el tema
Si has llegado hasta aquí y el error persiste, es muy probable que un módulo o el tema esté causando el problema. Esto es especialmente común después de una actualización.
Cómo identificar el módulo problemático
- Accede a tu panel de administración de PrestaShop (si puedes).
- Ve a Módulos → Gestor de módulos.
- Desactiva todos los módulos de terceros (no los nativos de PrestaShop).
- Vuelve a cargar tu tienda. Si funciona, reactiva los módulos uno a uno hasta encontrar el que falla.
Si no puedes acceder al panel de administración
Puedes desactivar módulos directamente desde la base de datos:
- Accede a phpMyAdmin desde tu panel de control.
- Localiza la base de datos de tu PrestaShop.
- Busca la tabla
ps_module. - Identifica los módulos que no sean de PrestaShop y cámbiales el valor de
activea0.
[WARNING] Ten mucho cuidado al manipular la base de datos. Si no estás seguro de lo que haces, es mejor que contactes con tu proveedor de hosting o con un desarrollador.
Paso 8: Restaura una copia de seguridad
Si nada de lo anterior funciona, la solución más rápida (aunque no la más elegante) es restaurar una copia de seguridad reciente de tu tienda. Esto te devolverá a un estado anterior donde todo funcionaba correctamente.
Cómo restaurar desde cPanel
- Ve a la sección Copias de seguridad de cPanel.
- Elige la copia de seguridad que quieras restaurar (archivos o base de datos).
- Sigue el asistente de restauración.
Cómo restaurar desde Syspanel
- Accede a Syspanel por el puerto 2106.
- Ve a la sección de Copias de seguridad.
- Selecciona la copia que quieras restaurar y confirma.
[INFO] Si no tienes una copia de seguridad reciente, este es un buen momento para empezar a hacerlas de forma regular. Puedes configurar copias automáticas desde tu panel de control.
Preguntas frecuentes sobre el error 500 en PrestaShop
¿El error 500 significa que he perdido mis datos?
No. El error 500 es un error del servidor, no un error de datos. Tus productos, pedidos y clientes siguen ahí. Lo único que falla es la capacidad del servidor para mostrar la página.
¿Puedo solucionar el error 500 sin acceso al panel de administración?
Sí, la mayoría de los pasos que te hemos explicado se pueden hacer desde el Administrador de archivos de tu hosting, sin necesidad de entrar al panel de PrestaShop. Solo necesitas acceso al panel de control de tu hosting (cPanel, Syspanel, etc.).
¿Cuánto tiempo se tarda en solucionar un error 500?
Depende de la causa. Los problemas más simples, como un .htaccess corrupto o permisos incorrectos, se solucionan en menos de 15 minutos. Los problemas más complejos, como módulos incompatibles, pueden llevar un par de horas.
¿Debo contactar con mi proveedor de hosting si no puedo solucionarlo?
Sí, sin duda. Si has seguido todos los pasos y el error persiste, es momento de contactar con el soporte técnico de tu hosting. Ellos pueden revisar los logs del servidor y detectar el problema desde su lado. Además, muchos errores 500 están relacionados con la configuración del servidor, algo que solo ellos pueden modificar.
¿Cómo puedo prevenir el error 500 en el futuro?
- Realiza copias de seguridad periódicas.
- No instales módulos de fuentes no confiables.
- Mantén PrestaShop actualizado a la última versión estable.
- Revisa los permisos después de subir archivos por FTP.
- Controla el espacio en disco y limpia archivos temporales con regularidad.
Conclusión
El error 500 en PrestaShop puede parecer un problema enorme, pero con un enfoque metódico y los pasos que te hemos dado, la mayoría de las veces tiene una solución sencilla. Recuerda siempre empezar por lo más básico (activar el modo depuración, revisar permisos) y ve subiendo en complejidad solo si es necesario.
Y si en algún momento te sientes perdido, no dudes en contactar con tu proveedor de hosting o con un profesional. A veces, una segunda opinión (o un par de manos expertas) es la solución más rápida.
Esperamos que esta guía te haya sido de utilidad. Si tienes alguna otra duda, déjanos un comentario y estaremos encantados de ayudarte. ¡Buena suerte con tu tienda online!
