Cómo solucionar el error 500 en PrestaShop por permisos
¿Por qué aparece el error 500 en PrestaShop y qué tienen que ver los permisos?
El error 500 en PrestaShop es uno de los más temidos, precisamente porque es muy genérico. Un "Internal Server Error" no te dice exactamente qué ha fallado, solo que algo en el servidor impide que la tienda cargue. Aunque puede deberse a un módulo conflictivo, a un archivo .htaccess corrupto o a un problema de PHP, la causa más habitual en entornos de hosting compartido es una mala configuración de los permisos de archivos y carpetas.
Cuando instalas PrestaShop, cada archivo tiene un nivel de lectura, escritura y ejecución. Si estos valores se cambian por error (por ejemplo, al subir archivos por FTP con el cliente configurado en modo incorrecto), el servidor web no puede leer las clases o escribir en las carpetas de caché, y el resultado es un error 500 prestashop que te bloquea toda la tienda, tanto para clientes como para el panel de administración.
En esta guía te voy a explicar, paso a paso y sin tecnicismos innecesarios, cómo diagnosticar y solucionar el error 500 revisando los permisos prestashop. No necesitas ser un experto en servidores, solo seguir las instrucciones con calma y en orden.
Paso 1: Comprueba si el problema es realmente de permisos
Antes de tocar nada, es fundamental confirmar que el origen del error es la configuración de permisos y no otra cosa. Un buen método es activar el modo de depuración de PrestaShop, que te mostrará el error concreto en pantalla.
Cómo activar el modo debug de PrestaShop
- Accede a tu hosting por FTP o al administrador de archivos del panel de control.
- Busca el archivo
config/defines.inc.phpen la raíz de tu instalación. - Ábrelo con un editor de texto plano (nada de Word, usa el Bloc de notas o Notepad++).
- Localiza la línea que dice
define('_PS_MODE_DEV_', false); - Cámbiala a
define('_PS_MODE_DEV_', true); - Guarda el archivo y sube los cambios.
- Recarga tu tienda.
Ahora verás un mensaje de error mucho más detallado, como por ejemplo:
Warning: require(.../classes/Product.php): failed to open stream: Permission denied
Si ves un mensaje similar, es la confirmación definitiva: los permisos prestashop están mal configurados y el servidor no puede leer los archivos del núcleo.
[INFO] Una vez resuelto el problema, no olvides volver a poner _PS_MODE_DEV_ en false para que los clientes no vean errores internos.
Paso 2: Los permisos correctos en PrestaShop
Cada archivo y carpeta en tu servidor tiene tres tipos de permisos: lectura (r), escritura (w) y ejecución (x). Se representan con números (como 644 o 755) que se asignan a tres grupos: propietario, grupo y público.
Para una instalación estándar de PrestaShop en un hosting Linux (el 99% de los casos), estos son los valores que debes aplicar:
Permisos para carpetas
- 755 es el valor recomendado. Esto significa que el propietario puede leer, escribir y ejecutar; el grupo y el público solo pueden leer y ejecutar.
Permisos para archivos
- 644 es el valor estándar. El propietario puede leer y escribir; el grupo y el público solo pueden leer.
Excepciones importantes
- La carpeta
config/debe tener permisos 755. - La carpeta
cache/debe tener permisos 755 (y su contenido, 644). - La carpeta
log/debe tener permisos 755. - La carpeta
img/debe tener permisos 755. - La carpeta
mails/debe tener permisos 755. - La carpeta
modules/debe tener permisos 755. - La carpeta
themes/debe tener permisos 755. - La carpeta
var/(en versiones modernas) otools/smarty/(en versiones antiguas) debe tener permisos 755 para que se pueda generar la caché.
[WARNING] Nunca pongas permisos 777 en carpetas o archivos. Es un riesgo de seguridad gravísimo, ya que cualquier usuario del servidor podría modificar tu tienda. Si alguien te lo recomendó, no le hagas caso.
Paso 3: Cómo cambiar los permisos desde tu panel de hosting
Existen dos formas principales de hacerlo: desde el administrador de archivos del hosting o mediante un cliente FTP como FileZilla. Te explico ambas.
Opción A: Desde el administrador de archivos del hosting
La mayoría de paneles de control (cPanel, Plesk, Syspanel, etc.) incluyen un administrador de archivos visual. Si usas Syspanel (el panel de control que menciono, cuyo puerto de acceso es el 2106), el proceso es muy similar:
- Entra en Syspanel con tu usuario y contraseña.
- Busca la sección "Archivos" o "Administrador de archivos".
- Navega hasta la raíz de tu PrestaShop.
- Selecciona todas las carpetas principales (una a una o usando Ctrl+clic).
- Haz clic derecho y elige "Cambiar permisos" o "Chmod".
- Introduce el valor 755 para carpetas y marca las casillas de lectura, escritura y ejecución según corresponda.
- Aplica los cambios y repite el proceso para los archivos con el valor 644.
Opción B: Desde FileZilla (FTP)
- Conecta a tu servidor con FileZilla.
- En el panel remoto, navega hasta la carpeta raíz de tu tienda.
- Selecciona todas las carpetas (Ctrl+A), haz clic derecho y elige "Atributos de archivo".
- Marca la opción "Recursivo en subdirectorios" y selecciona "Aplicar a todos los archivos y carpetas".
- Introduce el valor numérico 755 y acepta.
- Ahora repite el proceso, pero esta vez selecciona solo los archivos (puedes filtrar por tipo o hacerlo manualmente) y ponles 644.
[TIP] Si usas FileZilla, asegúrate de tener activada la vista de columnas para ver los permisos actuales. Así podrás identificar rápidamente qué archivos están mal.
Paso 4: Casos especiales que también generan error 500
A veces, aunque pongas los permisos correctos, el error 500 prestashop persiste. Esto puede deberse a:
1. La carpeta var/cache o cache está llena o corrupta
PrestaShop genera archivos de caché continuamente. Si estos archivos se corrompen o tienen permisos incorrectos, el servidor falla. La solución es vaciar la caché manualmente:
- Conecta por FTP.
- Entra en la carpeta
var/cache/(ocache/en versiones antiguas). - Borra todo el contenido de esa carpeta, pero no la carpeta en sí.
- Recarga tu tienda.
2. El archivo .htaccess está dañado
PrestaShop genera un .htaccess automáticamente. Si está corrupto, puede provocar errores 500. Para regenerarlo:
- Ve al panel de administración de PrestaShop.
- En "Parámetros avanzados" → "Rendimiento".
- Haz clic en "Guardar" (esto regenera el
.htaccess).
Si no puedes acceder al panel, borra el archivo .htaccess por FTP y luego intenta acceder a la tienda. PrestaShop lo regenerará automáticamente.
3. La versión de PHP no es compatible
PrestaShop 1.7 requiere PHP 7.1 o superior, y PrestaShop 8 necesita PHP 7.2 o más. Si tu hosting usa una versión antigua, el error 500 es casi seguro. Desde tu panel de hosting (Syspanel, por ejemplo), busca la opción "Versión de PHP" o "Selector de PHP" y cambia a una compatible.
Paso 5: Verifica que todo funciona
Después de aplicar los cambios de permisos, limpia la caché del navegador y prueba a cargar tu tienda. Si todo ha ido bien, verás tu página de inicio sin problemas.
Prueba también el panel de administración (/admin123 o la URL que tengas configurada). Si el panel carga, es que los permisos prestashop están correctamente configurados.
[INFO] Si el error persiste, repite el proceso de depuración (Paso 1) y comprueba el nuevo mensaje de error. Puede que ahora indique otro problema, como un módulo incompatible o una falta de memoria PHP.
Preguntas frecuentes sobre el error 500 en PrestaShop
¿Por qué aparece el error 500 después de mover la tienda a otro hosting?
Porque los permisos de archivos se copian mal durante la migración. Al subir los archivos por FTP, el cliente sobreescribe los permisos originales. Aplica los valores 644 y 755 que te he indicado y se solucionará.
¿Puedo dar permisos 777 temporalmente para arreglar el error 500?
No lo recomiendo. Es una solución temporal que abre la puerta a ataques. Si necesitas escribir en una carpeta, mejor usa 755 y verifica que el propietario del archivo es el correcto. En Syspanel puedes cambiar el propietario desde la opción "Cambiar propietario" del administrador de archivos.
¿Qué hago si no tengo acceso al panel de administración de PrestaShop?
Puedes activar el modo debug y cambiar los permisos por FTP sin entrar al panel. Una vez que la tienda cargue, podrás acceder al panel y regenerar la caché desde ahí.
¿El error 500 puede deberse a un módulo de pago?
Sí, es posible. Si los permisos están bien y el error persiste, desactiva todos los módulos renombrando la carpeta modules/ a modules_bak/ y crea una nueva carpeta modules/ vacía. Si la tienda carga, el problema es un módulo concreto. Actívalos uno a uno para encontrarlo.
¿Cada cuánto tiempo debo revisar los permisos de mi PrestaShop?
No es necesario que los revises constantemente, pero sí después de cada actualización de PrestaShop, de mover archivos por FTP o de instalar un módulo nuevo. Esos son los momentos de mayor riesgo.
Resumen final
El error 500 prestashop por permisos es un problema común pero perfectamente solucionable si sigues estos pasos:
- Activa el modo debug para confirmar el origen.
- Aplica permisos 755 a carpetas y 644 a archivos.
- Vacía la carpeta de caché.
- Verifica la versión de PHP.
- Regenera el
.htaccess.
Con esto, en el 90% de los casos la tienda vuelve a funcionar. Si el problema persiste, revisa los módulos y, si todo falla, contacta con tu proveedor de hosting. Ellos pueden revisar los logs del servidor para encontrar el error exacto.
Recuerda que la paciencia es clave. Ve paso a paso, sin prisas, y no pruebes soluciones agresivas como los permisos 777. Con un poco de método, tu PrestaShop volverá a estar operativo en menos de lo que piensas.
[TIP] Si tu hosting usa Syspanel, recuerda que el puerto de acceso es el 2106. Entra con esa información y utiliza su administrador de archivos para cambiar permisos de forma visual, sin necesidad de FTP.
