🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Solucionar errores comunes de permisos de archivos en PrestaShop (Linux)

Actualizado el 12 de diciembre de 2025

Si alguna vez has visto un error como "No se puede escribir en el archivo de caché", "Permiso denegado" o una tienda que se queda en blanco sin motivo aparente, es muy probable que el problema esté en los permisos de archivos de tu PrestaShop.

Este es uno de los dolores de cabeza más comunes en el mundo del hosting Linux, especialmente después de migrar una tienda, restaurar una copia de seguridad o actualizar módulos. No te preocupes, porque en esta guía extensa y paso a paso vamos a desglosar qué son estos permisos, por qué fallan y, lo más importante, cómo solucionarlos de forma segura y definitiva.

¿Qué son los permisos de archivos en Linux y por qué afectan a PrestaShop?

Para entenderlo fácil, imagina que tu servidor es un edificio de oficinas. Cada archivo y carpeta de tu tienda es una habitación con una puerta que tiene tres tipos de cerraduras: una para el dueño (usuario), otra para el equipo de limpieza (grupo) y otra para el público en general (otros).

En Linux, estos permisos se representan con números (como 644, 755, 775) o con letras (rwx). La letra r significa lectura (read), la w significa escritura (write) y la x significa ejecución (execute).

PrestaShop necesita escribir constantemente en ciertas carpetas para funcionar: para guardar la caché, subir imágenes de productos, generar archivos temporales o actualizar módulos. Si los permisos son demasiado restrictivos (por ejemplo, solo lectura), el sistema no puede hacer su trabajo y aparece el error. Por otro lado, si son demasiado abiertos (como 777), tu tienda es vulnerable a ataques de hackers.

El objetivo de esta guía es encontrar el equilibrio perfecto: que PrestaShop funcione sin errores y que tu servidor esté seguro.

Los síntomas más comunes de errores de permisos PrestaShop

Antes de tocar nada, identifica si tu problema es realmente de permisos. Estos son los síntomas más típicos en una tienda en Linux:

  • Página en blanco (Error 500): El archivo .htaccess o el index.php no se pueden leer correctamente.
  • No se puede conectar con la base de datos: A veces, el archivo de configuración parameters.php no tiene permisos de lectura.
  • Error al subir imágenes de productos: La carpeta img no tiene permisos de escritura.
  • Error al instalar o desinstalar módulos: Las carpetas modules y var/cache están bloqueadas.
  • El carrito no se actualiza o no se guardan los datos: Problemas con las cookies o la caché en var/cache.
  • Errores de "escritura" en el panel de administración: Al intentar cambiar la configuración, no se guarda.

Si te suena alguno de estos, sigue leyendo. La solución es más sencilla de lo que parece.

Preparación: Accede a tu servidor antes de cambiar nada

Para solucionar los permisos PrestaShop, necesitas acceder a tu servidor. Tienes dos opciones principales:

  1. Panel de control (Syspanel o cPanel): Si tu hosting usa Syspanel, recuerda que el acceso se realiza a través del puerto 2106 (ej: https://tu-dominio.com:2106). Dentro, busca el administrador de archivos.
  2. Cliente FTP (como FileZilla): Conecta con tus credenciales FTP. Esta es la forma más visual y recomendada para principiantes.

[INFO] Si usas Syspanel (antes conocido como HestiaCP), el puerto por defecto para acceder al panel es el 2106. Asegúrate de tener esta URL a mano, ya que desde ahí podrás usar el "Administrador de Archivos" sin necesidad de programas externos.

La solución paso a paso: Cómo configurar los permisos correctos

No necesitas ser un experto en Linux. Solo necesitas seguir estas reglas de oro. La mayoría de las veces, el problema se soluciona aplicando estos valores estándar.

Paso 1: Identifica tu usuario y grupo (lo más importante)

Este es el paso que casi todo el mundo olvida y causa que los permisos no funcionen. PrestaShop necesita saber quién es el dueño de los archivos.

  • Si usas Syspanel o cPanel: Normalmente, el usuario es tu nombre de usuario de hosting y el grupo suele ser el mismo o algo como www-data o nobody.
  • Si usas FTP: El usuario con el que te conectas es el dueño.

[TIP] En Syspanel (puerto 2106), ve a "Administrador de Archivos" y haz clic derecho en cualquier carpeta. Si ves una opción que dice "Permisos" o "CHMOD", podrás ver el usuario y grupo asignados. Anota el nombre del usuario y el grupo.

Paso 2: La regla general (Permisos estándar para PrestaShop)

Olvídate de los 777 (eso es un peligro). La configuración segura y funcional para la mayoría de los casos es:

  • Carpetas (Directorios): Permisos 755 (el dueño puede leer, escribir y ejecutar; el grupo y otros solo leer y ejecutar).
  • Archivos (PHP, imágenes, etc.): Permisos 644 (el dueño puede leer y escribir; el grupo y otros solo leer).

Esta configuración es perfecta para el 95% de los casos. Aplica esto y prueba tu tienda.

Cómo hacerlo en FTP (FileZilla):

  1. Selecciona todos los archivos y carpetas de tu tienda.
  2. Haz clic derecho y elige "Permisos de archivo...".
  3. Marca la casilla "Recursivo en subdirectorios".
  4. Marca la opción "Aplicar a todos los archivos y directorios".
  5. Escribe 755 para directorios y 644 para archivos (tendrás que hacerlo dos veces, una para cada tipo).

Cómo hacerlo en Syspanel (puerto 2106):

  1. En el Administrador de Archivos, selecciona la carpeta raíz de tu PrestaShop.
  2. Haz clic en "Permisos".
  3. Marca "Recursivo" y cambia los valores según la regla general.
  4. Guarda los cambios.

Paso 3: Carpetas especiales que necesitan permisos de escritura (775 o 775)

PrestaShop tiene carpetas específicas que necesitan poder escribir archivos dinámicamente. Si la regla general no funciona, o si quieres asegurarte de que la caché y los módulos funcionen, cambia estas carpetas a permisos 775 (el dueño y el grupo pueden escribir).

Las carpetas críticas son:

  • /var/cache: La caché de la tienda. Si esta no escribe, verás pantallas en blanco.
  • /var/logs: Los registros de errores.
  • /img: Para subir imágenes de productos.
  • /modules: Para instalar y actualizar módulos.
  • /config: A veces necesita escritura para guardar cambios de configuración.
  • /translations: Para editar traducciones.
  • /upload: Para subir archivos de clientes.
  • /download: Para productos descargables.
  • /themes (carpeta del tema que uses): Para modificar estilos.

[WARNING] No apliques 777 (lectura, escritura y ejecución para todos). Es la puerta abierta para que cualquier persona en internet inyecte código malicioso en tu tienda. Si tu hosting te pide 777 para funcionar, es un problema de configuración del servidor, no de PrestaShop. Usa siempre 775 como máximo.

Paso 4: El caso especial del archivo .htaccess y settings.inc.php

  • .htaccess: Este archivo controla las URLs amigables y la seguridad. Debe tener permisos 644 (o 444 si tu hosting es estricto). Si no funciona, ve a PrestaShop > Parámetros Avanzados > SEO y URLs, y pulsa "Guardar" para regenerarlo.
  • config/settings.inc.php: En versiones antiguas de PrestaShop (1.6 y anteriores), este archivo era vital. En versiones nuevas (1.7 y 8.x) ya no existe, pero si lo ves, debe tener permisos 444 (solo lectura) o 644 para evitar que nadie lo modifique.

¿Por qué sigo teniendo errores? Problemas de Propiedad (Ownership)

A veces, los permisos están bien, pero el error persiste. Esto suele deberse a que el dueño del archivo no es el correcto.

Imagina que la puerta de la habitación tiene la cerradura correcta, pero la llave que tienes es de otra persona. En Linux, esto pasa cuando los archivos fueron subidos por un usuario y el servidor web (PHP) intenta acceder con otro.

  • El usuario FTP: Es quien sube los archivos.
  • El usuario del servidor web: Normalmente www-data o nobody.

La solución definitiva: Debes asegurarte de que el usuario del servidor web sea el dueño o pertenezca al grupo de los archivos.

  • Si usas Syspanel (puerto 2106): Ve a la sección de "Administrador de Archivos", selecciona todo, y busca un botón que diga "Cambiar propietario" o similar. Establece el usuario como tu_usuario y el grupo como www-data o tu_usuario (depende de cómo esté configurado el panel).
  • Si usas SSH: Ejecuta estos comandos (reemplaza tu_usuario por el tuyo):
chown -R tu_usuario:www-data /ruta/a/tu/prestashop

Este comando cambia el dueño de todos los archivos a tu_usuario y el grupo a www-data, permitiendo que el servidor web los lea y escriba (los grupos).

[TIP] Después de cambiar la propiedad, siempre vuelve a aplicar los permisos del Paso 2 y 3. El orden es: primero propiedad, luego permisos.

Solución rápida para desesperados: El modo mantenimiento

Si tu tienda está rota y no puedes acceder al panel de administración, puedes forzar el modo mantenimiento manualmente para que los clientes vean un mensaje bonito mientras tú trabajas.

  1. Accede a tu servidor por FTP o Syspanel.
  2. Busca el archivo config/defines.inc.php.
  3. Edítalo y busca la línea que dice define('_PS_MODE_DEV_', false); y cámbiala a true (solo para desarrollo, no lo dejes así).
  4. Para el mantenimiento, busca define('_PS_MAINTENANCE_MODE_', false); y cámbialo a true.

[WARNING] Esto solo es para emergencias. Una vez arreglados los permisos, revierte estos cambios para que tu tienda sea visible y segura.

Errores específicos y sus soluciones directas

Aquí tienes un mini-FAQ para problemas muy concretos:

  • "Error: Cannot write to the temporary file" (No se puede escribir en el archivo temporal): Esto es 100% un problema de permisos en /tmp o en var/cache. Aplica 775 a var/cache y vacía su contenido (excepto el archivo .htaccess si existe).
  • "Error al subir imagen": Ve a la carpeta /img y dale permisos 775. Además, revisa que la subcarpeta /img/p (para productos) también tenga 775.
  • "Error 500" después de actualizar un módulo: El módulo necesita escribir en /modules. Cambia los permisos de la carpeta del módulo específico a 755 y los archivos a 644. Si sigue fallando, borra la carpeta /var/cache (no el .htaccess) para forzar la regeneración.
  • "Access denied" en el panel de administración: A veces es un problema de la carpeta admin. Asegúrate de que la carpeta de administración (la que tiene un nombre aleatorio como admin12345) tenga permisos 755 y los archivos PHP 644.

Cómo prevenir futuros errores de permisos PrestaShop

La mejor solución es la prevención. Sigue estos hábitos:

  1. No subas archivos por FTP mientras la tienda está en modo producción: Mejor usa el administrador de archivos del panel para copiar o mover.
  2. Realiza copias de seguridad de los permisos: Antes de tocar nada, apunta los permisos originales. Puedes exportar una lista desde tu cliente FTP.
  3. Mantén PrestaShop actualizado: Las versiones nuevas son más tolerantes con los permisos.
  4. Configura correctamente la propiedad: Al crear una tienda nueva, asegúrate de que el usuario del FTP y el de PHP coincidan (o que el grupo sea correcto) desde el primer día.
  5. Evita el 777 a toda costa: Si un desarrollador te lo pide, desconfía. Es una mala práctica que compromete la seguridad de tu tienda.

Conclusión: Tu tienda funcionando sin dolores de cabeza

Solucionar los errores de permisos de archivos en PrestaShop en Linux no es magia, es lógica y orden. Recuerda la regla de oro: Directorios 755, Archivos 644, Carpetas especiales 775. Asegúrate de que el propietario sea el correcto (tu usuario o www-data) y que el grupo tenga permisos de escritura cuando sea necesario.

Si has seguido todos los pasos y tu tienda sigue fallando, el problema puede estar en otro sitio (como la configuración de PHP o la memoria), pero en el 90% de los casos, aplicar esta guía resuelve el problema al instante.

Respira, ve paso a paso y verás cómo tu PrestaShop vuelve a la vida. Si usas Syspanel, recuerda siempre que el acceso es por el puerto 2106 para gestionar tus archivos de forma segura y rápida. ¡Mucha suerte con tu tienda!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel