Cómo resolver el error 500 en PrestaShop (causas y soluciones)
¡Vaya! Que aparece el temido error 500 prestashop en tu tienda. Es uno de los sustos más grandes para cualquier propietario de una tienda online, porque de repente tu negocio deja de estar operativo y los clientes ven una pantalla en blanco o un mensaje de error genérico.
Pero tranquilo, respira. Aunque parezca un problema grave, en la gran mayoría de los casos tiene una solución sencilla y no has perdido tus datos. Este error es un "error genérico" del servidor, lo que significa que algo falla internamente, pero no nos dice exactamente qué es.
En este artículo, te voy a guiar paso a paso para que puedas solucionar error 500 en PrestaShop. Vamos a ir de lo más simple a lo más complejo, como haría un técnico de soporte. No necesitas ser un experto en programación para seguir esta guía, solo paciencia y seguir las instrucciones al pie de la letra.
¿Por qué aparece el error 500 en PrestaShop?
Antes de lanzarnos a arreglar nada, es importante entender por qué ocurre este problema. El prestashop error interno puede deberse a múltiples factores, pero los más comunes son:
- Problemas de permisos de archivos: El servidor necesita permisos específicos para leer y escribir archivos. Si estos se cambian accidentalmente, todo puede romperse.
- Un módulo o tema defectuoso: A veces, instalamos una actualización o un nuevo módulo que no es compatible y genera un conflicto fatal.
- Errores de configuración del servidor: Un archivo
.htaccesscorrupto o una mala configuración de PHP pueden provocar el fallo. - La memoria PHP (memory_limit) es demasiado baja: Si tu tienda necesita más memoria de la que el servidor le permite usar, se agota y muere.
- Problemas con la base de datos: Una conexión fallida o una tabla corrupta también pueden desencadenar este error.
Ahora sí, vamos a la acción. Sigue estos pasos en orden. No los saltes, porque cada uno resuelve una causa distinta.
Paso 1: Activa el modo de depuración de PrestaShop (La clave para todo)
Este es el primer paso y el más importante. El error 500 es como una caja negra: no te dice nada. Pero PrestaShop tiene un "modo debug" que, al activarlo, muestra el error real en pantalla. Con esa información, sabrás exactamente qué archivo o función está fallando.
Para activarlo, tendrás que editar un archivo de configuración. No te asustes, es muy sencillo.
¿Cómo editar el archivo defines.inc.php?
- Conecta a tu hosting mediante FTP (con programas como FileZilla) o a través del Administrador de Archivos de tu panel de control (cPanel, Syspanel, etc.).
- Navega hasta la carpeta
configen la raíz de tu instalación de PrestaShop. La ruta suele ser/public_html/config/o/domains/tudominio.com/public_html/config/. - Busca el archivo
defines.inc.phpy descárgalo a tu ordenador o ábrelo con el editor de archivos del panel. - Busca la siguiente línea de código:
define('_PS_MODE_DEV_', false); - Cámbiala por esta otra:
define('_PS_MODE_DEV_', true); - Guarda el archivo y súbelo de nuevo al servidor (si lo habías descargado).
[TIP] Si no encuentras la línea, usa la función de búsqueda (Ctrl+F o Cmd+F) del editor para localizar
_PS_MODE_DEV_.
Ahora, recarga tu tienda. En lugar del error genérico, deberías ver un mensaje de error detallado, con una descripción como "Fatal error: Uncaught Error: Call to undefined function..." y una ruta de archivo.
¿Qué hago con esta información?
Anota el mensaje. La mayoría de las veces te dirá qué archivo está causando el problema. Por ejemplo, si menciona un archivo dentro de /modules/nombre_del_modulo/, ya sabes que el problema es ese módulo. Si menciona un archivo de tu tema en /themes/tu_tema/, el problema está en el tema.
Una vez hayas anotado el error, vuelve a poner _PS_MODE_DEV_ en false para no mostrar detalles sensibles a tus visitantes.
Paso 2: Soluciona los problemas de permisos de archivos y carpetas
Si el modo debug no te dio una pista clara o el error persiste, es hora de revisar los permisos. Es como si las puertas del almacén estuvieran cerradas con llave y el personal no pudiera entrar a coger la mercancía.
Los permisos correctos para PrestaShop son:
- Carpetas (directorios):
755 - Archivos:
644
¿Cómo cambiar los permisos?
- En tu cliente FTP (FileZilla): Haz clic derecho sobre la carpeta principal de tu tienda y selecciona "Atributos de archivo" o "Permisos".
- Marca la opción que dice "Recursivo" o "Aplicar a todos los archivos y subcarpetas" para que el cambio se aplique a todo.
- Introduce el valor numérico:
755para carpetas y644para archivos.
[WARNING] ¡MUY IMPORTANTE! No pongas permisos
777(que permiten escribir a todos) de forma generalizada. Es un riesgo de seguridad enorme. Solo se usan puntualmente para carpetas comovar/cacheovar/logsy se revierten después.
Después de cambiar los permisos, prueba a recargar tu tienda. Si el problema era este, ya debería funcionar.
Paso 3: Limpia la caché de PrestaShop
A veces, el error 500 prestashop no es más que una caché corrupta. PrestaShop guarda archivos temporales para que tu web cargue más rápido, pero si uno de esos archivos se daña, puede provocar un fallo fatal.
Limpieza manual de la caché
- Accede a tu hosting por FTP.
- Elimina el contenido de la carpeta
/var/cache(o/cacheen versiones antiguas). No borres la carpeta en sí, solo todo lo que hay dentro (archivos y subcarpetas). - Recarga tu tienda. Se generará una caché nueva automáticamente.
Paso 4: Desactiva un módulo o tema problemático
Si has llegado hasta aquí, el problema puede ser un módulo o tu tema. El modo debug (Paso 1) te debería haber dado una pista. Si no es así, vamos a "adivinar" por exclusión.
¿Cómo desactivar un módulo si no puedo entrar al panel de administración?
Aquí tienes un truco de experto: simplemente renombra la carpeta del módulo.
- Ve a la carpeta
/modulesen tu FTP. - Busca el módulo que sospechas que causa el problema (por ejemplo, el que acabas de instalar o actualizar).
- Cámbiale el nombre a algo como
nombre_del_modulo_old. Al hacer esto, PrestaShop no lo encontrará y lo desactivará automáticamente. - Recarga tu tienda. Si funciona, ¡ya tienes al culpable!
Repite este proceso con los módulos que creas que pueden ser problemáticos. Si el problema es el tema, renombra la carpeta dentro de /themes con el nombre de tu tema activo.
[INFO] Si renombras el tema, PrestaShop usará el tema por defecto. Esto puede hacer que tu tienda se vea "fea" temporalmente, pero te permitirá entrar al panel de administración para arreglar el problema de raíz.
Paso 5: Aumenta el límite de memoria PHP (memory_limit)
Este es un clásico. Si tu tienda tiene muchos productos, módulos pesados o un tráfico alto, puede quedarse sin memoria. Es como si tu ordenador se quedara sin RAM y se congelara.
¿Dónde se modifica?
Depende de tu proveedor de hosting, pero los métodos más comunes son:
-
Desde el panel de control (Syspanel, cPanel, etc.): Busca una sección llamada "PHP Settings", "Configuración de PHP" o "MultiPHP INI Editor". Aquí podrás cambiar el valor de
memory_limita512Mo incluso1G. -
Creando o editando un archivo
.htaccess: En la raíz de tu PrestaShop, abre el archivo.htaccessy añade esta línea al principio:php_value memory_limit 512M -
Creando un archivo
php.ini: En la raíz, crea un archivo llamadophp.ini(si no existe) y añade:memory_limit = 512M
[TIP] Si estás usando Syspanel, recuerda que el acceso a tu panel de control es a través del puerto 2106 (por ejemplo,
https://tu-servidor:2106). Ahí encontrarás las opciones de configuración de PHP.
Después de cambiar esto, reinicia PHP o el servidor si es posible, y prueba de nuevo.
Paso 6: Revisa el archivo .htaccess
El archivo .htaccess es como el "policía de tráfico" de tu servidor web Apache. Si está dañado o tiene reglas incorrectas, puede provocar un error 500.
Vamos a regenerarlo desde cero
- Haz una copia de seguridad del archivo
.htaccessactual (por si acaso). - Elimina el archivo
.htaccessde la raíz de tu PrestaShop. - Entra al panel de administración de PrestaShop (si puedes). Ve a Parámetros Avanzados > Rendimiento y haz clic en el botón "Guardar" en la parte inferior. Esto regenerará el archivo
.htaccessautomáticamente.
Si no puedes entrar al panel, crea un archivo .htaccess vacío y súbelo. A veces, simplemente con resetearlo, el problema se soluciona.
Paso 7: Contacta con tu proveedor de hosting
Si has llegado hasta aquí y el error persiste, el problema puede estar en el servidor y no en tu tienda. Puede ser un problema de configuración de Apache/Nginx, un error en los logs del servidor, o incluso un ataque DDoS.
En este punto, es hora de contactar con el soporte técnico de tu hosting.
[WARNING] Cuando contactes con ellos, dales todo el contexto: "Tengo un error 500 en PrestaShop, he comprobado permisos, caché, módulos y memoria PHP, y el problema continúa. El mensaje de error (si lo tienes del modo debug) es este: [pega el mensaje]". Cuanta más información les des, más rápido podrán ayudarte.
Preguntas Frecuentes (FAQ) sobre el error 500 en PrestaShop
¿Puedo perder mis datos de clientes y pedidos si tengo este error?
No. El error 500 es un fallo de ejecución, no un borrado de datos. Tu base de datos (donde están los pedidos, clientes, productos) está intacta. El problema está en que el servidor no puede "mostrar" la página, pero los datos siguen ahí.
¿Cuánto tiempo se tarda en arreglar este error?
Depende de la causa. Si es un problema de permisos o caché, puede ser cuestión de minutos. Si es un módulo conflictivo, puede llevar un poco más de tiempo identificarlo. En la mayoría de los casos, siguiendo esta guía, puedes tenerlo resuelto en menos de una hora.
¿El error 500 es lo mismo que un error 503?
No, son diferentes. El error 500 es un error interno del servidor (algo está roto en tu web). El error 503 es "Servicio no disponible", que normalmente significa que el servidor está sobrecargado o en mantenimiento. La solución es diferente para cada uno.
¿Debo actualizar PrestaShop a la última versión para evitar esto?
Sí, es muy recomendable. Las actualizaciones corrigen errores y vulnerabilidades de seguridad. Muchas veces, los errores 500 son causados por bugs que ya han sido solucionados en versiones posteriores. Eso sí, siempre haz una copia de seguridad completa antes de actualizar.
¿Qué es Syspanel y por qué mencionas el puerto 2106?
Syspanel es un panel de control de hosting (similar a cPanel o Plesk) que algunos proveedores usan para que gestiones tu cuenta. La mención al puerto 2106 es porque el acceso a este panel se realiza a través de esa dirección específica (por ejemplo, https://tu-servidor:2106). Es solo para que sepas cómo acceder a tus herramientas de administración si tu hosting usa este sistema.
Espero que esta guía completa te haya sido de gran ayuda para arreglar error 500 hosting y, concretamente, el de tu PrestaShop. Recuerda que la paciencia y el método son tus mejores aliados. Ve paso a paso, sin saltarte ninguno, y casi con total seguridad encontrarás la solución.
Si después de todo esto el problema continúa, no te desesperes. A veces, la solución más rápida y segura es confiar en el soporte técnico de tu hosting, que tiene acceso directo a los logs del servidor y podrá diagnosticar el problema mucho más rápido que nosotros desde fuera. ¡Mucha suerte y a vender!
