Am Tag zuvor habe ich ein neues Modul aktualisiert und es funktionierte normal. Wenn ich jetzt renne bin/magento setup:upgrade
, erhalte ich die folgende Ausnahme. Ich habe versucht, die Berechtigungen für den pub
Ordner in Magento 2 auf 777 (oder 770) zu setzen, aber es funktioniert nicht.
[Ausnahme]
Fehlende Schreibberechtigungen für die folgenden Verzeichnisse: 'pub / static'
magento2
permissions
static-content
Thao Pham
quelle
quelle
Antworten:
TL; DR
pub/static
Ordner kürzen.Für mich hatte ich eine ältere Installation, die wahrscheinlich einige Symlinks und alte Dateien hatte, die nicht mehr existieren.
Das Problem
checkInstallationFilePermissions
ist, dass die Berechtigungen rekursiv überprüft werden. Daten und Ordner. Ich hatte einen fehlenden Symlink und dieser gab bei der Überprüfung, ob er beschreibbar ist, den Wert false zurück.Wie man debuggt:
setup/src/Magento/Setup/Model/FilePermissions.php
Springe zu Zeile 143 in der Methode
checkRecursiveDirectories
Fügen Sie die Zeilen hinzu
var_dump($subDirectory);var_dump($subDirectory->isWritable());
Wieder laufen
bin/magento setup:upgrade
Jetzt werden Sie sehen, was wirklich falsch ist, und Sie können es beheben. Persönlich entferne ich alles in
pub/static
, dies werden automatisch generierte Inhalte, so dass Sie sich darüber keine Sorgen machen sollten.quelle
Ich bin auf diesen Fehler in der Entwicklung gestoßen, weil eine symbolische Verbindung unterbrochen wurde.
Ich hatte eine Datei im
view/frontend/web
Verzeichnis eines Moduls erstellt, die imdeveloper
Moduspub/static
mithilfe eines symbolischen Links auf das Verzeichnis des Moduls verteilt wurde, in dem die ursprüngliche Datei gespeichert ist.Irgendwann in der Entwicklung habe ich die Datei aus meinem Modul entfernt, aber der symbolische Link bestand immer noch darin
pub/static
, auf eine Datei zu verweisen, die nicht mehr vorhanden war. Ich gehe davon aus, dass dies auch der Fall wäre, wenn ich eine der Dateien umbenannt hätte.Wenn sich eine Site im
production
Modus befindet undbin/magento setup:static-content:deploy
ausgeführt wurde, werden die Dateien tatsächlich in daspub/static
Verzeichnis kopiert, anstatt symbolische Links zu erstellen.Um diese unterbrochene symbolische Verbindung zu finden, habe ich einen Befehl aus der Shell ausgeführt
Das Entfernen des defekten symbolischen Links löste das Problem (zum Beispiel mit
find -L . -type l -exec rm {} \;
).quelle
Führen Sie in Ihrem Magento-Stammverzeichnis die folgenden Befehle aus, und Ihr Problem sollte behoben sein:
Hat für mich gearbeitet.
quelle
.htaccess
Datei gelöscht . Sie benötigen eine.htaccess
Datei.Richten Sie die Berechtigungen wie in der offiziellen Dokumentation beschrieben ein: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html
quelle
Dies ist meine vorübergehende Lösung. Ich kommentiere die Zeilen 744 und 466 in
<magento_dir>/setup/src/Magento/Setup/Model/Installer.php
.Dies ist der Zeilencode:
Ich brauche eine Lösung, ändere nicht die Kerndatei.
quelle
Fix bin / magento-Berechtigung verweigert
chmod u + x bin / magento
quelle
Diese Ordner müssen über die richtigen Berechtigungen verfügen, wie unter http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html beschrieben
Wenn Sie den Inhalt des Ordners pub / static entfernen und dem Ordner pub / static die Berechtigung 770 erteilen, wird die Nachricht nicht mehr angezeigt.
quelle
Ich hatte das gleiche Problem, bei dem ich Magento nicht über die Kommandozeile installieren konnte.
pub/static
Das Problem wurde durch einfaches Erstellen des Ordners behoben.quelle
Wenn jemand dieses Problem unter Windows OS hat. Führen Sie den Befehl einfach an einer Administrator-Eingabeaufforderung aus und er funktioniert wie ein Zauber. Hoffe das hilft jemandem.
quelle
In meinem Fall verursachte das Ausführen des Upgrade-Befehls durch einen Benutzer ohne Rootberechtigung oder einen Benutzer mit eingeschränkten Berechtigungen den Fehler. Stellen Sie sicher, dass Sie den Upgrade-Befehl mit einem Benutzer ausführen, der über ausreichende Berechtigungen verfügt.
quelle
Ich habe viele Male die Schreibrechte überprüft und alles war gut.
quelle
Führen Sie den folgenden Befehl für die folgenden drei IP-Adressen aus:
quelle
benutze das nicht:
Es werden alle Dateien entfernt, auch .htaccess
Sie können dies besser sein:
danach verwenden:
quelle
entferne einfach den pub / static ordner von deinem magento2
dann statischen inhalt von magento2 bereitstellen
Mit diesem Verfahren konnte ich das gleiche Problem lösen.
quelle
rm -r pub/static/*
und das sollte das Entfernen der .htaccess-Datei vermeiden.