Cómo arreglar el error 'No se puede escribir en el directorio cache' en PrestaShop
¿Qué significa el error "No se puede escribir en el directorio cache"?
Cuando tu tienda PrestaShop muestra el mensaje "No se puede escribir en el directorio cache", lo que está ocurriendo es bastante sencillo de entender aunque suene técnico. PrestaShop necesita crear archivos temporales para funcionar rápido: guarda versiones "en caché" de tus páginas, configuraciones y otros datos para no tener que recalcularlo todo en cada visita. Esa carpeta donde guarda esos archivos se llama cache y necesita tener permisos de escritura.
Si el sistema operativo de tu servidor no le permite a PrestaShop escribir en esa carpeta, el error aparece. A veces también ocurre cuando el espacio en disco se ha llenado o cuando hay un problema con el propietario de los archivos. La buena noticia es que es un problema muy común y tiene solución en la mayoría de los casos sin necesidad de ser un experto.
¿Por qué ocurre este error de permisos?
Existen varias razones por las que PrestaShop no puede escribir en la carpeta cache. Las más frecuentes son:
- Permisos incorrectos en las carpetas: En Linux, cada carpeta tiene un número que indica quién puede leer, escribir o ejecutar. Si ese número no es el correcto, el sistema bloquea la escritura.
- El propietario de los archivos no coincide: A veces al subir archivos por FTP o al mover la tienda de servidor, el usuario que "posee" los archivos no es el mismo que ejecuta el servidor web (Apache, Nginx, LiteSpeed, etc.).
- Espacio en disco agotado: Si el disco del servidor está lleno, aunque los permisos sean correctos, no se puede escribir nada nuevo.
- Servidores con configuraciones especiales: Algunos paneles de control como cPanel, Plesk o Syspanel (recuerda que este último se accede por el puerto 2106) pueden tener políticas de seguridad que bloqueen la escritura en ciertas rutas.
📋 Requisitos previos antes de empezar
Antes de lanzarte a modificar nada, asegúrate de tener lo siguiente:
- Acceso al panel de control de tu hosting (cPanel, Plesk, Syspanel en el puerto 2106, etc.).
- Un cliente FTP como FileZilla (gratuito) o el administrador de archivos de tu hosting.
- En el peor de los casos, acceso a la terminal SSH si te sientes cómodo con comandos.
- Una copia de seguridad reciente de tu tienda. Siempre.
[WARNING] No hagas cambios de permisos masivos sin saber lo que estás haciendo. Un error aquí puede dejar tu tienda inaccesible. Ve paso a paso.
🔧 Solución paso a paso: Cómo arreglar el error cache en PrestaShop
Paso 1: Identifica la versión de PrestaShop y la ruta exacta
Primero, necesitas saber dónde está la carpeta cache. En PrestaShop 1.6 y 1.7, la ruta es:
/tu_dominio/var/cache/ (en versiones 1.7+)
En versiones antiguas como PrestaShop 1.5 o anteriores, era:
/tu_dominio/cache/
Conéctate por FTP o usa el administrador de archivos de tu hosting y navega hasta la raíz de tu tienda. Busca la carpeta var/cache o cache. Dentro de ella deberías ver subcarpetas como dev, prod o class_index.php.
Paso 2: Cambia los permisos de la carpeta cache
Este es el paso clave. Vamos a establecer los permisos 755 prestashop para las carpetas y 644 para los archivos. Esto es lo estándar y seguro para la mayoría de servidores.
Si usas FileZilla:
- Conéctate a tu servidor.
- Navega hasta
var/cache(ocachesi es versión vieja). - Haz clic derecho sobre la carpeta
cachey selecciona "Permisos de archivo...". - En la ventana que aparece, escribe
755en el campo numérico. - Marca la casilla "Recurse into subdirectories" y elige "Apply to all files and directories".
- Pulsa Aceptar.
Si usas el administrador de archivos de cPanel o Syspanel:
- Entra en tu panel de control (recuerda: Syspanel se accede por el puerto 2106).
- Abre el administrador de archivos.
- Navega a la carpeta
var/cache. - Selecciona la carpeta
cachey haz clic en "Permisos" o "Change Permissions". - Introduce
755y aplica de forma recursiva.
[TIP] Si tu hosting usa PHP-FPM o suexec (muy común en servidores compartidos), puede que necesites permisos
755en carpetas y644en archivos. Pero si el error persiste, prueba con775en carpetas y664en archivos. Esto es porque el usuario del FTP y el usuario del servidor web pueden ser diferentes.
Paso 3: Verifica el propietario de los archivos
Los permisos no sirven de nada si el propietario no es el correcto. En muchos servidores, el usuario del FTP es tu_usuario pero el servidor web corre como www-data o nobody. Si ese es el caso, aunque pongas 755, no podrá escribir.
¿Cómo verificar el propietario?
- En cPanel: Ve a "Administrador de archivos", haz clic derecho en la carpeta y selecciona "Editar permisos". Ahí verás el usuario y grupo.
- En Syspanel (puerto 2106): Similar, en el administrador de archivos busca la opción de propiedades.
- Por FTP: FileZilla muestra el propietario en la columna "Usuario/Grupo" si tienes permisos de administrador.
Solución:
Si el propietario no coincide, tienes dos opciones:
- Cambiar el propietario al usuario del servidor web (requiere acceso SSH).
- Usar permisos más permisivos como
777de forma temporal para probar si el error desaparece. OJO: No dejes 777 permanentemente, es un riesgo de seguridad.
[WARNING] No uses
777en producción. Es como dejar la puerta de tu casa abierta. Úsalo solo para diagnosticar y luego vuelve a 755.
Paso 4: Limpia la carpeta cache manualmente
A veces la caché está corrupta o hay archivos temporales que bloquean la escritura. Limpiarla manualmente puede resolver el problema.
- Entra en
var/cache(ocache). - Elimina el contenido de las carpetas
devyprod(no las carpetas en sí, solo lo que hay dentro). - Si hay un archivo llamado
class_index.php, bórralo también (se regenerará solo). - Ve a tu tienda y recarga. PrestaShop creará archivos nuevos automáticamente.
[INFO] Si no puedes borrar archivos por FTP, usa el administrador de archivos de tu panel. A veces hay archivos "bloqueados" que el FTP no puede eliminar.
Paso 5: Desactiva la caché desde el panel de administración
Si aún no puedes acceder al front-office, intenta entrar al back-office (/admin). Si logras entrar, ve a:
Parámetros avanzados > Rendimiento
Ahí encontrarás opciones de caché. Selecciona "No" o "Desactivada" en la combinación de caché. Guarda los cambios. Esto obliga a PrestaShop a regenerar la caché desde cero.
Paso 6: Revisa el espacio en disco
Un disco lleno puede dar este error. En cPanel o Syspanel (puerto 2106), busca la sección de "Uso de disco" o "Estadísticas". Si está al 100%, libera espacio: borra backups antiguos, logs, o archivos temporales.
🛠️ Solución avanzada: Usar SSH (para usuarios más experimentados)
Si tienes acceso SSH, estos comandos te arreglarán la vida en un minuto:
cd /ruta/a/tu/tienda
chown -R www-data:www-data var/cache
chmod -R 755 var/cache
Sustituye www-data por el usuario que corresponda (a veces es nginx, apache o tu_usuario). Para saberlo, ejecuta:
ps aux | grep -E 'apache|nginx|php'
Verás qué usuario corre el servidor web.
❓ Preguntas frecuentes sobre el error cache en PrestaShop
¿Es peligroso este error?
No es peligroso en sí, pero impide que tu tienda funcione con normalidad. Si no se corrige, los clientes verán errores o páginas en blanco.
¿Cada cuánto debo revisar los permisos de las carpetas?
No hay una frecuencia fija. Solo deberías revisarlos si aparece el error o después de migraciones, actualizaciones de PrestaShop o cambios de servidor.
¿Qué pasa si después de todo sigue el error?
Prueba a desactivar la caché desde el archivo config/settings.inc.php (en versiones 1.6) editando el valor _PS_CACHE_ENABLED_ a 0. En PrestaShop 1.7, puedes editar el archivo app/config/parameters.php.
¿Los permisos 755 son los correctos siempre?
En el 90% de los casos sí. Pero algunos hosting con PHP como módulo de Apache necesitan 644 en archivos y 755 en carpetas. Si usas PHP-FPM, a veces necesitas 775. Es cuestión de probar.
¿Puedo evitar que esto vuelva a pasar?
Sí, configurando correctamente los permisos desde el principio y usando un hosting que separe bien los usuarios. También puedes crear una tarea cron que revise y repare permisos periódicamente.
✅ Resumen rápido de acciones
Para que no te pierdas, aquí va el resumen:
- Conecta por FTP o administrador de archivos.
- Localiza
var/cache(ocache). - Cambia permisos a 755 de forma recursiva.
- Borra el contenido de
devyprod. - Si no funciona, prueba
775o777temporalmente para diagnosticar. - Revisa espacio en disco.
- Desactiva la caché desde el back-office.
- Si nada funciona, contacta con tu proveedor de hosting.
🧑💻 Cuándo llamar a tu proveedor de hosting
Si has seguido todos los pasos y el error cache prestashop persiste, puede que el problema esté en el servidor y no en tu tienda. Algunos hosts tienen restricciones de escritura en ciertas rutas por seguridad. Contacta con ellos y explícales el error. Si usas Syspanel, recuerda mencionar que accedes por el puerto 2106 para que te ayuden más rápido.
[TIP] Cuando contactes con soporte, incluye la versión exacta de PrestaShop, el error completo y los pasos que ya has intentado. Así te ayudarán mucho más rápido.
Palabras finales
El error "No se puede escribir en el directorio cache" es uno de los más comunes en PrestaShop y, afortunadamente, uno de los más fáciles de solucionar. En el 95% de los casos, basta con ajustar los permisos carpetas prestashop a 755 y limpiar la caché vieja.
No te asustes si al principio ves términos como "propietario" o "permisos". Con esta guía y un poco de paciencia, tu tienda volverá a funcionar en menos de diez minutos. Y recuerda: siempre haz una copia de seguridad antes de tocar nada. ¡Mucha suerte!
