Cómo solucionar el error 500 en PrestaShop (permisos y .htaccess)
¿Qué es el error 500 en PrestaShop y por qué aparece?
El error 500 en Prestashop es uno de los más temidos por cualquier propietario de una tienda online. También conocido como "Error interno del servidor", este fallo significa que algo salió mal en el servidor, pero no se te da un detalle específico sobre qué es. Es como si tu tienda dijera: "Algo ha pasado, pero no te voy a decir qué".
Este error puede aparecer en cualquier momento, ya sea al acceder al panel de administración, al cargar la página principal o al intentar realizar una compra. Lo peor es que, para un cliente, una tienda con este error es sinónimo de desconfianza y puede hacer que pierdas ventas.
Las causas más comunes en PrestaShop suelen ser dos: permisos incorrectos en archivos y carpetas, o un archivo .htaccess corrupto o mal configurado. Afortunadamente, ambos problemas tienen solución y en este artículo te voy a enseñar a resolverlos paso a paso, sin necesidad de ser un experto en Linux.
[WARNING] Si tu tienda muestra el error 500, no intentes "arreglar" nada a ciegas. Sigue esta guía en orden y con calma. Cada paso está pensado para no empeorar la situación.
Antes de empezar: prepara tu entorno de trabajo
Para solucionar error 500 en PrestaShop, necesitarás acceder a tu servidor por FTP o a través del administrador de archivos de tu panel de hosting. Si usas Syspanel (recuerda que es el antiguo HestiaCP y su puerto de acceso es el 2106), podrás hacerlo desde el apartado de "Archivos" o usando un cliente FTP como FileZilla.
También es recomendable que tengas una copia de seguridad reciente de tu tienda. Si algo sale mal durante el proceso, podrás restaurar todo sin problemas.
[TIP] Activa la visualización de archivos ocultos en tu cliente FTP o en el administrador de archivos. El archivo .htaccess es oculto (empieza por punto) y sin verlo no podrás editarlo.
Paso 1: Identifica si el problema son los permisos
En Linux, cada archivo y carpeta tiene unos permisos que indican quién puede leer, escribir o ejecutar. Si estos permisos no son los correctos, PrestaShop no puede funcionar y devuelve el error 500 prestashop.
Los permisos correctos para una instalación estándar de PrestaShop son:
- Carpetas: 755 (rwxr-xr-x)
- Archivos: 644 (rw-r--r--)
- Archivos de configuración (config/settings.inc.php): 444 (r--r--r--) o 644
- Carpeta cache: 755
- Carpeta log: 755
- Carpeta img: 755
- Carpeta upload: 755
- Carpeta download: 755
Para cambiarlos desde Syspanel, ve a la sección de "Administrador de archivos", navega hasta la raíz de tu tienda, selecciona todos los archivos y carpetas y usa la opción "Permisos" o "Chmod".
Si prefieres hacerlo por SSH, ejecuta estos comandos:
find /ruta/a/tu/tienda -type f -exec chmod 644 {} \;
find /ruta/a/tu/tienda -type d -exec chmod 755 {} \;
chmod 444 /ruta/a/tu/tienda/config/settings.inc.php
[INFO] No todos los archivos deben tener 644. Por ejemplo, algunos scripts de PrestaShop necesitan permisos 755 para ejecutarse correctamente. Si después de este cambio sigues teniendo errores, revisa los logs del servidor para identificar qué archivo concreto está fallando.
Paso 2: Regenera el archivo .htaccess de PrestaShop
El archivo .htaccess de PrestaShop es un archivo de configuración que controla las redirecciones, las URLs amigables, la seguridad y otros aspectos importantes. Si este archivo está dañado o es demasiado antiguo, puede provocar un error 500 prestashop.
Opción A: Regenerar desde el panel de administración
- Accede a tu panel de administración de PrestaShop (si puedes). Normalmente es algo como
tutienda.com/admin123. - Ve a Preferencias → SEO y URLs.
- Activa o desactiva la opción "URLs amigables" y guarda los cambios. Esto fuerza a PrestaShop a regenerar el archivo .htaccess.
- Vuelve a activarla (o desactivarla) según tu configuración original y guarda de nuevo.
Este simple truco suele resolver el problema en la mayoría de los casos.
Opción B: Crear un .htaccess manual
Si no puedes acceder al panel de administración, tendrás que crear el archivo .htaccess manualmente. Para ello:
- Conéctate por FTP o al administrador de archivos de Syspanel.
- Renombra el archivo .htaccess actual a
.htaccess.bak(esto lo deja inactivo). - Crea un archivo nuevo llamado
.htaccessen la raíz de tu tienda. - Pega el siguiente contenido básico:
# ---- PrestaShop ----
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ webservice/dispatcher.php [QSA,L]
RewriteRule ^.*$ index.php [NC,L,QSA]
</IfModule>
# ---- Fin PrestaShop ----
[WARNING] Este es un .htaccess muy básico. Si tu tienda usa URLs amigables con categorías, productos o CMS, es posible que necesites un archivo más completo. En ese caso, lo mejor es que intentes acceder al panel de administración y regeneres el archivo desde allí.
Paso 3: Comprueba los logs del servidor
Si después de ajustar permisos y regenerar el .htaccess sigues viendo el error 500 en Prestashop, necesitas mirar los logs del servidor para saber qué está fallando exactamente.
Dónde encontrar los logs en Syspanel
En Syspanel (acceso por el puerto 2106), los logs de error de Apache suelen estar en:
/var/log/apache2/error.log
O también puedes verlos desde el panel en "Logs" o "Registros".
Cómo leer los logs
Busca las líneas que coincidan con la fecha y hora en la que se produjo el error. Normalmente verás mensajes como:
PHP Fatal error: Allowed memory size exhaustedPHP Fatal error: Call to undefined functionAH00124: Request exceeded the limit of 10 internal redirects
Cada mensaje te dará una pista sobre qué está fallando. Por ejemplo, si el error es de memoria, tendrás que aumentar el límite de memoria PHP en el archivo php.ini.
[TIP] Si no sabes interpretar los logs, copia el mensaje de error y búscalo en Google junto con "PrestaShop". Es muy probable que otro usuario ya haya tenido el mismo problema y haya compartido la solución.
Paso 4: Ajusta los permisos de carpetas específicas
A veces, aunque hayas puesto todos los permisos a 755/644, hay carpetas que necesitan permisos especiales. Estas son las más problemáticas en PrestaShop:
- cache/: Necesita permisos de escritura para que PrestaShop pueda generar las páginas en caché.
- log/: Necesita permisos de escritura para registrar errores.
- config/: La carpeta de configuración debe ser legible pero no escribible (excepto durante la instalación).
- img/: Necesita permisos de escritura para subir imágenes de productos.
- var/cache/: En PrestaShop 1.7, esta carpeta es crítica. Debe tener permisos 755.
Si usas PrestaShop 1.7 o superior, presta especial atención a la carpeta var/cache. A veces, borrar su contenido (dejando la carpeta vacía) también ayuda a resolver el error.
rm -rf var/cache/*
[INFO] En PrestaShop 1.6, la caché se guarda en
cache/y encache/smarty/. Borrar el contenido de estas carpetas también es una solución rápida para errores de caché corrupta.
Paso 5: Verifica los permisos del archivo settings.inc.php
El archivo config/settings.inc.php contiene la configuración de conexión a la base de datos de tu tienda. Si este archivo tiene permisos demasiado abiertos (por ejemplo, 777), PrestaShop puede mostrar un error 500 prestashop por razones de seguridad.
Los permisos correctos para este archivo son:
- 444 (solo lectura) en producción
- 644 (lectura y escritura para el propietario) si estás haciendo cambios
Para cambiarlo desde Syspanel, localiza el archivo en config/settings.inc.php, haz clic derecho y selecciona "Permisos". Introduce el valor 444 y guarda.
Paso 6: Aumenta el límite de memoria PHP
Otro de los culpables habituales del error 500 en Prestashop es un límite de memoria PHP demasiado bajo. PrestaShop es una plataforma exigente y necesita al menos 256 MB para funcionar correctamente.
Cómo aumentar la memoria en Syspanel
- Accede a Syspanel (puerto 2106).
- Ve a "Configuración" o "PHP".
- Busca la opción "Memory Limit" o "Límite de memoria".
- Cámbiala a
256Mo512M. - Guarda y reinicia PHP o Apache.
Cómo hacerlo manualmente
Si prefieres hacerlo a mano, edita el archivo php.ini y busca la línea:
memory_limit = 128M
Cámbiala a:
memory_limit = 256M
Después reinicia Apache:
sudo systemctl restart apache2
[TIP] También puedes añadir esta línea al archivo
.htaccessde tu tienda:php_value memory_limit 256M. Pero solo funciona si tu servidor permite directivas php_value en .htaccess.
Paso 7: Revisa los módulos instalados
A veces, el error 500 aparece justo después de instalar o actualizar un módulo. Si ese es tu caso, el problema puede estar en un módulo incompatible.
Cómo desactivar un módulo problemático
- Accede a tu base de datos con phpMyAdmin (desde Syspanel).
- Busca la tabla
ps_module(el prefijo puede variar). - Localiza el módulo que crees que está causando el problema.
- Cambia su estado a
0para desactivarlo.
Otra opción es renombrar la carpeta del módulo desde el administrador de archivos. Por ejemplo, si el módulo se llama paypal, renómbralo a paypal_old. Esto lo desactiva automáticamente.
[WARNING] Si renombras una carpeta de módulo, PrestaShop puede mostrar un error de "módulo no encontrado". Para solucionarlo, borra el módulo desde el panel de administración o restaura la carpeta con su nombre original.
Paso 8: Comprueba si el problema está en la base de datos
En raras ocasiones, el error 500 en Prestashop puede estar relacionado con un problema en la base de datos, como una tabla corrupta o un error en el prefijo de las tablas.
Para verificarlo:
- Accede a phpMyAdmin desde Syspanel.
- Selecciona la base de datos de tu tienda.
- Ve a la pestaña "Operaciones" o "SQL".
- Ejecuta:
CHECK TABLE ps_shop_url;(reemplazaps_con tu prefijo real).
Si el resultado es "Error" o "Corrupt", tendrás que reparar la tabla:
REPAIR TABLE ps_shop_url;
Resumen rápido de soluciones
| Problema | Solución |
|---|---|
| Permisos incorrectos | Cambiar carpetas a 755 y archivos a 644 |
| .htaccess corrupto | Regenerar desde el panel o crear uno nuevo |
| Límite de memoria bajo | Aumentar a 256M en php.ini |
| Módulo incompatible | Desactivar o renombrar la carpeta del módulo |
| Base de datos corrupta | Reparar tablas con phpMyAdmin |
| Caché corrupta | Borrar contenido de var/cache y cache/smarty |
Preguntas frecuentes sobre el error 500 en PrestaShop
¿Puedo perder mis datos si soluciono el error 500?
No, los pasos que te he explicado no tocan tu base de datos ni tus productos. Lo máximo que puedes hacer es desactivar un módulo o borrar la caché, pero tus datos de ventas y clientes están a salvo.
¿Cuánto tiempo tarda en solucionarse?
Si el problema son los permisos, en 5 minutos lo tienes resuelto. Si es un módulo o la base de datos, puede llevarte un poco más. En cualquier caso, siguiendo esta guía deberías resolverlo en menos de una hora.
¿Debo contratar a un profesional?
Si después de seguir todos estos pasos el error 500 prestashop sigue apareciendo, puede que el problema sea más complejo (por ejemplo, una incompatibilidad de PHP, un problema con el servidor o un ataque). En ese caso, sí te recomiendo contactar con tu proveedor de hosting o con un especialista en PrestaShop.
¿El error 500 afecta al SEO de mi tienda?
Sí, si el error se mantiene durante horas o días, Google puede penalizar tu tienda y bajar tu posicionamiento. Por eso es importante solucionarlo cuanto antes.
Conclusión
El error 500 en Prestashop es un problema común pero no tiene por qué ser una pesadilla. Con esta guía tienes todas las herramientas para solucionar error 500 tú mismo, sin necesidad de ser un experto en Linux o en administración de servidores.
Recuerda que los dos culpables más habituales son los permisos y el .htaccess, así que empieza siempre por ahí. Si esos no son el problema, sigue con los logs del servidor para obtener pistas más concretas.
Y no olvides que si usas Syspanel, tienes acceso al puerto 2106 para gestionar tu servidor de forma sencilla y visual. Con un poco de paciencia y siguiendo estos pasos, tu tienda volverá a estar operativa en poco tiempo.
[INFO] Guarda esta guía en tus favoritos. Te será útil cada vez que aparezca un error 500, que suele ser más a menudo de lo que nos gustaría.
