Dzień wcześniej zaktualizowałem nowy moduł i działał normalnie. Teraz, gdy biegnę bin/magento setup:upgrade
, otrzymuję poniższy wyjątek. Próbowałem ustawić uprawnienia na 777 (lub 770) dla pub
folderu w Magento 2, ale to nie działa.
[Wyjątek]
Brak uprawnień do zapisu w następujących katalogach: „pub / static”
magento2
permissions
static-content
Thao Pham
źródło
źródło
Odpowiedzi:
Skrócony
pub/static
folder TL; DR .Dla mnie miałem starszą instalację, która prawdopodobnie miała pewne dowiązania symboliczne i stare pliki, które już nie istnieją.
Problem
checkInstallationFilePermissions
polega na tym, że sprawdza rekurencyjnie uprawnienia. Pliki i foldery. Miałem brakujące dowiązanie symboliczne, które zwróciło fałsz na czeku, jeśli można go zapisać.Jak debugować:
setup/src/Magento/Setup/Model/FilePermissions.php
Idź do linii 143 w metodzie
checkRecursiveDirectories
Dodaj linie
var_dump($subDirectory);var_dump($subDirectory->isWritable());
Uruchom ponownie
bin/magento setup:upgrade
teraz zobaczysz, co naprawdę jest nie tak, i możesz to naprawić. Osobiście usuwam wszystko
pub/static
, to będzie automatycznie generowana treść, więc nie powinieneś się tym martwić.źródło
Wystąpił ten błąd podczas programowania z powodu przerwanego łącza symbolicznego.
Utworzyłem plik w
view/frontend/web
katalogu modułu, który wdeveloper
trybie został wdrożony dopub/static
katalogu za pomocą dowiązania symbolicznego wskazującego katalog modułu, w którym przechowywany jest oryginalny plik.W pewnym momencie programowania usunąłem ten plik z modułu, ale nadal istniało łącze symboliczne
pub/static
wskazujące na plik, który już nie istniał. Spodziewam się, że tak też by było w przypadku zmiany nazwy jednego z plików.Jeśli witryna jest w
production
trybie i zostałabin/magento setup:static-content:deploy
uruchomiona, faktycznie kopiuje pliki dopub/static
katalogu zamiast tworzyć łącza symboliczne.Aby znaleźć ten zerwany symboliczny link, uruchomiłem polecenie z powłoki
Usunięcie zepsutego dowiązania symbolicznego rozwiązało problem (na przykład za pomocą
find -L . -type l -exec rm {} \;
).źródło
W swoim katalogu głównym Magento uruchom poniższe polecenia i twój problem powinien zniknąć:
Pracował dla mnie.
źródło
.htaccess
pliku. Potrzebujesz.htaccess
pliku.Należy skonfigurować uprawnienia zgodnie z opisem w oficjalnej dokumentacji: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html
źródło
To jest mój rozwiązany tymczasowy. Komentuję linię 744 i 466 w
<magento_dir>/setup/src/Magento/Setup/Model/Installer.php
.To jest kod linii:
Potrzebuję rozwiązania nie zmieniającego pliku podstawowego.
źródło
Naprawiono odmowę uprawnień bin / magento
chmod u + x bin / magento
źródło
Te foldery muszą mieć odpowiednie uprawnienia, jak opisano w: http://devdocs.magento.com/guides/v2.0/install-gde/install/file-system-perms.html
Gdy usuniesz zawartość folderu pub / static i nadasz folderowi pub / static pozwolenie 770, komunikat nie pojawi się ponownie.
źródło
Miałem ten sam problem, że nie mogłem zainstalować Magento za pomocą wiersza poleceń. Po prostu utworzenie folderu
pub/static
rozwiązało problem.źródło
Jeśli ktoś ma ten problem w systemie Windows. Wystarczy wykonać polecenie w wierszu polecenia administratora, a będzie działać jak urok. Mam nadzieję, że to komuś pomoże.
źródło
W moim przypadku błąd spowodował uruchomienie polecenia aktualizacji przez użytkownika innego niż root lub użytkownika z ograniczonymi uprawnieniami. Upewnij się, że uruchomiłeś polecenie aktualizacji z użytkownikiem z wystarczającymi uprawnieniami.
źródło
Wielokrotnie weryfikowałem uprawnienia do zapisu i wszystko było dobrze.
źródło
Uruchom następujące polecenie dla następujących trzech adresów IP:
źródło
nie używaj tego:
usunie wszystkie pliki, nawet .htaccess
możesz użyć tego będzie lepiej:
po tym użyciu:
źródło
po prostu usuń folder pub / static z magento2
następnie wdróż statyczną zawartość magento2
dzięki temu procesowi rozwiązałem ten sam problem.
źródło
rm -r pub/static/*
i to powinno unikać usuwania pliku .htaccess.