El día anterior, actualicé un nuevo módulo y estaba funcionando normalmente. Ahora, cuando corro bin/magento setup:upgrade
, recibo la siguiente excepción. Intenté establecer permisos en 777 (o 770) para la pub
carpeta en Magento 2 pero no funciona.
[Excepción]
Faltan permisos de escritura en los siguientes directorios: 'pub / static'
magento2
permissions
static-content
Thao Pham
fuente
fuente
Respuestas:
TL; DR truncar
pub/static
carpeta.Para mí, tenía una instalación anterior, que probablemente tenía algunos enlaces simbólicos y archivos antiguos que ya no existen.
El problema
checkInstallationFilePermissions
es que verifica los permisos de forma recursiva. Archivos y carpetas. Me faltaba un enlace simbólico, y eso devolvió falso en el cheque si se puede escribir.Cómo depurar:
setup/src/Magento/Setup/Model/FilePermissions.php
Ir a la línea 143 en el método
checkRecursiveDirectories
Agrega las líneas
var_dump($subDirectory);var_dump($subDirectory->isWritable());
Volver a correr
bin/magento setup:upgrade
ahora verá lo que está realmente mal y podrá solucionarlo. Personalmente elimino todo
pub/static
, este será contenido generado automáticamente, por lo que no debe preocuparse por eso.fuente
Me encontré con este error en el desarrollo debido a un enlace simbólico roto.
Creé un archivo en el
view/frontend/web
directorio de un módulo que, endeveloper
modo, se implementó en elpub/static
directorio utilizando un enlace simbólico que apuntaba al directorio del módulo donde se almacena el archivo original.En algún momento del desarrollo, eliminé el archivo de mi módulo, pero el enlace simbólico todavía existía al
pub/static
señalar un archivo que ya no existía. Espero que este también sea el caso si hubiera cambiado el nombre de uno de los archivos.Si un sitio está en
production
modo y se habin/magento setup:static-content:deploy
ejecutado, eso copia los archivos en elpub/static
directorio en lugar de crear enlaces simbólicos.Para encontrar este enlace simbólico roto, ejecuté un comando desde el shell
Eliminar el enlace simbólico roto resolvió el problema (por ejemplo, usar
find -L . -type l -exec rm {} \;
).fuente
Dentro de su directorio raíz de Magento ejecute los siguientes comandos y su problema debería desaparecer:
Trabajó para mi.
fuente
.htaccess
archivo también. Necesitas.htaccess
archivo.Debe configurar los permisos como se describe en la documentación oficial: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html
fuente
Esta es mi resolución temporal. Comento la línea 744 y 466 en
<magento_dir>/setup/src/Magento/Setup/Model/Installer.php
.Este es el código de línea:
Necesito una solución, no cambie el archivo central.
fuente
Se corrigió el permiso bin / magento denegado
chmod u + x bin / magento
fuente
Estas carpetas deben tener los permisos correctos, como se describe en: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html
Cuando elimina el contenido de la carpeta pub / static y le da permiso a la carpeta pub / static 770, el mensaje no volverá a aparecer.
fuente
Tuve el mismo problema donde no pude instalar Magento a través de la línea de comando. Simplemente crear la carpeta
pub/static
resolvió el problema.fuente
Si alguien tiene este problema en el sistema operativo Windows. Simplemente ejecute el comando en el símbolo del sistema del Administrador y funcionará de maravilla. Espero que esto ayude a alguien.
fuente
En mi caso, ejecutar el comando de actualización a través de un usuario no root o un usuario con permisos limitados estaba causando el error. Asegúrese de ejecutar el comando de actualización con un usuario con suficientes permisos.
fuente
Verifiqué muchas veces los permisos de escritura y todo estuvo bien.
fuente
Ejecute el siguiente comando para las siguientes tres direcciones IP:
fuente
no uses esto:
eliminará todos los archivos, incluso .htaccess
puedes usar esto será mejor:
después de ese uso:
fuente
simplemente elimine la carpeta pub / static de su magento2
luego despliegue el contenido estático de magento2
Al usar este proceso, mi mismo problema se resolvió.
fuente
rm -r pub/static/*
y eso debería evitar eliminar el archivo .htaccess.