Zdarza się, że pomimo najszczerszych chęci, mimo wybierania jedynie najlepszych i tylko sprawdzonych wtyczek, które i tak ograniczamy do niezbędnego minimum, oraz dokładnie przetestowanego wcześniej motywu, to i tak czasem z jakiegoś powodu rodzi się problem, który całkowicie paraliżuje naszą witrynę WordPress. Czy WordPress rzeczywiście jest tak stabilny i wolny od błędów jak zarzekają się autorzy?
Biała strona w WordPress
Czy zdarzyło ci się kiedyś, że po wejściu na swoją stronę w WordPress, jedyne co zobaczyłeś, to biały ekran? Co oznacza biała strona i jak ją naprawić?
Biała strona oznacza, że w naszej instalacji WordPress pojawił się błąd (w kodzie). Po jego wykryciu, dalsze wykonywanie skryptu jest natychmiast przerywane, a sama biała strona jest wynikiem wyłączenia wyświetlania błędów w konfiguracji interpretera kodu PHP.
Oczywiście błędy nie rodzą się same z siebie, tylko powstają np. podczas edycji plików przez niedoświadczoną (lub złośliwą) osobę. Błędy mogą pojawić się na naszej stronie po aktualizacji jakiegoś dodatku, motywu, lub mogą być spowodowane konfliktem pomiędzy nimi. Mogą też być zwyczajnym niedopatrzeniem ze strony autora, spowodowanym nieprzewidzianym zachowaniem dodatku w pewnych okolicznościach, np. w odpowiedzi na wprowadzone przez użytkownika dane, które są niezgodne z oczekiwanymi.
Identyfikacja dodatku sprawiającego problemy
Aby naprawić białą stronę konieczne będzie znalezienie winowajcy. Nie ma tutaj zbyt wielu opcji i będzie to albo szablon, albo któraś z zainstalowanych wtyczek (zakładając że nie mieszaliśmy w plikach WordPressa i wszystkie pliki są na swoich miejscach).
Oczywiście to, że nie działa strona główna nie oznacza, że nie będzie działać panel administracyjny WordPress. Warto to sprawdzić na samym początku. Jeżeli jesteśmy w stanie zalogować się do kokpitu, to w zasadzie najłatwiejszą metodą, która pozwoli nam namierzyć przyczynę problemu będzie kolejne wyłączanie dodatków do momentu, w którym strona zacznie działać. Proponuję zacząć od tych ostatnio zaktualizowanych, oraz tych które sami ostatnio modyfikowaliśmy. W tym działaniu należy uwzględnić także sam motyw i tymczasowo włączyć jeden z motywów domyślnych.
Jeżeli po wyłączeniu wszystkich dodatków strona w dalszym ciągu nie daje znaku życia, to oznacza, że problem tkwi „głębiej”.
Jeżeli nie możemy zalogować się do kokpitu WordPress, lub poprzednia wskazówka nie zadziałała
Jeżeli nie jesteśmy w stanie zalogować się do kokpitu WordPress, powyższe czynności nadal jesteśmy w stanie wykonać korzystając z klienta FTP (o tym w dalszej części artykułu). Na tym etapie, aby nie robić na stronie zbyt dużego bałaganu, łatwiej będzie spróbować wyświetlić błąd. W większości przypadków sama treść błędu wystarczy aby określić wadliwą wtyczkę i albo będziemy musieli ją zastąpić, albo poprosić jej autora o aktualizację.
Jak wspominałem wcześniej biała strona jest następstwem konfiguracji PHP, w rezultacie wyświetlanie błędów jest wyłączone, a my otrzymujemy tylko pustą, białą stronę. Na szczęście możliwe jest skonfigurowanie WordPressa tak, aby wyświetlał błędy.
O tym jak skonfigurować WordPress, aby wyświetlał błędy, i/lub logował je do pliku opisałem w ostatnim wpisie.
Uzyskując takie informacje jak kod i treść błędu niemal zawsze możemy być pewni, że jego rozwiązanie znajduje się już w Google, a jeśli nie do końca trafiamy z odpowiedziami, to publikując komunikat na forum WordPress, ktoś będzie w stanie udzielić nam wskazówek jak stronę naprawić.
Dezaktywacja pluginów przy pomocy klienta FTP
Jeżeli nie jesteśmy w stanie zalogować się do kokpitu WordPress, komunikat błędu niestety nie wiele nam mówi, a chcemy szybko postawić stronę, to możemy spróbować sztuczki, która dezaktywuje wszystkie pluginy zainstalowane w WordPress.
W tej wskazówce potrzebny będzie dostęp do klienta FTP. Aby dezaktywować wszystkie pluginy wystarczy przejść do katalogu /wp-content/
a następnie zmienić nazwę folderu plugins
na inną, najlepiej poprzez dodanie jakiegoś prostego przedrostka, np.: _plugins
.
Jeżeli strona działa, logujemy się do kokpitu i przechodzimy do wtyczek. Powinniśmy zobaczyć serię komunikatów o wyłączonych wtyczkach. Teraz możemy zmienić nazwę katalogu wtyczek na starą i zacząć kolejno aktywować pluginy, aby określić ten problematyczny.
W podobny sposób możemy także wyłączać pojedyncze wtyczki – wystarczy że zmienimy nazwę jej katalogu. Załóżmy, że chcemy wyłączyć plugin Akismet
, dodajemy więc do nazwy jego katalogu jakiś dowolny przedrostek np.: _akismet
. Teraz po przejściu do sekcji pluginów w kokpicie okaże się, że plugin został dezaktywowany.
Dezaktywacja pluginów przy pomocy phpMyAdmin
Jeszcze jednym sposobem na wyłączenie pojedynczych wtyczek w WordPress jest skorzystanie z narzędzia do zarządzania bazą danych – phpMyAdmin. Ten sposób jest nieco trudniejszy, szczególnie ze względu na samo uzyskanie dostępu do tego narzędzia. Należy także mieć na uwadze, że nieumiejętna edycja bazy danych może doprowadzić do jej uszkodzenia i w rezultacie konieczności przywrócenia kopii zapasowej. Jeżeli nie wiesz gdzie znaleźć phpMyAdmin, lub nie wiesz jak się nim posługiwać, to po prostu skorzystaj z wcześniejszej wskazówki.
Będąc zalogowanym do phpMyAdmin, kolejno wybieramy naszą bazę danych, następnie tabelę wp_options
(przedrostek może się różnić), i szukamy rekordu, którego wartość w kolumnie option_name
to active_plugins
. Zwykle jest to coś około 30 pozycji. Albo korzystamy z prostego zapytania SQL aby je odszukać:
SELECT * FROM `wp_options` WHERE option_name = 'active_plugins';
Aby je wykonać przechodzimy do zakładki SQL, wklejamy powyższą kwerendę i klikamy poniżej przycisk Wykonaj. W wyniku powinniśmy otrzymać jeden, poszukiwany przez nas rekord. Z opcji po lewej stronie rekordu wybieramy polecenie Edytuj.
Pierwsze co robimy to kopiujemy całą zawartość pola option_value
do jakiegoś pliku tekstowego, gdyż nią się będziemy teraz zajmować.
a:6:{ i:1;s:41:"better-wp-security/better-wp-security.php"; i:2;s:9:"hello.php"; i:3;s:23:"musli-css/musli-css.php"; i:4;s:24:"wordpress-seo/wp-seo.php"; i:5;s:23:"wp-smushit/wp-smush.php"; i:6;s:27:"wp-super-cache/wp-cache.php"; }
Dla uproszczenia nieco sformatowałem wartość tego pola, ale w żadnym wypadku nie wolno tego robić, no chyba, że chcemy dezaktywować wszystkie nasze pluginy. 🙂 Więc można to zrobić w ten sposób, albo wszystko usuwając.
Jak wyłączać pluginy pojedynczo? Jeżeli dokładnie przyjrzymy się danemu ciągowi, to zauważymy, że w pierwszej linijce mamy wartość równą ilości linijek znajdujących się pomiędzy klamerkami – czyli ilość aktywnych pluginów w kokpicie. Jeżeli zmienimy tylko tą wartość, to znowu wszystkie pluginy zostaną wyłączone.
Aby prawidłowo wyłączyć jeden plugin z poziomu bazy danych należy usunąć linijkę dotyczącą wybranego pluginu do wyłączenia, a następnie w pierwszej linijce wpisać liczbę pozostałych wpisów znajdujących się pomiędzy klamerkami. Przykładowo, jeżeli skasujemy 4-ty plugin (i:4), czyli wpis dotyczący WP SEO, a następnie w pierwszej linijce wpiszemy liczbę 5, to plugin WP SEO zostanie prawidłowo wyłączony w kokpicie WordPress.
a:5:{ i:1;s:41:"better-wp-security/better-wp-security.php"; i:2;s:9:"hello.php"; i:3;s:23:"musli-css/musli-css.php"; i:5;s:23:"wp-smushit/wp-smush.php"; i:6;s:27:"wp-super-cache/wp-cache.php"; }
Należy pamiętać że dezaktywacja pluginu nie usunie jego plików z serwera, ani nie skasuje jego opcji z bazy danych.
To tyle w kwestii wyłączania pluginów.
Dezaktywacja motywu przy pomocy klienta FTP
W przypadku motywów sprawa jest podobna – przechodzimy do katalogu /wp-content/themes
i zmieniamy nazwę aktywnego motywu. Oczywiście sama zmiana nazwy katalogu, lub jego skasowanie nic nam nie da dopóki nie zalogujemy się do kokpitu i nie przejdziemy do zakładki Wygląd. Jeżeli to zrobiliśmy i w katalogu themes
mamy jeden z domyślnych motywów, to WordPress półautomatycznie ustawi nam go jako nowy motyw domyślny.
Podsumowanie
I to w zasadzie wszystko czym chciałem się podzielić w tym krótkim wpisie. Jeżeli o czymś sobie jeszcze przypomnę, albo znajdę coś ciekawego to artykuł zostanie uzupełniony.
Nie tak dawno po aktualizacji wtyczki AntiSpam Bee maiłem taki problem 🙂 Dlatego zawsze róbcie kopie zapasowe bazy danych!
Witam, mam problem z białym ekranem ale mam założonego bloga na wordpress.com (nie na wordpress.org).
Nie mogę sama nic zrobić z wtyczkami, co czytam.
Bloga widzę i wszystkie swoje posty (wszystko się otwiera), jestem zalogowana jako administrator ale nie mogę napisać posta. Jedyna co działa to przycisk WP Admn i z tego miejsca coś mogę zrobić. Ale wpisując stronę wordpress.com widzę biała stronę. Nie wiem co się dzieje i gdzie szukać pomocy – nie chcę aby mi wszystko zniknęło. Dziękuję za pomoc, pozdr Monika
Moniko, napisz do supportu wordpress.com. Wcześniej radziłbym jeszcze sprawdzić w innej przeglądarce, czy problem występuje.
Na wp.com samemu niewiele można zepsuć, korzystasz tylko z tego co oni tam mają, więc może po prostu wprowadzali coś nowego i chwilowo przestało działać?
Bardzo dziękuję za pomoc!
Dzięki za ten artykuł, bez niego nie rozwiązałabym problemu białego ekranu!
A jak nie pomagają te porady, nadpisanie plików z oryginału pomoże? 🙂
Jeżeli wtyczki i motyw zostały już wykluczone, to być może, ale moim zdaniem jest to mało prawdopodobne. Musi tam być grubo namieszane ponieważ z punktu widzenia użytkownika końcowego, a nawet developera tworzącego dodatki do WP nie ma żadnej uzasadnionej przyczyny aby te pliki zmieniać czy edytować.
Chociaż nie wykluczam błędu ludzkiego i może już od samego początku nie wszystkie pliki zostały wgrane prawidłowo albo w trakcie obsługi któryś mógł zostać przez pomyłkę albo umyślnie przez osoby trzecie skasowany.
Jak możesz podaj więcej szczegółów i napisz czy faktycznie pomogło ci ponowne wgranie plików jądra.
Pozdrawiam
Stara sprawa, ale może ktoś pomoże 😉
Ogólnie wypróbowałem wszystkie sprawy powyżej i nadal mam white page of death na podstronach gdzie mam możliwość napisania nowego artykułu lub strony, z racji tego, że tworzę strony swoje, na subdomenah zauważyłem, że mam od niedawna problem tylko na KOLEJNEJ stronie opartej na WORDPRESS, którą mam postawioną na subdomenie.
w związku z tym pytanie – może to by przyczyną, że mam na subdomenie kolejnego wordpressa?
Biała strona sugeruje błąd PHP. Próbowałeś włączyć wyświetlanie błędów?
Nie działa mi to, mam darmowy hosting freehostia, może to od tego?
Subdomena raczej nie ma nic do rzeczy, chyba, że masz źle ustawione adresy WordPress/witryny. Darmowy hosting może ale nie musi powodować problemów – nie znam tego, który podałeś więc nie wykluczam. Podaj link do strony z problemem.
tak, ale nie podaje mi żadnego błedu
Piszę po raz nty i nie wiem, moze się nie dodało, nie działa mi to, w sensie mam dodawane debugowanie, ale nie wyświetla bledow, dziwne, moze to hosting darmowy – freehostia, sam nie wiem
http://blog.kepno.org.pl taka nazwa domeny, subdomeny właściwie, postawiłem sobie dodatkowo bloga, bo prócz mini serwisu 'se’ bloga miałem pierdyknąć i widzę , że pisanie artykułów i stron na : http://blog.kepno.org.pl/wp-admin/post-new.php jest niemożliwe, mam white page :/ stąd pytanie. nie miałem z tym problemów nigdy jak robiłem sobie np bloga na podfolderze np http://www.nazwadomeny.pl/blog/ natomiast jak teraz dałem subdomenę to się jak okazuje pierdzieli 😛
Jak wygląda plik .htaccess? Jak masz ustawione Ustawienia->Ogólne->Adres WordPressa (URL) i Ustawienia->Ogólne->Adres witryny (URL)?
Jak chcesz możesz mi podesłać przez formularz kontaktowy dane do logowania to zerknę.