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 pubcarpeta 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/staticcarpeta.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
checkInstallationFilePermissionses 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.phpIr a la línea 143 en el método
checkRecursiveDirectoriesAgrega las líneas
var_dump($subDirectory);var_dump($subDirectory->isWritable());Volver a correr
bin/magento setup:upgradeahora 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/webdirectorio de un módulo que, endevelopermodo, se implementó en elpub/staticdirectorio 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/staticseñ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
productionmodo y se habin/magento setup:static-content:deployejecutado, eso copia los archivos en elpub/staticdirectorio 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
.htaccessarchivo también. Necesitas.htaccessarchivo.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/staticresolvió 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.