Gdy korzystam z nowej instalacji Drupala 7.10, ustawiłem katalog do publicznego przesyłania sites/uploads
.
Kiedy dodam obraz do instancji treści, przesyłam oryginał sites/example.org/files/imagename.png
zgodnie z oczekiwaniami. Jednak inne obrazy (miniatury, średnie i duże) nie są tworzone w sites/example.org/styles/*
.
Katalog jest czytelny i zapisywalny dla użytkownika PHP5-FPM, więc nie powinno być żadnych uprawnień do wydawania zezwoleń.
Dlaczego to się dzieje? Jak mogę to naprawić?
Odpowiedzi:
Tak, odpowiedź jest w rzeczywistości nieco bardziej subtelna, niż się spodziewałem. Okazuje się, że
imagecache
zamiana D7 wymaga uwagi na twoim vgin nginx. Bez wysłania 404 do Drupala z powodu brakujących plików, obrazy nie są tworzone - czegoś, czego początkowo nie zdawałem sobie sprawy, ponieważ zakładałem, że zostały utworzone podczas przesyłania.Należy go dodać do definicji serwera i powinieneś być gotowy do wdrożenia. Oczywiście ścieżka może wymagać zmiany w konfiguracji, ale moja była.
źródło
Należy sprawdzić zarówno ścieżkę publicznego systemu plików, jak i ścieżkę tymczasową w admin / config / media / file-system
Po ustawieniu obu tych folderów z odpowiednimi uprawnieniami moje podfoldery są automatycznie tworzone po zapisaniu pliku, zapisaniu obrazu i zniknięciu komunikatu o błędzie :-)
źródło
W moim przypadku problem był spowodowany, ponieważ obrazy zostały pobrane przy użyciu protokołu https,
Dodałem następujące wiersze w bezpiecznych ustawieniach strony, aby zignorować https na ścieżkach plików.
*/files/*
Mam nadzieję, że to komuś pomoże. :)
źródło
Chociaż mówisz, że sprawdziłeś uprawnienia, wciąż od tego bym zaczął, ponieważ często miałem ten problem i prawie zawsze był to problem z uprawnieniami.
Porady ogólne: Przede wszystkim przejdź do admin / config / media / file-system i kliknij „Zapisz konfigurację”. Spowoduje to, że Drupal ponownie oceni uprawnienia do ustawionych katalogów i wyświetli komunikaty o błędach, jeśli znajdzie problem.
Po drugie: zakładam, że masz apache, dane www lub innych użytkowników, którzy są właścicielami serwera, w przeciwieństwie do użytkownika php? W systemie Linux lub Mac, sudo dla tego użytkownika. Próba napisania pliku jako odpowiedni użytkownik to najlepszy sposób, aby naprawdę upewnić się, że masz odpowiednie uprawnienia. Przejdź do strony / domena.com / pliki / i wywołaj „dane echa> nowy_plik; cat nowy_plik;” w terminalu. To sprawdzi, czy rzeczywiście możesz pisać do katalogu zapisu. Zrób to samo ze swoim tmp reż. Mam nadzieję, że ktoś inny może zasugerować, jak wykonać te same czynności w systemie takim jak Windows.
Po trzecie: Aby wykluczyć uprawnienia do katalogu, rekurencyjnie zastosuj 777 katalog plików. Możesz później przywrócić więcej rozsądnych uprawnień
Po czwarte: Upewnij się, że katalog tmp, który ma pełne uprawnienia.
Po piąte: Może być konieczne rozpoczęcie debugowania kodu, jeśli już go rozgryzłeś.
źródło
Aby uzupełnić odpowiedź Lethariona, oto metoda, której użyłem, aby utworzyć miniatury, średnie ... style obrazu.
Dokładam, że najpierw sprawdziłem wszystkie punkty wymienione powyżej, bez rezultatu.
Następnie (w systemie Linux) edytowałem /usr/local/etc/suphp.conf, aby zmienić umask na php , aby mógł tworzyć pliki ORAZ katalogi z 755 uprawnieniami (maks. Na 744).
I to ostatecznie rozwiązało problem. :)
źródło
Jestem na Drupal 8.0.3.
W moim przypadku ten folder nie jest generowany podczas instalacji.
Mówię to, kopiując ze starszej wersji instalacji Drupal.
Wyświetlane są teraz wszystkie obrazy, w tym miniatury, średnie i duże.
źródło
Sprawdź plik .htaccess w katalogu głównym i plikach. W razie potrzeby zamień na nowy plik .htaccess
źródło