Jūsų svetainė rodo tuščią puslapį arba eilutę „Tinklalapyje įvyko kritinė klaida.“ Abiem atvejais PHP kažkur įrašė tikslų pranešimą, kuriame nurodytas kaltas failas. Šis gidas parodo, kur jį perskaityti, kaip jį suprasti ir koks sprendimas tinka kiekvienam pranešimui.
wp-config.php įjunkite derinimo žurnalą ir iš naujo įkelkite puslapį su klaida.PHP Fatal error faile wp-content/debug.log: failo kelias nurodo kaltą įskiepį ar temą.debug.log.Tuščias puslapis beveik visada reiškia lemtingą PHP klaidą (fatal error): svetainės failas paprašė kažko neįmanomo, ir vykdymas sustojo dar nieko neparodęs. Nuo 5.2 versijos WordPress tokias klaidas perima: vietoj tuščio puslapio rodo „Tinklalapyje įvyko kritinė klaida.“ ir siunčia laišką svetainės administratoriaus adresu.
Puslapis lieka visiškai baltas keliais atvejais: senesnė WordPress versija, klaida, įvykusi prieš įsikeliant šiam apsaugos mechanizmui, konstanta WP_DISABLE_FATAL_ERROR_HANDLER, nustatyta į true, arba podėlio (cache) įskiepis, pateikiantis tuščią puslapį, kurį išsaugojo gedimo metu. Toliau aprašytas būdas tinka visais šiais atvejais.
Trys veiksmai gali palaukti, kol perskaitysite klaidą: WordPress įdiegimas iš naujo, įskiepių trynimas, senos atsarginės kopijos atkūrimas. Kiekvienas gali ištrinti nuostatas ar naujausius duomenis, o klaidos pranešimas paprastai tiksliai nurodo, kurį komponentą išjungti, nieko neprarandant.
Kai WordPress perima klaidą, jis svetainės administratoriaus adresu siunčia laišką tema „[Tinklalapio pavadinimas] Jūsų tinklalapis turi techninių problemų“. Jame nurodytas kaltas įskiepis ar tema ir yra nuoroda, atidaranti administravimo skydelį atstatymo režimu.
Prisijunkite prie svetainės per SFTP arba per hostingo teikėjo failų tvarkyklę, atidarykite šakniniame aplanke esantį wp-config.php ir eilutę define( 'WP_DEBUG', false ); pakeiskite šiomis keturiomis eilutėmis:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Jos įrašomos virš eilutės /* That's all, stop editing! Happy publishing. */. Iš naujo įkelkite puslapį su klaida, tada atidarykite wp-content/debug.log. Nustačius WP_DEBUG_DISPLAY į false, pranešimai lieka faile, o ne jūsų lankytojų matomame puslapyje.
Jei debug.log lieka tuščias arba neatsiranda, klaidą užfiksavo pats PHP: ieškokite failo error_log svetainės šakniniame aplanke arba aplanke wp-admin, arba klaidų žurnalų skilties hostingo valdymo skydelyje.
Lemtinga klaida telpa vienoje eilutėje: klaidos tipas, jos aprašymas, tada in ir visas failo kelias bei eilutės numeris. Kelias yra naudingiausia dalis: wp-content/plugins/pavadinimas/ nurodo įskiepį, wp-content/themes/pavadinimas/ temą.
| Pranešime yra | Ką tai reiškia | Sprendimas |
|---|---|---|
Call to undefined function arba Class "…" not found, kelyje wp-content/plugins/iskiepio-pavadinimas/ | Įskiepis kviečia kodą, kurio nėra: nebaigtas atnaujinimas, išjungtas įskiepis, nuo kurio jis priklauso, arba PHP versija, kurios jis nepalaiko. | Išjungti tą įskiepį, tada įdiegti jį iš naujo arba atnaujinti. |
Allowed memory size of 268435456 bytes exhausted | Scenarijus viršijo PHP leidžiamą atmintį, šiuo atveju 268 435 456 baitus, t. y. 256 MB. | Padidinti WP_MEMORY_LIMIT faile wp-config.php, neviršijant hostingo teikėjo nustatytos ribos, tada išsiaiškinti, kas naudoja tiek atminties. |
PHP Parse error: syntax error, unexpected, faile functions.php on line 42 | Sintaksės klaida faile, labai dažnai po rankinio pakeitimo temos failų rengyklėje. | Ištaisyti nurodytą eilutę arba grąžinti ankstesnę failo versiją. |
Uncaught TypeError arba Uncaught ArgumentCountError, pakeitus PHP versiją | Komponentas, parašytas senesnei PHP versijai, kurio dabartinė versija atsisako vykdyti. | Atnaujinti komponentą. Laikinai, kol jį pakeisite, hostingo valdymo skydelyje grįžti prie ankstesnės PHP versijos. |
Maximum execution time of 30 seconds exceeded | Užduotis truko ilgiau, nei leidžia PHP (max_execution_time). | Nustatyti, kokia tai užduotis (importas, atsarginė kopija, vaizdų generavimas), ir, jei ji teisėta, paprašyti hostingo teikėjo padidinti ribą. |
define( 'WP_MEMORY_LIMIT', '256M' );
Pervadinkite pranešime nurodyto įskiepio aplanką, pavyzdžiui wp-content/plugins/iskiepio-pavadinimas į iskiepio-pavadinimas.off. WordPress nebeaptinka įskiepio ir nustoja jį įkelti; jo nuostatos lieka išsaugotos duomenų bazėje, o WordPress jį išjungia, kai kitą kartą atidaromas įskiepių ekranas.
Temos atveju, pervadinus jos aplanką wp-content/themes kataloge, administravimo skydelis vėl pasiekiamas, bet lankytojai mato tuščią puslapį, kol nėra aktyvios temos. Iš karto atidarykite Išvaizda > Temos: WordPress pastebi, kad aktyvi tema neveikia, ir įjungia įdiegtą numatytąją temą.
wp plugin list --status=active
wp plugin deactivate iskiepio-pavadinimas
wp theme list
wp theme activate twentytwentyfive
Pirmoji komanda užfiksuoja, kurie įskiepiai aktyvūs, o tai naudinga prieš bet kokį masinį išjungimą. Jei pats WP-CLI sustoja ties klaida, pridėkite prie komandos --skip-plugins --skip-themes, kad jis pasileistų neįkeldamas įskiepių ir temos. Aplanko wp-content/mu-plugins įskiepiai vis tiek įkeliami; jei klaida kyla dėl vieno iš jų, pervadinkite jo failą.
Kai pranešime nenurodytas joks komponentas, wp plugin deactivate --all išjungia visus įskiepius. Jei svetainė vėl veikia, aktyvuokite juos po vieną, kaskart iš naujo įkeldami svetainę: paskutinis prieš klaidos sugrįžimą aktyvuotas įskiepis ir yra kaltininkas.
define( 'WP_DEBUG', false ); ir pašalinkite WP_DEBUG_LOG iš wp-config.php.wp-content/debug.log: jis yra iš interneto pasiekiamame aplanke, todėl jį gali perskaityti bet kas, o jame yra serverio kelių.Su Serenity by Simafri mes sukuriame jūsų profesionalią svetainę, ją talpiname, apsaugome ir nuolat atnaujiname. Jūs mums parašote, mes pasirūpiname viskuo. Domeno vardas ir profesionalus el. paštas įskaičiuoti.
Nes įvyko lemtinga PHP klaida, dažniausiai įskiepyje ar temoje. WordPress ją perima, rodo šį pranešimą ir svetainės administratoriaus adresu siunčia laišką su nuoroda į atstatymo režimą. Derinimo žurnalas pateikia klaidos detales ir kaltą failą.
Patikrinkite šlamšto aplanką ir administratoriaus el. pašto adresą, nurodytą skiltyje Nuostatos > Pagrindinės. Jei laiško nėra, faile wp-config.php įjunkite derinimo žurnalą, perskaitykite klaidą faile wp-content/debug.log, tada išjunkite kaltą komponentą, pervadindami jo aplanką per SFTP.
Įskiepių nuostatos saugomos duomenų bazėje, o ne įskiepio aplanke, todėl jos išlieka. Pervadintas įskiepis rodomas kaip išjungtas; grąžinkite pradinį aplanko pavadinimą ir vėl aktyvuokite jį įskiepių ekrane, ir jis veiks su savo nuostatomis.
Kaltas komponentas gali būti įkeliamas tik administravimo skydelyje, arba skydeliui reikia daugiau atminties. WordPress administravimo ekranams taiko WP_MAX_MEMORY_LIMIT, o viešai svetainei WP_MEMORY_LIMIT. Derinimo žurnalas abiem atvejais veikia vienodai: įkelkite administravimo puslapį su klaida, tada perskaitykite debug.log.
Simafri
Pakalbėkime apie jūsų sumanymą
Pasakykite mums keliais žodžiais, ko jums reikia: greitai jums atsakome.
Ačiū! Jūsų užklausa išsiųsta. Netrukus su jumis susisieksime.
Labiau mėgstate el. paštą? Rašykite mums adresu support@simafri.com.