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ę.
| Pytanie | Jeśli tak | Jeś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żej | błą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 hostingiem | kopia 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.
- Otwórz e-mail i sprawdź, którą wtyczkę albo motyw WordPress wskazał jako przyczynę.
- Kliknij link i zaloguj się. Link działa przez ograniczony czas, więc nie odkładaj tego.
- W trybie odzyskiwania winna wtyczka jest wstrzymana tylko dla ciebie. Odwiedzający dalej widzą błąd.
- Wejdź w Wtyczki, Zainstalowane wtyczki i wyłącz wskazaną wtyczkę.
- 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ę.
Ścieżka B: e-maila nie ma albo link wygasł
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.
- Zaloguj się do panelu hostingu i otwórz menedżer plików.
- Wejdź do katalogu strony (często public_html albo katalog z nazwą domeny), potem do wp-content, potem do plugins.
- Znajdź folder wtyczki, którą ostatnio aktualizowałeś albo instalowałeś. Zmień jego nazwę, dopisując na końcu „-wylaczona”.
- Odśwież stronę. Jeśli działa, winowajca jest znaleziony.
- 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.
Klienci piszą, że przy zamówieniu wyskakuje błąd krytyczny. Strona główna działa. Co się dzieje?
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.
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
Wyłącz, a z hostingiem porozmawiam rano.
Wyłączone. Strona główna odpowiada poprawnie. Zmianę cofniesz z historii zmian.
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.