Moodul 5 · 5.4
Vähem on rohkem: korrastamine ja konfliktide lahendamine
Moodul 5: Teemad ja pluginad · Lugemisaeg: 9 minutit
Õpieesmärk: pärast seda õppetundi oskad pluginaid korrastada ning konflikti või valge lehe probleemi ise üles leida ja lahendada.
Põhimõisted: inaktiveerimine vs kustutamine, inaktiivne kood, kriitiline viga, taastamisrežiim (recovery mode), Saidi tervis, probleemide lahendamise režiim, pluginakausta ümbernimetamine, WP_DEBUG, WP_DEBUG_LOG, debug.log, veade logi
Väljalülitamine ei ole äraviskamine
Pluginate lehel saad plugina inaktiveerida või kustutada. Vahe on järgmine:
- Inaktiveerimine: WordPress ei laadi plugina enam. Kuid failid jäävad kausta
wp-content/plugins/alles ja on sageli ikka veebiserveri kaudu otse kättesaadavad. Kui selle plugina mõnes üksikus PHP-failis on turvaauk, siis see auk on endiselt olemas. Sissemurdjad skaneerivad teadaolevalt haavatavaid faile, mitte aktiivseid pluginaid. - Kustutamine: failid kaovad. Mõni plugin koristab kustutamisel ära ka oma seaded ja tabelid andmebaasis, teised jätavad need alles.
Kui sa pluginat enam ei kasuta, kustuta see. Inaktiveerimine on mõeldud ainult ajutiseks (probleemi otsimise ajaks). Sama kehtib ka teemade kohta (õppetund 2.4).
Korrastamine: kindel ring
Käi kord kvartalis (õppetund 9.4) oma pluginad läbi. Iga plugina kohta:
- Milleks see on? Kui sa ei mäleta, uuri järele. Tihtipeale selgub, et plugin paigaldati kunagi ühe asja jaoks ja seda pole kunagi eemaldatud.
- Kas seda veel kasutatakse? Sliiderplugin, kuigi kusagil pole sliiderit, vormiplugin, kuigi sinu kontaktlehel on kasutusel teine vorm.
- Kas saab ka ilma? Kas WordPress, teema või mõni teine plugin juba teeb seda (õppetund 5.3)?
- Kas seda veel hooldatakse? Millal viimati uuendatud, kas see on veel pluginakataloogis?
Tee korrastamine kõigepealt testkeskkonnas (staging) (õppetund 8.3) või tee vähemalt varukoopia, ja kustuta plugina haaval, et teaksid, mis läks valesti, kui midagi läheb valesti. Pane tähele lühikoode: kui kustutad plugina, mis pakkus koodi [formulier id="2"], siis jääb see tekst pärast sõna-sõnalt su lehele.
Kui midagi läheb valesti: kriitiline viga
Pärast uuendust, uut pluginat või PHP uuendust näed äkki:
Sinu veebisaidil ilmnes kriitiline viga.või täiesti valget lehte. See tähendab: PHP peatus fataalse veaga enne kui leht valmis sai (õppetund 1.2). Tavaliselt on põhjuseks plugin või teema, mis ei sobi millegagi kokku: teise pluginaga, WordPressi uue versiooniga või PHP versiooniga.
Alates WordPress 5.2 teeb WordPress siis kaks asja:
- saadab e-kirja haldaja aadressile, milles on kirjas, milline plugin või teema vea põhjustas, ja erilise lingi;
- selle lingiga saad sisse logida taastamisrežiimi (recovery mode): haldus töötab siis, kui vea põhjustanud plugin on ajutiselt välja lülitatud, et saaksid selle uuendada, asendada või kustutada.
Seepärast ongi nii tähtis, et haldaja aadress on selline, mida sa tegelikult loed (õppetund 2.2).
Ise otsimine: sammud
Kas kirja ei tulnud või taastamisrežiim ei tööta? Nii leiad selle ise üles.
1. Vaata veadelogi
Viga on peaaegu alati veebiserveri või PHP veadelogis. DirectAdminis leiad selle oma domeeni logide juurest. Otsi rida, kus on PHP Fatal error ja su katse kellaaeg:
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:42Rada ütleb, kes on süüdlane: siin plugin kaustas oude-slider. Rea ülejäänud osa ütleb, miks (siin: funktsioon, mis on PHP 8-s eemaldatud, õppetund 8.4).
2. Lülita sisse debug-logi (mitte ekraaniteade)
Kui veadelogis pole midagi kasulikku, lisa faili wp-config.php (enne märget "stop met bewerken"):
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );WordPress kirjutab siis kõik vead faili wp-content/debug.log, ilma neid külastajatele näitamata. Ära jäta seda kunagi kauemaks sisse kui vaja: debug.log asub kaustas, mida veebiserver pakub, ja kes aadressi teab, saab seda lugeda. Selles on failiteed, mõnikord kasutajanimed ja muu info, mis aitab sissemurdjat. Lülita pärast otsimist uuesti välja ja kustuta debug.log. Või lase WordPressil kirjutada logifail väljapoole veebikausta, andes WP_DEBUG_LOG juures ette tee (näiteks '/home/gebruiker/logs/wp-debug.log', kui su hostimisteenuse pakkuja seda lubab). Õppetunnis 7.4 kontrollid, et debug.log ei ole avalik.
3. Plugina väljalülitamine ilma halduseta
Kui sa ei pääse haldusesse, lülita kahtlane plugin välja, nimetades ümber selle kausta, kasutades Fail-halduse tööriista (File Manager) või SFTP kaudu:
wp-content/plugins/oude-slider wordt wp-content/plugins/oude-slider-uitWordPress ei leia siis pluginat enam ja lülitab selle välja. Kui sa ei tea, milline see on, nimeta ümber terve kaust plugins nimeks plugins-uit: kõik pluginad lülituvad välja. Kui sait siis töötab, loo uus tühi kaust plugins, pane pluginad ükshaaval tagasi ja vaata pärast iga pluginat, kas viga tuleb tagasi. Teemade puhul kehtib sama: nimeta ümber aktiivse teema kaust ja WordPress langeb tagasi vaiketeemale, kui see on veel alles (õppetund 2.4).
4. Konfliktid ilma fataalse veata
Mitte iga probleem ei ole kriitiline viga. Mõnikord ei tööta ainult üks funktsioon: nupp ei tee midagi, vorm ei saadeta, redaktor laadib poolikult. Siis on tihti tegu konfliktiga kahe plugina vahel või plugina ja teema vahel. Selleks on kasulik ametlik plugin Health Check & Troubleshooting: probleemide lahendamise režiimis lülitab see välja kõik pluginad ainult sinu sessiooni jaoks ja lülitub vaiketeemale, samal ajal kui külastajad näevad tavalist saiti. Pärast lülitad need ükshaaval sisse, kuni probleem taas ilmneb.
Vaata ka oma brauseri konsooli (F12): JavaScripti vead nimetavad sageli faili ja seega ka plugina.
Saidi tervis
Menüüst Tööriistad > Saidi tervis kontrollib WordPress ise su saiti: vananenud PHP versioon, pluginad ja teemad, mis pole aktiivsed, puuduvad PHP laiendused, REST API, mis ei tööta, ajastatud ülesanded, mis on hilinenud. Kaardil Teave on kõik su paigalduse andmed (versioonid, failiteed, PHP seaded). Selle kaardi saad kopeerida ja abi küsides kaasa saata. Vaata siia iga suurema muudatuse järel.
Kokkuvõte
- Inaktiveerimine jätab failid alles; kustuta pluginad ja teemad, mida sa ei kasuta.
- Korrasta iga kvartal, plugina haaval, varukoopiaga või testkeskkonnas.
- Kriitilise vea korral saadab WordPress kirja koos lingiga taastamisrežiimi.
- Veadelogi või
debug.lognäitab süüdlase failiteed; lülita debug pärast otsimist uuesti välja, sest muidu ondebug.logavalik. - Ilma halduseta lülitad plugina välja selle kausta ümber nimetades; konflikte otsid probleemide lahendamise režiimiga.
Test (quiz)
Ülesanne
Ülesanne A5.4: Kas sinu silumislogi (debug log) ei ole avalik? Sisesta oma saidi aadress ja tõenda ülesande antud koodiga, et see on sinu enda sait (TXT-kirje või väike fail). Programm küsib /wp-content/debug.log: hea on, kui seda ei ole olemas või see on keelatud (404 või 403). Kui programm saab faili tagasi, on see punane. Lisaks loendab programm, mitu erinevat pluginakausta esineb sinu avalehe HTML-koodis (ainult teadmiseks).
Ülesanne D5.4: Korista oma pluginate nimekiri. Tee nimekiri kõigist oma pluginatest (aktiivsed ja mitteaktiivsed): nimi, milleks, kas veel vajalik (jah/ei), alternatiiv ilma pluginata. Kustuta (pärast varukoopiat või testkeskkonnas) pluginad, mida enam ei ole vaja, ükshaaval, ja vaata pärast iga kustutamist, kas sait veel töötab. Märgi, mitu pluginat sul oli ja mitu jäi alles, ning kirjuta üles, kas jäi järele lühikoode, mida pidid koristama.
Ülesanne D5.4: Korista oma pluginate nimekiri
Selle ülesande teed ise, keegi ei kontrolli seda. Märgi ära, mida tegid, ja märgi ülesanne tehtuks.
Arv pärast on väiksem või võrdne arvuga enne ning iga allesjääva plugina juures on põhjus. Mitteaktiivsed pluginad kustuta: ka väljalülitatud kood võib sisaldada turvaauku.
Su linnukesed ja märkmed jäävad ainult sellesse brauserisse, me ei saada neid kuhugi. Kui oled sisse loginud, salvestame Minu kursustes ainult info, et tegid ülesande ära.
Lisalugemist
Need artiklid kirjeldavad samme WebOké paneelides; teistes paneelides toimivad need sarnaselt.
- DirectAdmin juhend 18.1: Minu veebileht on valge või annab vea 500
- Viga 500 või "kriitiline viga" sinu veebisaidil (ka pärast WordPressi uuendust)
- DirectAdmin juhend 14.6: Vead pärast PHP uuendamist ja error log'i leidmine
- DirectAdmin juhend 17.2: Site summary & logs: veateade ja juurdepääsulogi
- Kuidas PHP-d siluda ilma faili php.ini muutmata?
- Debuggen in WordPress (developer.wordpress.org, inglise keeles): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
