Cómo resolver el error de permisos de archivos en PrestaShop (DirectAdmin/Plesk)
¿Qué significa el error de permisos en PrestaShop y por qué aparece?
Si estás leyendo esto, probablemente te has encontrado con un mensaje de error que dice algo como "No se puede escribir en el archivo" o "Error de permisos" al intentar instalar un módulo, subir una imagen o actualizar tu tienda. No te preocupes, es uno de los problemas más comunes en PrestaShop y tiene solución.
Los permisos PrestaShop (también conocidos como chmod) son básicamente las reglas que indican quién puede leer, escribir o ejecutar cada archivo y carpeta de tu instalación. Cuando estos permisos están mal configurados, el servidor bloquea las operaciones que necesita tu tienda para funcionar correctamente.
El error suele aparecer en dos situaciones muy concretas:
- Al instalar o actualizar módulos y temas: PrestaShop necesita escribir archivos en el directorio
/moduleso/themes. - Al subir imágenes o generar caché: el sistema necesita crear archivos temporales en
/imgy/var/cache.
En este artículo te voy a explicar paso a paso cómo resolver estos errores tanto si tu hosting usa DirectAdmin como si usa Plesk. Y también veremos cómo hacerlo por línea de comandos (SSH) para los que se sientan más valientes.
Antes de empezar: identifica el tipo de error exacto
No todos los errores de permisos son iguales. Para aplicar la solución correcta, primero debes saber qué está fallando. Los más frecuentes son:
- Error al escribir en
/cacheo/var/cache: aparece al activar o desactivar la caché de PrestaShop. - Error al subir imágenes: el mensaje suele decir algo como "No se puede copiar la imagen" o "Error de escritura en /img".
- Error al instalar un módulo: el mensaje indica que no se puede mover el archivo ZIP a
/modules. - Error al generar el archivo
.htaccess: suele aparecer al cambiar la configuración de URLs amigables.
[!WARNING]
NUNCA pongas todos los permisos a 777 (lectura, escritura y ejecución para todos) en toda la instalación. Esto es un agujero de seguridad enorme y puede comprometer tu tienda. Los permisos correctos para PrestaShop son 755 para carpetas y 644 para archivos, con algunas excepciones que veremos más adelante.
Cómo resolver el error de permisos en DirectAdmin
DirectAdmin es uno de los paneles de control más usados en hosting compartido. La buena noticia es que tiene una herramienta integrada para cambiar permisos sin necesidad de usar comandos.
Paso 1: Accede al administrador de archivos de DirectAdmin
- Entra en tu panel de DirectAdmin con tus credenciales de hosting.
- Busca la sección "Administrador de archivos" o "File Manager" (suele estar en el menú principal).
- Navega hasta la carpeta donde tienes instalado PrestaShop. Normalmente es
public_htmlo una subcarpeta comopublic_html/tienda.
Paso 2: Selecciona todos los archivos y carpetas
Una vez dentro de la raíz de PrestaShop:
- Haz clic en "Seleccionar todo" o usa
Ctrl+Apara marcar todos los archivos y carpetas. - En el menú superior, busca el botón "Cambiar permisos" o "Chmod" (el icono suele ser un candado o un engranaje).
Paso 3: Aplica los permisos correctos para PrestaShop
Se abrirá una ventana donde puedes asignar permisos numéricos. Aquí tienes la configuración recomendada:
| Elemento | Permisos (chmod) |
|---|---|
| Carpetas | 755 |
| Archivos | 644 |
Carpeta /var/cache y subcarpetas | 755 |
Carpeta /img y subcarpetas | 755 |
Carpeta /modules y subcarpetas | 755 |
Carpeta /themes y subcarpetas | 755 |
Archivo /config/settings.inc.php | 644 (o 444 si no necesitas escribir en él) |
[!TIP]
En DirectAdmin, si la casilla dice "Recursivo" o "Aplicar a subcarpetas", actívala. Esto aplicará los permisos a todos los archivos y carpetas internas en un solo paso.
Paso 4: Permisos especiales para la caché
La caché de PrestaShop necesita permisos de escritura para el usuario del servidor web. Si después de aplicar los permisos anteriores sigues viendo errores de caché, haz esto:
- Ve a la carpeta
/var/cache. - Cambia los permisos de esta carpeta y todas sus subcarpetas a 755.
- Si el error persiste, prueba con 775 temporalmente. Esto permite que el grupo del servidor escriba también.
Paso 5: Verifica la solución
Vuelve a tu tienda y prueba la acción que te daba error. Si era al instalar un módulo, intenta instalarlo de nuevo. Si era al subir una imagen, sube una foto de prueba.
Cómo resolver el error de permisos en Plesk
Plesk tiene una interfaz un poco diferente, pero el proceso es igual de sencillo.
Paso 1: Abre el Administrador de archivos de Plesk
- Accede a tu panel de Plesk.
- Ve a "Sitios web y dominios" y haz clic en tu dominio.
- Busca el botón "Administrador de archivos" en la barra de herramientas.
Paso 2: Navega a tu instalación de PrestaShop
Dentro del administrador de archivos, localiza la carpeta raíz de tu tienda. Suele ser httpdocs o public_html.
Paso 3: Cambia los permisos de forma recursiva
- Marca la casilla de la carpeta raíz de PrestaShop.
- Haz clic en el botón "Permisos" en la barra superior.
- Se abrirá una ventana donde puedes escribir los valores numéricos.
Pon 755 para las carpetas y 644 para los archivos. Asegúrate de marcar la opción "Aplicar a archivos y subdirectorios" o similar.
Paso 4: Ajusta los permisos de la caché y archivos de configuración
Al igual que en DirectAdmin, presta atención especial a:
/var/cache→ 755 o 775 si persiste el error./img→ 755./config/settings.inc.php→ 644.
[!INFO]
Si tu hosting con Plesk usa PHP-FPM (lo más habitual hoy en día), el usuario del servidor web es diferente al de tu cuenta FTP. En ese caso, los permisos 755/644 suelen funcionar bien. Si ves errores raros, prueba con 775 en la carpeta/var/cache.
Paso 5: Limpia la caché de PrestaShop
Después de cambiar permisos, es recomendable limpiar la caché de PrestaShop. Puedes hacerlo desde el panel de administración:
- Ve a Parámetros avanzados → Rendimiento.
- Haz clic en "Vaciar la caché".
Si no puedes acceder al panel de administración, borra manualmente los archivos de la carpeta /var/cache (no la carpeta en sí, solo su contenido).
Solución avanzada: cambiar permisos por SSH (línea de comandos)
Si tienes acceso SSH a tu servidor, esta es la forma más rápida y fiable de arreglar los permisos PrestaShop.
Conecta por SSH
Abre tu terminal y conéctate al servidor:
ssh usuario@tudominio.com
Navega hasta la raíz de PrestaShop
cd /ruta/a/tu/prestashop
Usa pwd para confirmar que estás en el lugar correcto.
Aplica los permisos estándar
Este comando pone todas las carpetas a 755 y todos los archivos a 644 de forma recursiva:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Permisos especiales para la caché y archivos de configuración
chmod -R 755 var/cache
chmod -R 755 img
chmod 644 config/settings.inc.php
[!TIP]
Si tu servidor usa PHP-FPM, es posible que necesites que el grupo del servidor también pueda escribir en la caché. En ese caso, ejecuta:chmod -R 775 var/cache.
Verifica que todo quedó bien
Puedes listar los permisos de una carpeta concreta para comprobar:
ls -la
Deberías ver algo como drwxr-xr-x para carpetas y -rw-r--r-- para archivos.
¿Y si el error persiste? Causas adicionales
A veces el problema no es solo el chmod, sino otros factores que impiden la escritura. Aquí tienes las causas más habituales:
1. Propietario incorrecto de los archivos
Si los archivos pertenecen a otro usuario del sistema, el servidor web no podrá escribirlos aunque tengan permisos 755. Para comprobarlo y arreglarlo por SSH:
chown -R usuario:grupo /ruta/a/prestashop
Normalmente el usuario es tu cuenta de hosting y el grupo es www-data, nobody o apache, dependiendo del servidor.
2. SELinux activado (en servidores CentOS/RHEL)
SELinux puede bloquear la escritura aunque los permisos sean correctos. Para desactivarlo temporalmente:
setenforce 0
[!WARNING]
Desactivar SELinux es una solución temporal y no recomendada en producción. Si el problema persiste, contacta con tu proveedor de hosting para configurar las políticas de SELinux correctamente.
3. Espacio en disco lleno
Un disco lleno también puede provocar errores de escritura. Verifica con:
df -h
Si el disco está al 100%, libera espacio (borra logs, cachés antiguas o backups).
Preguntas frecuentes (FAQ) sobre permisos en PrestaShop
¿Qué permisos debe tener la carpeta /var/cache?
La carpeta /var/cache y sus subcarpetas deben tener 755 como mínimo. Si tu servidor usa PHP-FPM y el error persiste, prueba con 775.
¿Por qué no debo usar permisos 777?
Los permisos 777 permiten que cualquier usuario del sistema (y potencialmente un atacante) pueda leer, escribir y ejecutar tus archivos. Esto puede llevar a que inyecten código malicioso en tu tienda. Siempre usa el mínimo necesario.
¿Cómo sé si mi hosting usa DirectAdmin o Plesk?
Normalmente lo verás al acceder al panel de control. Si no lo tienes claro, revisa el correo de bienvenida de tu hosting o contacta con soporte técnico.
¿Necesito cambiar permisos cada vez que actualizo PrestaShop?
No, los permisos correctos se mantienen. Pero después de una actualización o migración, es buena práctica verificar que sigan siendo los correctos.
¿Puedo cambiar permisos desde el panel de administración de PrestaShop?
No, PrestaShop no tiene una herramienta para cambiar permisos. Debes hacerlo desde el panel de control del hosting o por SSH.
Resumen y recomendaciones finales
Resolver el error permisos en PrestaShop es un proceso sencillo si sigues los pasos adecuados. Recuerda la regla de oro: carpetas a 755, archivos a 644, y otorga permisos extras solo donde realmente se necesitan (caché, imágenes, módulos).
Antes de tocar nada, haz una copia de seguridad de tu instalación. Si algo sale mal, podrás restaurar sin perder información.
Si después de todo sigues teniendo problemas, no dudes en contactar con tu proveedor de hosting. A veces el problema está en la configuración del servidor y no en los permisos en sí.
[!TIP]
Para evitar futuros errores, configura correctamente los permisos desde el principio. Si usas un hosting gestionado, pregunta a tu proveedor si tienen una configuración recomendada para DirectAdmin PrestaShop o Plesk con PrestaShop.
Espero que esta guía te haya sido útil. Con un poco de paciencia y los pasos correctos, tu tienda volverá a funcionar perfectamente. ¡Mucho ánimo y a vender!
