Moodul 5 · 5.4
Vähem on rohkem: koristamine ja konfliktide lahendamine
Moodul 5: Teemad ja pluginad · Lugemisaeg: 9 minutit
Õpieesmärk: Pärast seda õppetundi oskad pluginaid koristada ning konflikti või valge lehe ise üles leida ja lahendada.
Põhimõisted: väljalülitamine vs kustutamine, mitteaktiivne kood, kriitiline viga, taasterežiim (recovery mode), Saidi tervis, tõrkeotsingu režiim, pluginakausta ümbernimetamine, WP_DEBUG, WP_DEBUG_LOG, debug.log, vealogi
Väljalülitamine ei ole äraviskamine
Menüüs Pluginad saad plugina välja lülitada või kustutada. Erinevus:
- Väljalülitamine: WordPress ei laadi pluginat enam. Failid jäävad aga kausta
wp-content/plugins/alles ja on sageli veebiserveri kaudu endiselt otse kättesaadavad. Kui selle plugina mõnes eraldi PHP-failis on turvaauk, on see auk endiselt olemas. Sissetungijad otsivad teadaolevalt haavatavaid faile, mitte aktiivseid pluginaid. - Kustutamine: failid eemaldatakse. Mõned pluginad koristavad kustutamisel andmebaasist ka oma seaded ja tabelid, teised jätavad need alles.
Kui sa pluginat enam ei kasuta, kustuta see. Väljalülitamine on mõeldud ainult lühikeseks ajaks (probleemi otsimise ajal). Sama kehtib teemade kohta (õppetund 2.4).
Koristamine: kindel ring
Käi oma pluginad üks kord kvartalis läbi (õppetund 9.4). Iga plugina puhul:
- Milleks see on? Kui sa enam ei mäleta, uuri järele. Sageli selgub, et plugin paigaldati kunagi ühe asja jaoks ja jäi lihtsalt alles.
- Kas seda veel kasutatakse? Slaidiplugin, kuigi kuskil pole ühtegi slaidiesitlust, või vormiplugin, kuigi sinu kontaktileht kasutab teist vormi.
- Kas saab ka ilma? Kas WordPress, teema või mõni teine plugin oskab seda juba (õppetund 5.3)?
- Kas seda veel hooldatakse? Millal viimati uuendatud, kas see on veel pluginakataloogis?
Tee koristamine kõigepealt testkeskkonnas (staging) (õppetund 8.3) või tee vähemalt varukoopia, ja kustuta korraga üks plugin, et teaksid, mis valesti läks, kui midagi valesti läheb. Pane tähele lühikoode: kui kustutad plugina, mis pakkus koodi [formulier id="2"], on see tekst pärast seda sõna-sõnalt sinu lehel näha.
Kui midagi läheb valesti: kriitiline viga
Pärast uuendust, uut pluginat või PHP uuendamist näed äkki:
Sellel veebilehel ilmnes kriitiline viga.või täiesti valget lehte. See tähendab, et PHP lõpetas töö fataalse veaga enne, kui leht valmis sai (õppetund 1.2). Enamasti põhjustab seda plugin või teema, mis ei sobi kokku millegi muuga: teise plugina, WordPressi uue versiooni või PHP versiooniga.
Alates WordPress 5.2-st teeb WordPress siis kaks asja:
- saadab administraatori aadressile e-kirja, milles on kirjas, milline plugin või teema vea põhjustas, ja eriline link;
- selle lingiga logid sisse taasterežiimis (recovery mode): haldus töötab siis nii, et vea põhjustanud plugin on ajutiselt välja lülitatud, ja saad selle uuendada, asendada või kustutada.
Seepärast on nii oluline, et administraatori aadress oleks selline, mida sa ka loed (õppetund 2.2).
Ise otsimine: sammud
Kirja ei tulnud või taasterežiim ei tööta? Nii leiad vea ise üles.
1. Vaata vealogi
Viga on peaaegu alati kirjas veebiserveri või PHP vealogis. DirectAdminis leiad selle oma domeeni logide juurest. Otsi rida, kus on PHP Fatal error ja sinu 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:42Tee näitab, kes on süüdi: siin plugin kaustas oude-slider. Ülejäänud rida ütleb, miks (siin: funktsioon, mis PHP 8-st eemaldati, õppetund 8.4).
2. Lülita sisse silumislogi (mitte ekraanile kuvamine)
Kui vealogis pole midagi kasulikku, lisa faili wp-config.php (rea „stop editing“ kohale):
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 sisse kauemaks, kui vaja: debug.log asub kaustas, mida veebiserver välja jagab, ja kes aadressi teab, saab seda lugeda. Seal on teekonnad, mõnikord kasutajanimed ja muu teave, mis sissetungijat aitab. Lülita see pärast otsimist uuesti välja ja kustuta debug.log. Või lase WordPressil logifail veebikaustast väljapoole kirjutada, andes WP_DEBUG_LOG väärtuseks tee (näiteks '/home/gebruiker/logs/wp-debug.log', kui sinu majutusteenuse pakkuja seda lubab). Õppetunnis 7.4 kontrollid, et debug.log ei oleks avalik.
3. Plugina väljalülitamine ilma halduseta
Kui sa haldusesse sisse ei pääse, lülita kahtlane plugin välja, nimetades ümber selle kausta, kas File Manageri või SFTP kaudu:
wp-content/plugins/oude-slider muutub wp-content/plugins/oude-slider-uitWordPress ei leia pluginat siis enam üles ja lülitab selle välja. Kui sa ei tea, milline plugin see on, nimeta kogu kaust plugins ümber nimeks plugins-uit: kõik pluginad lülituvad välja. Kui veebisait siis töötab, loo uus tühi kaust plugins, pane pluginad ükshaaval tagasi ja kontrolli pärast iga pluginat, kas viga tuleb tagasi. Teemaga on sama lugu: nimeta aktiivse teema kaust ümber ja WordPress võtab kasutusele vaiketeema, kui see on veel alles (õppetund 2.4).
4. Konfliktid ilma fataalse veata
Iga probleem ei ole kriitiline viga. Mõnikord ei tööta üks funktsioon: nupp ei tee midagi, vorm ei saada, redaktor laadib poolikult. Siis on sageli tegu konfliktiga kahe plugina või plugina ja teema vahel. Selleks on kasulik ametlik plugin Health Check & Troubleshooting: tõrkeotsingu režiimis lülitab see ainult sinu seansi jaoks kõik pluginad välja ja võtab kasutusele vaiketeema, samal ajal kui külastajad näevad tavalist veebisaiti. Seejärel lülitad need ükshaaval sisse, kuni probleem tagasi tuleb.
Vaata ka oma brauseri konsooli (F12): JavaScripti vead nimetavad sageli faili ja seega ka plugina.
Saidi tervis
Menüüs Tööriistad > Saidi tervis kontrollib WordPress ise sinu veebisaiti: aegunud PHP versioon, mitteaktiivsed pluginad ja teemad, puuduvad PHP laiendused, mittetöötav REST API, maha jäänud ajastatud ülesanded. Vahekaardil Info on kõik sinu paigalduse andmed (versioonid, teekonnad, PHP seaded). Selle vahekaardi sisu saad kopeerida ja kaasa saata, kui abi küsid. Vaata siia pärast iga suuremat muudatust.
Kokkuvõte
- Väljalülitamine jätab failid alles; kustuta pluginad ja teemad, mida sa ei kasuta.
- Korista igas kvartalis, üks plugin korraga, varukoopiaga või testkeskkonnas (staging).
- Kriitilise vea korral saadab WordPress e-kirja, milles on link taasterežiimi.
- Vealogi või
debug.lognäitab süüdlase teekonda; lülita silumine pärast otsimist välja, sest muidu ondebug.logavalik. - Ilma halduseta lülitad plugina välja selle kausta ümber nimetades; konflikte otsid tõrkeotsingu režiimiga.
Test (quiz)
Ülesanne
Ülesanne A5.4: Kas sinu silumislogi (debug log) ei ole avalik? Sisesta oma veebisaidi aadress ja tõesta ülesande antud koodiga, et see on sinu enda veebisait (TXT-kirje või väike fail). Programm küsib aadressi /wp-content/debug.log: hea on, kui seda ei ole olemas või päring keelatakse (404 või 403). Kui programm saab faili tagasi, on tulemus punane. Lisaks loeb programm kokku, mitu erinevat pluginakausta sinu avalehe HTML-is esineb (ainult teadmiseks).
Ülesanne D5.4: Korista oma pluginate nimekiri. Koosta nimekiri kõigist oma pluginatest (aktiivsetest ja mitteaktiivsetest): nimi, milleks, kas on veel vaja (jah/ei), alternatiiv ilma pluginata. Kustuta (pärast varukoopia tegemist või testkeskkonnas) pluginad, mida enam vaja ei ole, üks korraga, ja kontrolli pärast iga kustutamist, kas veebisait veel töötab. Märgi, mitu pluginat sul oli ja mitu alles jäi, 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?
- Silumine WordPressis (developer.wordpress.org, inglise keeles): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
- WordPressi pluginate valimine, hindamine ja koristamine
