Błąd krytyczny WordPress: instrukcja ratunkowa od pierwszego objawu

Komunikat „W witrynie wystąpił błąd krytyczny” znaczy, że wtyczka, motyw albo kod PHP zatrzymał WordPressa. Zwykle winna jest ostatnio zaktualizowana lub zainstalowana wtyczka. Najpierw szukaj e-maila od WordPressa z linkiem do trybu odzyskiwania i wyłącz w nim winną wtyczkę. Bez e-maila zrób to w menedżerze plików hostingu, zmieniając nazwę folderu wtyczki.

Autor: Sani. Sani buduje moduł TellMyShop i na co dzień pracuje z zapleczem sklepów PrestaShop.
Aktualizacja: · 6 min czytania

Trzy pytania, od których zależy cała reszta

Zanim zaczniesz cokolwiek klikać, odpowiedz sobie na trzy pytania. Odpowiedzi wskażą ci właściwą ścieżkę.

PytanieJeśli takJeśli nie
Czy błąd jest na całej stronie, także na stronie głównej i w /wp-admin?ścieżka A albo B poniżejbłąd dotyczy części strony, przejdź do sekcji o diagnozie z Claude
Czy w skrzynce administratora jest e-mail od WordPressa o problemie technicznym?ścieżka A: tryb odzyskiwaniaścieżka B: menedżer plików hostingu
Czy to sklep, w którym dziś ktoś mógł złożyć zamówienie?nie przywracaj kopii bazy bez rozmowy z hostingiemkopia zapasowa jest bezpieczniejszą opcją awaryjną

Jedna rzecz od razu, żeby nie tracić czasu: gdy cała strona pokazuje błąd krytyczny, żadna wtyczka działająca wewnątrz WordPressa nie odpowie. Dotyczy to także wtyczki TellMyShop. Pierwszą pomoc robisz wtedy przez WordPressa w trybie odzyskiwania albo przez panel hostingu.

Ścieżka A: masz e-mail z linkiem do trybu odzyskiwania

Od wersji 5.2 WordPress sam wykrywa błąd krytyczny, rozpoznaje winną wtyczkę albo motyw i wysyła na adres administratora e-mail z linkiem. Jak działa ten mechanizm, opisuje zapowiedź trybu odzyskiwania na make.wordpress.org.

  1. Otwórz e-mail i sprawdź, którą wtyczkę albo motyw WordPress wskazał jako przyczynę.
  2. Kliknij link i zaloguj się. Link działa przez ograniczony czas, więc nie odkładaj tego.
  3. W trybie odzyskiwania winna wtyczka jest wstrzymana tylko dla ciebie. Odwiedzający dalej widzą błąd.
  4. Wejdź w Wtyczki, Zainstalowane wtyczki i wyłącz wskazaną wtyczkę.
  5. Wyjdź z trybu odzyskiwania przyciskiem na górnym pasku i otwórz stronę w prywatnym oknie.

Jeśli strona działa, przyczyna jest znana. Zostaw wtyczkę wyłączoną i sprawdź u autora, czy wydał poprawkę.

Wtedy wyłączasz wtyczkę przez panel hostingu. Polskie hostingi mają w panelu menedżer plików, więc nie potrzebujesz programu FTP. Tę drogę dobrze opisuje baza wiedzy dhosting o błędzie krytycznym.

  1. Zaloguj się do panelu hostingu i otwórz menedżer plików.
  2. Wejdź do katalogu strony (często public_html albo katalog z nazwą domeny), potem do wp-content, potem do plugins.
  3. Znajdź folder wtyczki, którą ostatnio aktualizowałeś albo instalowałeś. Zmień jego nazwę, dopisując na końcu „-wylaczona”.
  4. Odśwież stronę. Jeśli działa, winowajca jest znaleziony.
  5. Jeśli nie wiesz, która wtyczka zawiniła, zmień nazwę całego folderu plugins na „plugins-wylaczone”. Zaloguj się do kokpitu i otwórz Wtyczki, żeby WordPress oznaczył je jako wyłączone. Potem przywróć nazwę folderu i włączaj wtyczki po jednej, sprawdzając stronę po każdej.

Gdy po wyłączeniu wszystkich wtyczek błąd zostaje, przyczyna leży gdzie indziej: w motywie, wersji PHP albo plikach WordPressa. Wtedy dzwonisz do hostingu.

Sklep WooCommerce: kiedy kopia zapasowa szkodzi

Wiele poradników mówi „przywróć wczorajszą kopię”. W blogu to rozsądna rada. W sklepie przywrócenie całej kopii z bazą danych kasuje wszystko, co wydarzyło się później: dzisiejsze zamówienia, płatności zapisane w sklepie, nowe konta klientów i zmiany stanów magazynowych.

Dlatego w sklepie kolejność jest inna. Najpierw wyłącz winną wtyczkę ścieżką A albo B. Jeśli kopia jest konieczna, poproś hosting o przywrócenie samych plików, bez bazy danych. Najczęściej to wystarcza, bo błąd krytyczny siedzi w kodzie wtyczki, a zamówienia w bazie.

Dla osoby, która opiekuje się stroną

Jeśli e-maile od WordPressa nie docierają, adres odbiorcy można ustawić w wp-config.php stałą RECOVERY_MODE_EMAIL. Szczegóły błędu zapisuje dziennik debug.log, gdy w wp-config.php włączone są WP_DEBUG i WP_DEBUG_LOG, a WP_DEBUG_DISPLAY jest wyłączone. Opis ustawień jest w dokumentacji debugowania WordPressa, a lista typowych przyczyn w opisie częstych błędów WordPressa. W sklepie WooCommerce błędy krytyczne trafiają też do dzienników WooCommerce o nazwie fatal-errors.

Kiedy Claude pomoże, a kiedy nie

Claude łączy się ze stroną przez wtyczkę TellMyShop dla WordPress i WooCommerce, która działa wewnątrz WordPressa. Gdy cała strona leży, połączenia nie będzie. Pomaga w dwóch innych sytuacjach: gdy błąd krytyczny pokazuje się tylko w części strony, na przykład przy zamówieniu albo na jednej podstronie, i po naprawie, gdy trzeba ustalić, co właściwie się stało.

Claude czyta wtedy dzienniki błędów: dziennik PHP serwera, dzienniki fatal-errors WooCommerce i debug.log, jeśli opiekun strony go włączył. Grupuje powtarzające się komunikaty i przy każdym wskazuje wtyczkę albo motyw, z którego pochodzi. Do tego dochodzi kondycja witryny, czyli wersja PHP, oczekujące aktualizacje i wyświetlanie błędów odwiedzającym, oraz lista wtyczek z wersjami i wymaganiami. Wszystko to działa w darmowym Audycie, bo to sam odczyt.

Ty

Klienci piszą, że przy zamówieniu wyskakuje błąd krytyczny. Strona główna działa. Co się dzieje?

Claude

W dziennikach z ostatnich 2 dni jest jeden błąd krytyczny, 37 wystąpień. Pochodzi z wtyczki Przykładowe Raty i pojawia się na stronie zamówienia. Lista wtyczek: Przykładowe Raty 3.0 wymaga PHP 8.2, a serwer ma PHP 8.1.

Claude

Dwie drogi: poprosić hosting o PHP 8.2 albo wyłączyć wtyczkę. Wyłączenie usunie raty z koszyka, ale pozostałe płatności zadziałają. Podgląd wyłączenia:

było: Przykładowe Raty: włączona

będzie: Przykładowe Raty: wyłączona

Ty

Wyłącz, a z hostingiem porozmawiam rano.

Claude

Wyłączone. Strona główna odpowiada poprawnie. Zmianę cofniesz z historii zmian.

Ilustracja: produkty, liczby i odpowiedzi są przykładowe.

Wyłączenie wtyczki to prace techniczne. Claude robi je tylko przez osobny, czasowy konektor serwisowy, z którego korzysta osoba, która opiekuje się stroną. Przed zmianą pokazuje podgląd i ostrzega, gdy wyłączasz WooCommerce, bramkę płatności, wysyłkę albo wtyczkę bezpieczeństwa. Po zmianie sprawdza stronę główną i wycofuje zmianę od razu, jeśli strona przestała działać.

W rozmowie wystarczy też poprosić o poranny przegląd. Claude zbiera wtedy nowe błędy z dzienników, zmiany z ostatniego dnia i adresy z błędem 404.

Strona awaryjna TellMyShop: do czego służy

W płatnej wersji wtyczki, w zakładce Prace techniczne, możesz wcześniej wygenerować klucz awaryjny. Darmowy Audyt tej strony nie ma, bo niczego nie zmienia. Wtyczka zakłada wtedy stronę awaryjną pod losowym adresem. Działa ona bez WordPressa i bez bazy danych, więc otworzysz ją nawet przy błędzie krytycznym.

Jej zakres jest wąski. Przywraca wyłącznie pliki zmienione przez Claude'a przez konektor serwisowy, na przykład pliki motywu, i blokuje prace techniczne, dopóki nie zdejmiesz blokady w panelu. Aktualizacji i instalacji wtyczek nie cofa, zmian w bazie danych nie cofa i nie przywraca kopii całej strony. Gdy błąd krytyczny przyszedł z aktualizacji, idziesz ścieżką A albo B.

Kiedy oddać sprawę hostingowi

Zadzwoń do hostingu, gdy błąd zostaje po wyłączeniu wszystkich wtyczek, gdy nie masz dostępu do panelu hostingu albo gdy dzienniki mówią o braku pamięci lub wersji PHP. Hosting widzi dzienniki serwera, zmienia wersję PHP i przywraca kopie zapasowe. Wtyczka TellMyShop nie naprawia serwera i nie robi kopii zapasowych całej strony.

Jeśli błąd pojawił się zaraz po kliknięciu Aktualizuj, przeczytaj też, co zrobić, gdy WordPress po aktualizacji nie działa. O tym, jak Claude czyta dzienniki i kondycję strony, przeczytasz na stronie TellMyShop dla WordPress i WooCommerce, a licencję porównasz w cenniku. Więcej poradników jest na blogu.

Pytania i odpowiedzi

Co oznacza komunikat „W witrynie wystąpił błąd krytyczny”?

Kod PHP jednej z wtyczek, motywu albo samego WordPressa zatrzymał się z błędem i WordPress nie mógł zbudować strony. Najczęściej to świeżo zaktualizowana albo zainstalowana wtyczka, rzadziej motyw, zbyt stara wersja PHP albo brak pamięci na serwerze.

Jak wejść do kokpitu, gdy /wp-admin pokazuje błąd krytyczny?

Użyj linku z e-maila, który WordPress wysyła na adres administratora. Link otwiera tryb odzyskiwania, w którym winna wtyczka jest wstrzymana tylko dla ciebie i możesz ją wyłączyć. Bez e-maila wyłącz wtyczkę w menedżerze plików hostingu, zmieniając nazwę jej folderu.

Dlaczego nie dostałem e-maila z trybem odzyskiwania?

Najczęściej e-mail poszedł na stary adres administratora z Ustawień, Ogólne, trafił do spamu albo serwer w ogóle nie wysyła poczty. Wtedy zostaje droga przez menedżer plików hostingu. Gdy strona wróci, sprawdź adres administratora i wysyłkę poczty, żeby następnym razem link dotarł.

Czy błąd krytyczny oznacza, że ktoś włamał się na stronę?

Zwykle nie. W większości przypadków to konflikt wtyczek albo niezgodność wersji po aktualizacji. Jeśli jednak nikt niczego nie zmieniał, a w plikach pojawiły się nieznane wtyczki albo pliki, poproś hosting albo specjalistę od bezpieczeństwa o sprawdzenie strony.

Czy przy sklepie WooCommerce mogę po prostu przywrócić wczorajszą kopię?

Ostrożnie. Przywrócenie całej kopii z bazą danych usuwa wszystko, co wydarzyło się po jej wykonaniu, także dzisiejsze zamówienia i nowe konta klientów. Najpierw spróbuj wyłączyć winną wtyczkę. Jeśli kopia jest konieczna, poproś hosting o przywrócenie samych plików bez bazy.

WordPress jest znakiem towarowym WordPress Foundation. WooCommerce jest znakiem towarowym Automattic Inc. Claude jest znakiem towarowym Anthropic. TellMyShop nie jest powiązany z żadnym z tych podmiotów.

TellMyShop dla WordPress i WooCommerce

Claude czyta twoją stronę, pokazuje każdą zmianę przed zapisem i zapisuje dopiero po twoim „tak”. Każdą zmianę cofniesz jednym poleceniem. Działa też z darmowym Claude.

Przeczytaj też