Czasami po przeniesieniu strony na nowy hosting możemy spotkać się z problemem ładowania obrazków do biblioteki mediów. W Internecie znaleźć można kilkadziesiąt różnych wątków opisujących podobny problem i jeszcze więcej możliwych rozwiązań. Z tego powodu znalezienie odpowiedniego rozwiązania, które naprawiło by powstałe błędy na stronie może wymagać poświęcenia mnóstwa czasu. Dlatego postanowiłem ogarnąć ten temat i zebrać wszystkie aktualne informacje w jednym wpisie, aby pomóc Wam w szybkiej identyfikacji źródła problemu i znalezienia pasującego rozwiązania.
- Jak „przykleić” wpis w kategoriach i tagach WordPress?
- Dlaczego warto ustawić paginację komentarzy w WordPress?
- Wyłączenie Gutenberga
- Naprawianie błędów HTTP podczas ładowania obrazków na stronę
- Moja recenzja Monstroid2, co nowego po aktualizacji
Pojawiający się błąd HTTP w WordPress niestety nieszczególnie informuje na czym polega problem (rys. 1), dlatego wypróbujcie każdy z podanych poniżej sposobów aż znajdziecie rozwiązanie.
Rysunek 1. Błąd HTTP podczas ładowania obrazków do biblioteki mediów
Poniżej zebrane zostały najczęściej spotykane przyczyny pojawiania się wspominanego problemu oraz metody ich rozwiązania:
Problem z hostingiem
Jeśli błąd HTTP pojawił się po raz pierwszy, to warto spróbować ponownie załadować obrazek po kilku minutach oczekiwania. Czasem mogą pojawić się jakieś przejściowe problemy na samym serwerze. Jeśli jednak problem się powtarza, warto sprawdzić rozmiar pliku, który planujecie wgrać na serwer, gdyż na hostingu może być ustawiony limit na przesyłanie dużych plików (nawet od 2 MB). Sprawdź, czy problem powtórzy się podczas próby wgrania mniejszego pliku.
Inny bardzo popularny problem z hostingiem, to brak uprawień do zapisu plików w danym katalogu. Aby go wyeliminować warto podłączyć się do hostingu za pomocą klienta FTP. Następnie przejść do katalogu wp-content/uploads/
. Tam sprawdzamy, czy w katalogu 2018
(bieżący rok), został utworzony katalog z numerem bieżącego miesiąca (sposób przechowywania załączników w WordPress zależny jest od jego konfiguracji, tutaj przedstawiona jest domyślna i najczęściej spotykana hierarchia), oraz czy prawa dostępu do tego katalogu są ustawione prawidłowo (patrz rys.2).
Rysunek 2. Zmiana uprawień katalogu
Aby WordPress mógł odczytywać i zapisywać obrazki na serwerze, katalog zapisu powinien posiadać prawa o wartości numerycznej „755”. Jeżeli wartość numeryczna ustawiona jest poniżej „755”, to tutaj może leżeć problem.
Po zapisywaniu zmian w uprawieniach, warto spróbować ponownie załadować obrazek. Jeśli problem dalej występuje, należy przejść do kolejnej metody.
Problem z oprogramowaniem
Przyczyna problemu może kryć się w Twojej przeglądarce. Czasem, z pewnych mitycznych powodów, niektóre skrypty „nie chcą” być wykonywane. To może być związane z przestarzałą wersją przeglądarki internetowej oraz użyciem dodatkowych rozszerzeń. W takim przypadku warto zainstalować dodatkową przeglądarkę i sprawdzić czy również i w niej problem będzie występował.
Kolejny popularny problem z serwerem to przestarzała wersja PHP. Chociaż większość znanych serwisów hostingowych stara się aktualizować oprogramowanie po swojej stronie w miarę regularnie, tak czasami z pewnych przyczyn nie zawsze dzieje się to na czas. Jeśli na Twoim hostingu wersja PHP jest poniżej wersji 5.2.4, to WordPress może działać niestabilnie. W takim przypadku warto zgłosić zaistniałą sytuację do administracji hostingu albo zmienić hosting.
Konflikty wtyczek
Jeśli używacie zewnętrznych wtyczek warto starać się wykonywać ich aktualizacje na bieżąco. W przeciwnym razie mogą powodować konflikty między sobą albo z coraz to nowszymi wersjami WordPress. Jeśli problem z ładowaniem obrazków pojawił się po aktualizacji systemu warto wyłączać po kolei wtyczki (rys. 3), aby wykluczyć problem z wtyczkami.
Rysunek 3. Aktualizacja i wyłączenie wtyczek
Zwiększenie limitu pamięci dla WordPress
Problem z ładowaniem obrazków może wynikać z powodu braku pamięci dla poprawnego działania WordPress. Naprawa tego problemu polega na zwiększeniu maksymalnej ilości pamięci, którą PHP może wykorzystać na serwerze na swoje potrzeby. Aby to zrobić należy przejść do pliku [wpa_config]wp-config.php[/wpa_config] i dodać do niego następującą linijkę kodu:
define( 'WP_MEMORY_LIMIT', '256M' );
Po zapisaniu zmian należy odświeżyć stronę i sprawdzić czy problem został naprawiony.
Domyślnie użycie biblioteki GD Library
WordPress działa na PHP, który wykorzystuje dwa moduły do przetwarzania obrazków. Moduły te nazywają się GD Library i Imagick. WordPress może używać dowolnego z nich, w zależności od dostępności, jednej lub drugiej biblioteki.
Ponieważ Imagick często ma problemy z pamięcią, które wywołują błąd HTTP podczas ładowania obrazków twórcy WordPress zalecają aby używać GD Library jako rozwiązanie domyślnie, gdy tylko jest to możliwe. Aby to zrobić należy wprowadzić następujące zmiany do pliku functions.php
:
functionwp_default_image_editor( $editors ) {
$gd_editor = 'WP_Image_Editor_GD';
$editors = array_diff( $editors, array( $gd_editor ) );
array_unshift( $editors, $gd_editor );
return $editors;
}
add_filter( 'wp_image_editors', 'wp_default_image_editor' );
Naprawienie pliku .htaccess
Z poprzedniej metody mogliście dowiedzieć się, jak ustawić GD Library jako bibliotekę domyślnie stosowaną przez WordPress. Jeśli chcecie albo musicie korzystać z Imagick, możecie spróbować tego rozwiązania, które ogranicza bibliotekę, do korzystania z pojedynczego wątku, co powinno wpłynąć na jej wydajność i naprawienie błędów http występujących przy okazji stosowania biblioteki Imagick.
Do pliku .htaccess
należy dodać następujący kod:
SetEnv MAGICK_THREAD_LIMIT 1
Jeżeli ten kod nie pomógł, to możecie spróbować tego:
<IfModulemod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
Albo jeszcze taki wariant:
#Exclude the file upload and WP CRON scripts from authentication <FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$"> Satisfy Any Order allow,deny Allow from all Deny from none </FilesMatch>
Podanych kodów nie należy używać jednocześnie. 😉
Podsumowanie
To są wszystkie metody, które udało mi się znaleźć w Internecie. Mam nadzieję, że przynajmniej jedna z nich pomoże Ci rozwiązać błąd HTTP podczas ładowania obrazków. Natomiast, jeżeli nie znalazłeś tutaj rozwiązania swojego problemu, to nadal jest szansa – wykorzystaj do pomocy społeczność WordPress! Z całą pewnością deweloperzy pracujący z tym popularnym systemem mają w zapasie jeszcze kilka trików. 🙂
P.S. Jeśli macie własne rozwiązanie powyższego problemu, proszę dzielić się w komentarzach pod tym artykułem.