Style obrazu zwracają Odmowa dostępu

22

Korzystam z modułu Wstaw, aby umożliwić użytkownikom wstawianie obrazów o określonym stylu obrazu na stronie. Po aktualizacji do Drupal 7.20 obrazy nie są przechowywane w files/stylesfolderach, a adres URL obrazu zwraca błąd 403 (odmowa dostępu). Sprawdziłem uprawnienia do folderu i wszystkie są ustawione na 777.

Evan Johnson
źródło
Zainstalowałem również moduł media_flickr, ale uważam, że moje style obrazu działały po instalacji. Mogę się mylić.
Evan Johnson

Odpowiedzi:

32

Zawsze zaleca się przeczytanie informacji o wydaniu nowej wersji przed aktualizacją, aby upewnić się, że aktualizacja nie uszkodzi niektórych obecnych funkcji.

Informacje o wydaniu Drupala 7.20 wspominają:

Poprawki bezpieczeństwa w tej wersji zmieniają wszystkie pochodne adresy URL obrazów generowane przez Drupal, aby dołączały token jako ciąg zapytania. (Na przykład linki, które wcześniej wskazywały adres URL, taki jak http://example.com/sites/default/files/styles/thumbnail/public/field/image/example.png, będą teraz wskazywać na adres URL taki jak http: / /example.com/sites/default/files/styles/thumbnail/public/field/image/example.png?itok=zD_VaCaD .)

Możesz dodać następujący wiersz, aby settings.phpobrazy w witrynie działały:

$conf['image_allow_insecure_derivatives'] = TRUE;

ale byłoby to tak dobre, jak aktualizacja rdzenia i nieużywanie aktualizacji ;-)

Kilka przydatnych linków ze strony:

AKTUALIZACJA:

Z informacji o wersji Drupal 7.21 aktualizacja zawiera poprawki niezgodności wprowadzone tylko w wersji bezpieczeństwa Drupal 7.20. Dlatego zaleca się aktualizację do najnowszej wersji, tj. 7.21, aby użyć poprawek zabezpieczeń w wersji 7.20.

AjitS
źródło
2
doh! tak, czytanie informacji o wydaniu jest dobre. Mam zły nawyk po prostu wpisywania „drush up drupal”. Dziękuję Ci!!!
Evan Johnson
łatka # 1923554 zadziałała dla mojego problemu
rem
@ rémy zobacz edycję.
AjitS
nie chcę zezwalać na niepewne instrumenty pochodne. dziwne jest to, że kiedy próbuję utworzyć obraz z poziomu stylu obrazu, daje mi on adres URL i token bezpieczeństwa, ale nadal drukuje odmowę dostępu. jakieś pomysły?
Alex
3
Ten problem będzie również występował, jeśli w dowolnym miejscu w kodzie wywoływanym przez image_style_path () w celu wygenerowania ścieżki do obrazu, należy go zmienić na image_style_url (), aby poprawnie wygenerować token.
masterchief,
3

Warto też przekonać się, że po aktualizacji i wyczyszczeniu pamięci podręcznej moje katalogi w stylu obrazu nie miały już ustawionych prawidłowych uprawnień.

Zrootują style / [twój styl] i style / [twój styl] / public powinny mieć 755, aby wszystko ładowało się poprawnie.

Zmiana ich wszystkich sprawiła, że ​​obrazy znów wyglądały poprawnie!

shaneonabike
źródło
1

Napraw swój system plików: / admin / config / media / file-system

Oto moje ustawienia:

Skonfiguruj ścieżkę systemu publicznego : sites / default / files

Prywatna ścieżka do systemu plików jest pusta.

Katalog tymczasowy: / tmp

Domyślna metoda pobierania (wybrana) Publiczne pliki lokalne obsługiwane przez serwer WWW.

Fahim A.
źródło
1

Wykonanie tej edycji NIE naprawiło problemu i spowodowało błędy:

linia 775 modułów / image / image.admin.inc potrzebuje poprawki ...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);

(ponieważ moja reputacja jest niska, nie mogę jeszcze komentować tej oddzielnej odpowiedzi)

Zaimplementowałem tę drogę wstecz i naprawiłem wiele rzeczy, gdy pojawił się ten problem:

$conf['image_allow_insecure_derivatives'] = TRUE;

Zaimplementowałem również zmianę wszystkich +FollowSymLinks na, +SymLinksIfOwnerMatchale nadal nie jestem w stanie uzyskać podglądu stylów obrazu, aby działał poprawnie.

Następną i ostatnią opcją jest zmiana uprawnień użytkownika wielkości serwera, ack. Naprawię to albo wszystko zepsuję.

deanflory
źródło
0

linia 775 modułów / image / image.admin.inc potrzebuje poprawki ...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);
Michael Hurley
źródło
4
Kocięta umrą, jeśli zostanie użyte. (Nigdy nie rąbaj rdzenia).
stefgosselin