5 modulis · 5.4
Mažiau yra daugiau: tvarkymas ir konfliktų sprendimas
5 modulis: Temos ir įskiepiai · Skaitymo trukmė: 9 min.
Mokymosi tikslas: po šios pamokos galėsite sutvarkyti įskiepius ir patys surasti bei išspręsti konfliktą ar baltą puslapį.
Pagrindinės sąvokos: išjungimas ir pašalinimas, neaktyvus kodas, kritinė klaida, atkūrimo režimas (recovery mode), Tinklalapio būklė, trikčių šalinimo režimas, įskiepio aplanko pervadinimas, WP_DEBUG, WP_DEBUG_LOG, debug.log, klaidų žurnalas
Išjungti nereiškia išmesti
Skiltyje „Įskiepiai“ įskiepį galite išjungti arba pašalinti. Skirtumas yra toks:
- Išjungti: WordPress nebeįkelia įskiepio. Tačiau jo failai lieka aplanke
wp-content/plugins/ir dažnai juos vis dar galima tiesiogiai pasiekti per žiniatinklio serverį. Jei atskirame to įskiepio PHP faile yra spraga, ji niekur nedingsta. Įsilaužėliai ieško žinomų pažeidžiamų failų, o ne aktyvių įskiepių. - Pašalinti: failai ištrinami. Kai kurie įskiepiai šalinami taip pat išvalo savo nustatymus ir lenteles duomenų bazėje, kiti juos palieka.
Jei įskiepio nebenaudojate, pašalinkite jį. Išjungti verta tik trumpam (kai ieškote problemos priežasties). Tas pats galioja ir temoms (pamoka 2.4).
Tvarkymas: reguliari peržiūra
Kartą per ketvirtį (pamoka 9.4) peržiūrėkite savo įskiepius. Kiekvienam įskiepiui:
- Kam jis skirtas? Jei nebeprisimenate, išsiaiškinkite. Dažnai paaiškėja, kad įskiepis kažkada buvo įdiegtas vienam tikslui ir taip ir nepašalintas.
- Ar jis dar naudojamas? Pavyzdžiui, skaidrių įskiepis, nors svetainėje nėra nė vienos skaidrių juostos, arba formų įskiepis, nors Jūsų kontaktų puslapyje naudojama kita forma.
- Ar galima apsieiti be jo? Galbūt tai jau moka WordPress, tema ar kitas įskiepis (pamoka 5.3)?
- Ar jis dar prižiūrimas? Kada atnaujintas paskutinį kartą, ar dar yra įskiepių kataloge?
Tvarkykite pirmiausia bandomojoje aplinkoje (staging) (pamoka 8.3) 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 (shortcode): jei pašalinsite įskiepį, kuris pateikė [forma id="2"], po to tas tekstas bus pažodžiui rodomas Jūsų puslapyje.
Kai kas nors nepavyksta: kritinė klaida
Po atnaujinimo, naujo įskiepio ar PHP atnaujinimo staiga matote:
Šioje svetainėje įvyko kritinė klaida.arba visiškai baltą puslapį. Tai reiškia, kad PHP sustojo dėl lemtingos klaidos (fatal error) dar prieš sukuriant puslapį (pamoka 1.2). Dažniausiai taip nutinka dėl įskiepio ar temos, kuri nesuderinama su kuo nors kitu: kitu įskiepiu, nauja WordPress versija arba PHP versija.
Nuo WordPress 5.2 versijos WordPress tokiu atveju atlieka du dalykus:
- siunčia el. laišką administratoriaus adresu, kuriame nurodoma, kuris įskiepis ar tema sukėlė klaidą, ir pateikiama speciali nuoroda;
- su ta nuoroda prisijungiate atkūrimo režimu (recovery mode): administravimas tada veikia, o klaidą sukėlęs įskiepis laikinai išjungtas, kad galėtumėte jį atnaujinti, pakeisti arba pašalinti.
Todėl taip svarbu, kad administratoriaus adresas būtų tas, kurį Jūs iš tikrųjų skaitote (pamoka 2.2).
Paieška patiems: žingsniai
Laiškas negautas arba atkūrimo režimas neveikia? Štai kaip priežastį galite rasti patys.
1. Peržiūrėkite klaidų žurnalą
Klaida beveik visada būna įrašyta žiniatinklio serverio arba PHP klaidų žurnale. DirectAdmin jį rasite prie savo domeno žurnalų. Ieškokite eilutės su PHP Fatal error ir Jūsų bandymo laiku:
PHP Fatal error: Uncaught Error: Call to undefined function create_function()
in /home/naudotojas/domains/example.com/public_html/wp-content/plugins/senas-slankiklis/slider.php:42Kelias parodo kaltininką: šiuo atveju tai įskiepis aplanke senas-slankiklis. Likusi eilutės dalis paaiškina priežastį (čia: funkcija, kuri PHP 8 versijoje buvo pašalinta, pamoka 8.4).
2. Įjunkite derinimo žurnalą (ne pranešimus ekrane)
Jei klaidų žurnale nieko naudingo nėra, faile wp-config.php (virš eilutės „That's all, stop editing!“) įrašykite:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );Tada WordPress visas klaidas rašys į wp-content/debug.log, nerodydamas jų lankytojams. Niekada nepalikite to įjungto ilgiau nei būtina: debug.log yra aplanke, kurį pateikia žiniatinklio serveris, todėl kiekvienas, žinantis adresą, gali jį perskaityti. Jame yra keliai, kartais naudotojų vardai ir kita informacija, padedanti įsilaužėliui. Baigę paiešką vėl tai išjunkite ir pašalinkite debug.log. Arba nurodykite WordPress rašyti žurnalo failą už žiniatinklio aplanko ribų, prie WP_DEBUG_LOG įrašydami kelią (pavyzdžiui, '/home/naudotojas/logs/wp-debug.log', jei Jūsų talpinimo (hostingo) paslaugų teikėjas tai leidžia). Pamokoje 7.4 patikrinsite, ar debug.log nėra viešai prieinamas.
3. Įskiepio išjungimas be administravimo
Jei negalite patekti į administravimą, įtariamą įskiepį išjunkite pervadindami jo aplanką per Failų tvarkyklę arba SFTP:
wp-content/plugins/senas-slankiklis tampa wp-content/plugins/senas-slankiklis-isjungtasTada WordPress neberanda įskiepio ir jį išjungia. Jei nežinote, kuris įskiepis kaltas, pervadinkite visą aplanką plugins į plugins-isjungti: išsijungs visi įskiepiai. Jei svetainė tada veikia, sukurkite naują tuščią aplanką plugins, grąžinkite įskiepius po vieną ir po kiekvieno patikrinkite, ar klaida nepasikartoja. Su tema elkitės taip pat: pervadinkite aktyvios temos aplanką ir WordPress grįš prie numatytosios temos, jei ji dar yra įdiegta (pamoka 2.4).
4. Konfliktai be lemtingos klaidos
Ne kiekviena problema yra kritinė klaida. Kartais neveikia tik viena funkcija: mygtukas nieko nedaro, forma neišsiunčiama, redaktorius įsikelia tik iš dalies. Tada dažnai kalta dviejų įskiepių arba įskiepio ir temos nesuderinamumas. Tokiems atvejams praverčia oficialus įskiepis Health Check & Troubleshooting: trikčių šalinimo režimu jis tik Jūsų sesijai išjungia visus įskiepius ir perjungia į numatytąją temą, o lankytojai ir toliau mato įprastą svetainę. Tada įskiepius įjungiate po vieną, kol problema vėl pasirodo.
Taip pat pažiūrėkite į savo naršyklės konsolę (F12): JavaScript klaidose dažnai nurodomas failas, o kartu ir įskiepis.
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. Kortelėje Informacija pateikti visi Jūsų diegimo duomenys (versijos, keliai, PHP nustatymai). Šią kortelę galite nukopijuoti ir pridėti, kai prašote pagalbos. Po kiekvieno didesnio pakeitimo trumpai čia užsukite.
Santrauka
- Išjungus įskiepį jo failai lieka; nenaudojamus įskiepius ir temas pašalinkite.
- Tvarkykite kas ketvirtį, po vieną įskiepį, pasidarę atsarginę kopiją arba bandomojoje aplinkoje (staging).
- Įvykus kritinei klaidai WordPress atsiunčia laišką su nuoroda į atkūrimo režimą.
- Klaidų žurnale arba
debug.lognurodomas kaltininko kelias; baigę paiešką derinimą išjunkite, nes kitaipdebug.logbus viešai prieinamas. - Be administravimo įskiepį išjungsite pervadinę jo aplanką; konfliktų ieškokite trikčių šalinimo režimu.
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 kodu, kurį Jums pateiks užduotis, įrodykite, kad tai Jūsų svetainė (TXT įrašu arba nedideliu failu). Programa užklausia /wp-content/debug.log: gerai, jei toks failas neegzistuoja arba prieiga atmetama (404 arba 403). Jei programa gauna failą, rezultatas raudonas. Be to, programa suskaičiuoja, kiek skirtingų įskiepių aplankų minima Jūsų pradinio puslapio HTML (tik informacijai).
Užduotis D5.4: Jūsų įskiepių sąrašo sutvarkymas. Sudarykite visų savo įskiepių (aktyvių ir neaktyvių) sąrašą: pavadinimas, paskirtis, ar dar reikalingas (taip/ne), alternatyva be įskiepio. Pasidarę atsarginę kopiją arba bandomojoje aplinkoje (staging) 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, ir pažymėkite, ar liko trumpųjų kodų (shortcode), kuriuos teko išvalyti.
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šyti žingsniai WebOké valdymo skyduose; kituose skyduose jie atliekami 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ų k.): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
- WordPress įskiepių pasirinkimas, vertinimas ir tvarkymas
