5 modulis · 5.4
Mažiau yra daugiau: susitvarkymas ir konfliktų sprendimas
5 modulis: Temos ir įskiepiai · Skaitymo trukmė: 9 min.
Mokymosi tikslas: Po šios pamokos galėsite susitvarkyti įskiepius bei patys aptikti ir išspręsti konfliktą ar baltą puslapį.
Pagrindinės sąvokos: deaktyvavimas vs pašalinimas, neaktyvus kodas, kritinė klaida, atkūrimo veiksena (recovery mode), Tinklalapio būklė, problemų sprendimo veiksena, įskiepio aplanko pervadinimas, WP_DEBUG, WP_DEBUG_LOG, debug.log, klaidų žurnalas
Išjungimas nėra išmetimas
Skiltyje Įskiepiai galite įskiepį deaktyvuoti arba pašalinti. Skirtumas:
- Deaktyvuoti: WordPress nebeįkelia įskiepio. Tačiau failai lieka aplanke
wp-content/plugins/ir dažnai vis dar yra tiesiogiai pasiekiami per žiniatinklio serverį. Jei viename iš tų PHP failų yra spraga, ji tebėra. Įsilaužėliai skenuoja ieškodami žinomų pažeidžiamų failų, o ne aktyvių įskiepių. - Pašalinti: failai pašalinami. Kai kurie įskiepiai pašalindami taip pat sutvarko savo nustatymus ir lenteles duomenų bazėje; kiti jų nepaliečia.
Jei įskiepio nebenaudojate, pašalinkite jį. Deaktyvavimas yra skirtas tik laikinam naudojimui (kol ieškote problemos). Tas pats galioja temoms (2.4 pamoka).
Susitvarkymas: nuolatinis ratas
Kartą per ketvirtį (9.4 pamoka) peržiūrėkite savo įskiepius. Kiekvienam įskiepiui patikrinkite:
- Kam jis skirtas? Jei nebeprisimenate, išsiaiškinkite. Dažnai paaiškėja, kad įskiepis kažkada buvo įdiegtas vienam konkrečiam tikslui ir niekada nebuvo pašalintas.
- Ar jis vis dar naudojamas? Skaidrių rodymo įskiepis, kai niekur nėra skaidrių, arba formų įskiepis, kai Jūsų kontaktų puslapis naudoja kitą formą.
- Ar įmanoma be jo? Ar tai jau gali atlikti WordPress, tema ar kitas įskiepis (5.3 pamoka)?
- Ar jis vis dar prižiūrimas? Kada paskutinį kartą atnaujintas, ar jis vis dar yra įskiepių sąraše?
Pirmiausia susitvarkykite bandomojoje aplinkoje (staging) (8.3 pamoka) arba bent jau pasidarykite atsarginę kopiją, ir šalinkite po vieną įskiepį, kad žinotumėte, kas nutiko, jei kas nors suges. Atkreipkite dėmesį į trumpuosius kodus (shortcodes): jei pašalinsite įskiepį, kuris teikė [formulier id="2"], tas tekstas po to pažodžiui liks Jūsų puslapyje.
Jei kas nors sugenda: kritinė klaida
Po atnaujinimo, naujo įskiepio ar PHP atnaujinimo staiga pamatote:
Tinklalapyje įvyko kritinė klaida.arba visiškai baltą puslapį. Tai reiškia: PHP sustojo dėl lemtingos klaidos (fatal error) dar nespėjus suformuoti puslapio (1.2 pamoka). Dažniausiai taip nutinka dėl įskiepio ar temos, kuri nesutaria su kažkuo kitu: kitu įskiepiu, nauja WordPress versija ar PHP versija.
Nuo WordPress 5.2 versijos WordPress tokiu atveju atlieka du dalykus:
- išsiunčia el. laišką administratoriaus adresu, nurodydamas, kuris įskiepis ar tema sukėlė klaidą, bei specialią nuorodą;
- su ta nuoroda prisijungiate atkūrimo veiksenoje (recovery mode): Skydelis tuomet veikia, o klaidą sukėlęs įskiepis yra laikinai išjungtas, kad galėtumėte jį atnaujinti, pakeisti ar pašalinti.
Štai kodėl taip svarbu, kad reguliariai skaitytumėte administratoriaus adresu gaunamus laiškus (2.2 pamoka).
Paieška savarankiškai: žingsniai
Laiškas negautas arba atkūrimo veiksena neveikia? Štai kaip tai rasti patiems.
1. Pažiūrėkite klaidų žurnale
Klaida beveik visada yra žiniatinklio serverio arba PHP klaidų žurnale. DirectAdmin valdiklyje jį rasite savo domeno žurnaluose (logboeken). Ieškokite eilutės su PHP Fatal error ir bandymo laiku:
PHP Fatal error: Uncaught Error: Call to undefined function create_function()
in /home/gebruiker/domains/example.com/public_html/wp-content/plugins/oude-slider/slider.php:42Kelias parodo, kas yra kaltas: šiuo atveju įskiepis aplanke oude-slider. Likusi eilutės dalis paaiškina kodėl (čia: funkcija, kuri buvo pašalinta PHP 8 versijoje, 8.4 pamoka).
2. Įjunkite derinimo žurnalą (ne ekrano pranešimą)
Jei klaidų žurnale nėra nieko naudingo, faile wp-config.php (virš „stop met bewerken“) nustatykite:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );Tuomet WordPress visas klaidas užrašys į wp-content/debug.log, nerodydamas jų lankytojams. Niekada nepalikite šios nuostatos įjungtos ilgiau, nei reikia: debug.log yra aplanke, kurį žiniatinklio serveris pateikia viešai, todėl žinantys adresą gali jį perskaityti. Jame yra kelių, kartais naudotojų vardų ir kitos informacijos, kuri gali padėti įsilaužėliui. Baigę paiešką, vėl išjunkite ir pašalinkite debug.log. Arba leiskite WordPress rašyti žurnalo failą už žiniatinklio aplanko ribų, prie WP_DEBUG_LOG nurodydami kelią (pavyzdžiui, '/home/gebruiker/logs/wp-debug.log', jei Jūsų talpinimo paslaugų teikėjas tai leidžia). 7.4 pamokoje patikrinsite, ar debug.log nėra viešai pasiekiamas.
3. Įskiepio išjungimas be prieigos prie Skydelio
Jei negalite prisijungti prie Skydelio, išjunkite įtariamą įskiepį pervadindami jo aplanką per Failų tvarkyklę arba SFTP:
wp-content/plugins/oude-slider wordt wp-content/plugins/oude-slider-uitWordPress tuomet nebesuranda įskiepio ir jį išjungia. Jei nežinote, kuris įskiepis kaltas, pervadinkite visą aplanką plugins į plugins-uit: visi įskiepiai bus išjungti. Jei tuomet svetainė veikia, sukurkite naują tuščią aplanką plugins, grąžinkite įskiepius po vieną ir po kiekvieno patikrinkite, ar klaida nebegrįžta. Tas pats galioja temai: pervadinkite aktyvios temos aplanką, ir WordPress persijungs į numatytąją temą, jei tokia dar yra įdiegta (2.4 pamoka).
4. Konfliktai be lemtingos klaidos
Ne kiekviena problema yra kritinė klaida. Kartais tiesiog neveikia viena funkcija: mygtukas nieko nedaro, forma nesiunčia duomenų, redaktorius pakrauna iš dalies. Dažniausiai tai yra konfliktas tarp dviejų įskiepių arba tarp įskiepio ir temos. Tam pravartus oficialus įskiepis Health Check & Troubleshooting: problemų sprendimo veiksenoje jis išjungia visus įskiepius ir perjungia į numatytąją temą tik Jūsų sesijai, kol lankytojai ir toliau mato įprastą svetainę. Po to įjunkite juos po vieną, kol problema grįš.
Taip pat pažiūrėkite savo naršyklės konsolėje (F12): JavaScript klaidos dažnai nurodo failą, o kartu ir įskiepį.
Tinklalapio būklė
Skiltyje Įrankiai > Tinklalapio būklė WordPress pats patikrina Jūsų svetainę: pasenusią PHP versiją, neaktyvius įskiepius ir temas, trūkstamus PHP plėtinius, neveikiančią REST API, vėluojančias suplanuotas užduotis. Skirtuke Informacija pateikiami visi Jūsų diegties duomenys (versijos, keliai, PHP nustatymai). Šį skirtuką galite nukopijuoti ir pridėti, kai prašote pagalbos. Peržiūrėkite jį po kiekvieno didesnio pakeitimo.
Santrauka
- Deaktyvavus failai lieka; pašalinkite tuos įskiepius ir temas, kurių nenaudojate.
- Susitvarkykite kiekvieną ketvirtį, po vieną įskiepį, pasidarę atsarginę kopiją arba naudodami bandomąją aplinką (staging).
- Įvykus kritinei klaidai WordPress atsiunčia laišką su nuoroda į atkūrimo veikseną.
- Klaidų žurnalas arba
debug.lognurodo kaltininko kelią; baigę paiešką vėl išjunkite derinimą, nes kitaipdebug.logyra viešai pasiekiamas. - Be prieigos prie Skydelio įskiepį išjungiate pervadindami jo aplanką; konfliktus ieškokite naudodami problemų sprendimo veikseną.
Testas (quiz)
Užduotis
Užduotis A5.4: Ar Jūsų derinimo žurnalas (debug log) nėra viešai prieinamas? Įveskite savo svetainės adresą ir patvirtinkite kodu, kurį pateikia užduotis, kad tai tikrai Jūsų svetainė (TXT įrašas arba nedidelis failas). Programa bando pasiekti /wp-content/debug.log: gerai, jei toks failas neegzistuoja arba prieiga atmetama (404 ar 403 klaida). Jei programa gauna failą atgal, tai pažymima raudonai. Be to, programa suskaičiuoja, kiek skirtingų įskiepių aplankų aptinkama Jūsų pradinio puslapio HTML kode (tik informaciniais tikslais).
Užduotis D5.4: Jūsų įskiepių sąrašo sutvarkymas. Sudarykite visų savo įskiepių sąrašą (aktyvių ir neaktyvių): pavadinimas, paskirtis, ar vis dar reikalingas (taip/ne), alternatyva be įskiepio. Pasidarę atsarginę kopiją arba dirbdami bandomojoje aplinkoje, pašalinkite nebereikalingus įskiepius po vieną ir po kiekvieno pašalinimo patikrinkite, ar svetainė vis dar veikia. Įrašykite, kiek įskiepių turėjote ir kiek liko, bei pažymėkite, ar liko trumpųjų kodų (shortcodes), kuriuos reikėjo sutvarkyti.
Užduotis D5.4: Jūsų įskiepių sąrašo sutvarkymas
Šią užduotį atliekate patys; niekas jos netikrina. Pažymėkite, ką atlikote, ir pažymėkite užduotį kaip atliktą.
Skaičius po tvarkymo yra mažesnis arba lygus pradiniam, o prie kiekvieno likusio įskiepio nurodyta priežastis. Neaktyvius įskiepius reikia pašalinti: net išjungtas kodas gali turėti spragą.
Jūsų pažymėti varneliai ir pastabos lieka tik šioje naršyklėje; niekur jų nesiunčiame. Jei esate prisijungę, skiltyje Mano kursai išsaugome tik tai, kad užduotį atlikote.
Papildoma literatūra
Šiuose straipsniuose aprašomi žingsniai WebOké valdikliuose; kituose valdikliuose jie veikia panašiai.
- DirectAdmin vadovas 18.1: Mano svetainė balta arba rodo klaidą 500
- Klaida 500 arba „kritinė klaida“ Jūsų svetainėje (taip pat po WordPress atnaujinimo)
- DirectAdmin vadovas 14.6: Klaidos po PHP versijos atnaujinimo ir klaidų žurnalo radimas
- DirectAdmin vadovas 17.2: Svetainės apžvalga ir išrašai: klaidų žurnalas ir prieigos žurnalas
- Kaip derinti PHP nekeičiant php.ini?
- Derinimas WordPress sistemoje (developer.wordpress.org, anglų kalba): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
