„Kliknęłam aktualizuj, pasek doszedł do końca i strona zniknęła. Jest biały ekran albo napis, że wystąpił błąd krytyczny. Panel też nie wchodzi.” Ta wiadomość przychodzi do nas w różnych wersjach, ale zawsze z tym samym pytaniem na końcu: czy strona przepadła. Nie przepadła. Baza danych z tekstami, zdjęcia i motyw są na serwerze tak, jak były. Nie działa jeden element, zwykle wtyczka, która po aktualizacji nie dogaduje się z inną wtyczką albo z wersją PHP na serwerze.
WordPress ma na to wbudowany mechanizm od 2019 roku (wersja 5.2): gdy wtyczka lub motyw wywołują błąd krytyczny, system wysyła na adres administratora mail z linkiem do trybu odzyskiwania. Ten poradnik idzie tą drogą, a gdy maila nie ma, drugą, przez FTP. Obie mieszczą się w 15 minutach.
Poznasz to po tym, że
- Strona pokazuje pusty biały ekran albo zdanie „Wystąpił błąd krytyczny na tej witrynie”.
- Adres z końcówką /wp-admin też nie otwiera panelu albo otwiera ten sam komunikat.
- Chwilę wcześniej ktoś aktualizował wtyczkę, motyw, WordPressa albo hosting zmienił wersję PHP.
- Na mailu administratora jest wiadomość „Twoja witryna ma problem techniczny”.
- Strona działała rano, a po południu klient pisze, że „coś jest nie tak”.
Skąd bierze się biały ekran
PHP, w którym napisany jest WordPress, przerywa działanie w miejscu, w którym trafia na błąd, i nie wyświetla nic dalej. Nowa wersja wtyczki może używać funkcji, której nie ma w starym PHP na serwerze, albo tej samej nazwy funkcji, której używa inna wtyczka. Efekt jest taki sam: pusta strona. Od wersji 5.2 WordPress przechwytuje taki błąd, pokazuje odwiedzającym komunikat zamiast pustki, wyłącza winowajcę w trybie odzyskiwania i wysyła link.
Mail trafia na adres z Ustawienia, Ogólne. Jeśli tam wpisany jest adres poprzedniego wykonawcy, link poszedł do niego. To jedna z rzeczy, którą sprawdzamy w pierwszej kolejności przy przejmowaniu strony.
Co możesz zrobić sam w 15 minut
Jedna rzecz: wyłączyć wtyczkę, która wywróciła stronę, bez kasowania czegokolwiek. Najpierw droga przez mail, potem przez FTP.
- Sprawdź skrzynkę administratora (także spam) pod kątem wiadomości od WordPressa z tematem o problemie technicznym. W środku jest nazwa winnej wtyczki albo motywu i link ważny przez 24 godziny.
- Kliknij link. Panel otworzy się w trybie odzyskiwania, z pomarańczowym paskiem u góry. Wejdź we Wtyczki: winowajca jest oznaczony. Wyłącz go i kliknij „Zakończ tryb odzyskiwania”. Strona wraca.
- Jeśli maila nie ma: zaloguj się przez FTP (dane z panelu hostingu; hosting ma zwykle też menedżer plików w przeglądarce, który działa tak samo). Wejdź do katalogu strony, potem wp-content, potem plugins.
- Znajdź katalog wtyczki, którą aktualizowano, i zmień jego nazwę: dopisz na końcu „.off” (na przykład „contact-form-7” na „contact-form-7.off”). WordPress przestaje ją widzieć i strona wraca. Nic nie kasujesz; zmiana nazwy z powrotem przywraca wtyczkę.
- Jeśli nie wiesz, która wtyczka: zmień nazwę całego katalogu plugins na plugins.off. Strona wstanie bez żadnej wtyczki. Potem zmień nazwę z powrotem, wejdź do panelu i włączaj wtyczki po jednej, sprawdzając stronę po każdej. Ta, po której wraca biały ekran, jest winna.
- Gdy strona już działa, zrób kopię, zanim spróbujesz cokolwiek aktualizować ponownie.
Wtyczka wyłączona w ten sposób zostaje wyłączona. Jeśli była ozdobna (suwak, ikonki), strona bez niej działa i da się z tym żyć do czasu poprawki od autora. Jeśli była potrzebna (rezerwacje, sklep), trzeba ustalić, dlaczego jej nowa wersja nie działa: najczęściej za stare PHP na serwerze albo konflikt z inną wtyczką. To już jest praca na kopii roboczej, nie na żywej stronie.
Czego nie robić
Nie kasuj katalogu wtyczki przez FTP; kasowanie usuwa też jej ustawienia, a przy niektórych wtyczkach dane. Nie przywracaj całej kopii strony sprzed tygodnia z powodu jednej wtyczki: stracisz to, co doszło przez tydzień. I nie wyłączaj aktualizacji „na zawsze”, bo dzisiejszy biały ekran jest tańszy niż włamanie przez dziurę w wtyczce sprzed roku.
Pytania, które dostajemy przy tej okazji
Strona działa, ale u góry jest komunikat o trybie odzyskiwania. Co z nim zrobić?
Znaczy, że WordPress wyłączył wtyczkę tymczasowo i czeka na decyzję. Wejdź we Wtyczki, wyłącz winowajcę na stałe (albo wgraj jego poprawioną wersję) i kliknij „Zakończ tryb odzyskiwania”.
Jak sprawdzić, o który błąd chodzi?
W pliku wp-config.php w katalogu strony jest linia z WP_DEBUG. Zmiana false na true pokazuje treść błędu na stronie, z nazwą pliku i wtyczki. Po diagnozie wróć do false, bo komunikaty błędów nie są dla odwiedzających.
Biały ekran pojawił się po zmianie wersji PHP w hostingu. To ta sama sprawa?
Ta sama, tylko winna jest wtyczka albo motyw, które nie działają na nowszym PHP. Cofnięcie wersji PHP w panelu hostingu przywraca stronę na dziś, ale to odroczenie: stare PHP przestaje dostawać poprawki bezpieczeństwa.
Czy mogę włączyć automatyczne aktualizacje, żeby nie musieć tego robić?
Możesz, ale wtedy biały ekran pojawi się o czwartej rano bez nikogo przy komputerze. Automatyczne aktualizacje mają sens razem z kopią przed każdą i monitoringiem, który zauważy, że strona leży.
Jeśli to trzeci biały ekran w tym roku
Wyłączenie wtyczki to naprawa na dziś. Jeśli po każdej aktualizacji coś się sypie, strona ma pod spodem problem, którego jedna wtyczka nie wyjaśnia: stare PHP, motyw bez wsparcia, dwadzieścia wtyczek, z których połowa robi to samo. Uporządkowanie tego, przetestowanie aktualizacji na kopii roboczej i podniesienie PHP bez przestoju to aktualizacje i migracja w naszej ofercie. Jeśli wolisz, żeby ktoś doświadczony zrobił to raz, a potem aktualizował co miesiąc z kopią przed każdą zmianą, napisz na kontakt@gtg.pl: adres strony, nazwa wtyczki i co już zrobiłeś. Odpisuje człowiek, do 12 godzin.