Introducción al Problema de Permisos y Archivos en Magento 2
Uno de los dolores de cabeza más comunes para los administradores de tiendas en línea desarrolladas en Magento 2 es encontrarse con excepciones relacionadas con archivos locales o denegación de permisos en directorios críticos como var, pub/static y generated. Esto suele ocurrir tras una actualización, una instalación incorrecta de módulos o al ejecutar comandos de la consola sin los privilegios adecuados.
Causas Principales del Error
Las razones más frecuentes por las cuales Magento genera este tipo de excepciones en el servidor son:
- Propietarios de archivos incorrectos entre el usuario del servidor web (ej.
www-dataonginx) y el usuario de la terminal (ej.rooto usuario SSH). - Falta de permisos de escritura y lectura en las carpetas de caché y generación de código.
- Modificación manual de archivos dentro de los directorios protegidos del núcleo.
Método 1: Restablecer los Permisos de Archivos y Directorios por Consola
Para solucionar conflictos de acceso, debes asegurarte de que los permisos de tu instalación de Magento cumplan con los estándares de seguridad recomendados por Adobe. Conéctate a tu servidor vía SSH y ejecuta los siguientes comandos desde la raíz de tu proyecto:
- Encuentra el usuario de tu servidor web ejecutando:
ps aux | grep apacheops aux | grep nginx. - Asigna la propiedad correcta de los archivos al usuario del servidor web y al grupo correspondiente.
- Ejecuta el siguiente bloque de comandos para corregir directorios y archivos:
find . -type d -exec chmod 755 {} +find . -type f -exec chmod 644 {} +chmod -R 770 var generated pub/static pub/mediaMétodo 2: Limpiar y Regenerar la Caché y el Código Compilado
Una vez corregidos los permisos, es fundamental limpiar el estado actual de la aplicación para eliminar cualquier rastro de la excepción anterior.
- Limpia la caché de Magento ejecutando:
php bin/magento cache:clean - Elimina el contenido obsoleto de las carpetas de compilación mediante:
rm -rf generated/code/* generated/metadata/* - Vuelve a compilar la aplicación con el comando de producción:
php bin/magento setup:di:compile
Siguiendo estos pasos con precisión, tu tienda Magento 2 volverá a funcionar con total normalidad y sin errores de excepciones por archivos locales.