Przejdź do treści
Wyceń stronę

napraw sam Aktualizacje

Biały ekran po aktualizacji wtyczki. Jak wrócić do działającej strony w 15 minut

WordPress od 2019 roku sam wysyła link ratunkowy na mail administratora, gdy wtyczka wywróci stronę. Jeśli maila nie ma, ta sama naprawa idzie też przez FTP.

„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.

  1. 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.
  2. 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.
  3. 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.
  4. 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ę.
  5. 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.
  6. 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.