La veille, j'ai mis à jour un nouveau module et il fonctionnait normalement. Maintenant, lorsque je cours bin/magento setup:upgrade
, je reçois l'exception ci-dessous. J'ai essayé de définir des autorisations sur 777 (ou 770) pour le pub
dossier dans Magento 2 mais cela ne fonctionne pas.
[Exception]
Autorisations d'écriture manquantes dans les répertoires suivants: 'pub / static'
magento2
permissions
static-content
Thao Pham
la source
la source
Réponses:
pub/static
Dossier tronqué TL; DR .Pour moi, j'avais une installation plus ancienne, qui avait probablement des liens symboliques et d'anciens fichiers qui n'existent plus.
Le problème
checkInstallationFilePermissions
est qu'il vérifie les autorisations de manière récursive. Fichiers et dossiers. Il me manquait un lien symbolique, et celui-ci est retourné faux sur le chèque s'il est accessible en écriture.Comment déboguer:
setup/src/Magento/Setup/Model/FilePermissions.php
Aller à la ligne 143 dans la méthode
checkRecursiveDirectories
Ajoutez les lignes
var_dump($subDirectory);var_dump($subDirectory->isWritable());
Re run
bin/magento setup:upgrade
vous verrez maintenant ce qui ne va vraiment pas et vous pouvez le réparer. Personnellement, je supprime tout
pub/static
, ce sera du contenu généré automatiquement, vous ne devriez donc pas vous en inquiéter.la source
J'ai rencontré cette erreur de développement en raison d'un lien symbolique rompu.
J'avais créé un fichier dans le
view/frontend/web
répertoire d' un module qui endeveloper
mode était déployé dans lepub/static
répertoire en utilisant un lien symbolique qui pointait vers le répertoire du module où le fichier d'origine est stocké.À un moment donné du développement, j'ai supprimé le fichier de mon module, mais le lien symbolique existait toujours pour
pub/static
pointer vers un fichier qui n'existait plus. Je pense que ce serait également le cas si j'avais renommé l'un des fichiers.Si un site est en
production
mode et a étébin/magento setup:static-content:deploy
exécuté, cela copie en fait les fichiers dans lepub/static
répertoire au lieu de créer des liens symboliques.Afin de trouver ce lien symbolique rompu, j'ai exécuté une commande à partir du shell
La suppression du lien symbolique rompu a résolu le problème (par exemple en utilisant
find -L . -type l -exec rm {} \;
).la source
Dans votre répertoire racine Magento, exécutez les commandes ci-dessous et votre problème devrait avoir disparu:
A travaillé pour moi.
la source
.htaccess
également le fichier. Vous avez besoin d'un.htaccess
fichier.Vous devez configurer les autorisations telles qu'elles sont décrites dans la documentation officielle: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html
la source
Ceci est ma résolution temporaire. Je commente les lignes 744 et 466 dans
<magento_dir>/setup/src/Magento/Setup/Model/Installer.php
.Il s'agit du code de ligne:
J'ai besoin d'une solution, ne changez pas le fichier principal.
la source
Correction de l'autorisation bin / magento refusée
chmod u + x bin / magento
la source
Ces dossiers doivent disposer des autorisations appropriées, comme décrit dans: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html
Lorsque vous supprimez le contenu du dossier pub / statique et que vous accordez au dossier pub / static l'autorisation 770, le message n'apparaîtra plus.
la source
J'ai eu le même problème où je ne pouvais pas installer Magento via la ligne de commande. La simple création du dossier a
pub/static
résolu le problème.la source
Si quelqu'un rencontre ce problème sur le système d'exploitation Windows. Exécutez simplement la commande sur une invite de commande Administrateur et cela fonctionnera comme un charme. J'espère que cela aide quelqu'un.
la source
Dans mon cas, l'exécution de la commande de mise à niveau via un utilisateur non root ou un utilisateur avec des autorisations limitées était à l'origine de l'erreur. Assurez-vous d'exécuter la commande de mise à niveau avec un utilisateur disposant des autorisations suffisantes.
la source
J'ai vérifié plusieurs fois les autorisations d'écriture et tout allait bien.
la source
Exécutez la commande suivante pour les trois adresses IP suivantes:
la source
ne l'utilisez pas:
il supprimera tous les fichiers même .htaccess
vous pouvez utiliser ce sera mieux:
après cette utilisation:
la source
il suffit de supprimer le dossier pub / statique de votre magento2
puis déployez le contenu statique de magento2
en utilisant ce processus, mon même problème a été résolu.
la source
rm -r pub/static/*
et cela devrait éviter de supprimer le fichier .htaccess.