Modul 5 · 5.4
Manje je više: čišćenje i rješavanje sukoba
Modul 5: Teme i dodaci · Vrijeme čitanja: 9 minuta
Cilj učenja: Nakon ove lekcije moći ćete počistiti dodatke te sami pronaći i riješiti sukob ili bijelu stranicu.
Ključni pojmovi: deaktiviranje nasuprot brisanju, neaktivni kod, kritična greška, način za oporavak (recovery mode), Zdravlje web-stranice, način za rješavanje problema, preimenovanje mape dodatka, WP_DEBUG, WP_DEBUG_LOG, debug.log, log pogrešaka
Isključivanje nije isto što i bacanje
Na stranici Dodaci možete deaktivirati ili obrisati dodatak. Razlika:
- Deaktiviranje: WordPress više ne učitava dodatak. No datoteke ostaju u mapi
wp-content/plugins/i često su i dalje izravno dostupne putem web-poslužitelja. Ako se u pojedinačnoj PHP datoteci tog dodatka nalazi sigurnosni propust, taj propust i dalje postoji. Napadači skeniraju poznate ranjive datoteke, a ne aktivne dodatke. - Brisanje: datoteke se uklanjaju. Neki dodaci pri brisanju počiste i svoje postavke i tablice u bazi podataka; drugi ih ostavljaju.
Ako dodatak više ne koristite, obrišite ga. Deaktiviranje je samo privremeno rješenje (dok tražite uzrok problema). Isto vrijedi i za teme (lekcija 2.4).
Čišćenje: redovita provjera
Jednom tromjesečno (lekcija 9.4) pregledajte svoje dodatke. Za svaki dodatak provjerite:
- Čemu služi? Ako se ne sjećate, provjerite. Često se ispostavi da je dodatak nekad instaliran za jednu konkretnu stvar i nikad nije uklonjen.
- Koristi li se još uvijek? Na primjer dodatak za slider dok nigdje nema slidera, ili dodatak za obrasce dok Vaša kontaktna stranica koristi drugi obrazac.
- Može li se bez njega? Može li to već WordPress, tema ili neki drugi dodatak (lekcija 5.3)?
- Održava li se i dalje? Kada je zadnje ažuriran, je li i dalje u direktoriju dodataka?
Čišćenje prvo napravite u testnom okruženju (staging) (lekcija 8.3), ili barem izradite sigurnosnu kopiju, i brišite jedan dodatak po jedan kako biste znali što je uzrokovalo problem ako nešto pođe po zlu. Obratite pozornost na shortcodeove: ako obrišete dodatak koji je isporučivao [formulier id="2"], taj će tekst nakon toga stajati doslovno na Vašoj stranici.
Kad nešto pođe po zlu: kritična greška
Nakon ažuriranja, novog dodatka ili nadogradnje PHP-a odjednom se pojavi:
Pojavila se kritična greška na vašoj web-stranici.ili potpuno bijela stranica. To znači: PHP se zaustavio s fatalnom greškom prije nego što je stranica uopće nastala (lekcija 1.2). Obično je to zbog dodatka ili teme koja se ne slaže s nečim drugim: drugim dodatkom, novom verzijom WordPressa ili verzijom PHP-a.
Od verzije WordPressa 5.2 WordPress u tom slučaju čini dvije stvari:
- šalje e-poštu na adresu administratora s informacijom koji je dodatak ili tema izazvao grešku, uz poseban poveznicu;
- pomoću te poveznice prijavljujete se u način za oporavak (recovery mode): administracija tada radi, s dodatkom koji je izazvao grešku privremeno isključenim, tako da ga možete ažurirati, zamijeniti ili ukloniti.
Zato je toliko važno da adresa administratora bude ona koju redovito čitate (lekcija 2.2).
Samostalno traženje: koraci
Ne stigne li e-pošta, ili način za oporavak ne radi? Evo kako to sami pronaći.
1. Pogledajte log pogrešaka
Greška se gotovo uvijek nalazi u logu pogrešaka web-poslužitelja ili PHP-a. Na DirectAdminu ga pronalazite među zapisnicima (logovima) Vaše domene. Tražite redak s PHP Fatal error i vremenom Vašeg pokušaja:
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:42Putanja Vam govori tko je krivac: ovdje dodatak u mapi oude-slider. Ostatak retka govori zašto (ovdje: funkcija koja je uklonjena u PHP 8, lekcija 8.4).
2. Uključite debug log (ne prikaz na ekranu)
Ako u logu pogrešaka nema ničeg korisnog, u wp-config.php (iznad „stop met bewerken”) postavite:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );WordPress tada sve greške zapisuje u wp-content/debug.log, a da ih ne prikazuje posjetiteljima. Nikad ovo nemojte ostaviti uključeno dulje nego što je potrebno: debug.log nalazi se u mapi koju web-poslužitelj poslužuje, pa tko zna adresu, može ga pročitati. U njemu se nalaze putanje, ponekad korisnička imena i druge informacije koje mogu pomoći napadaču. Nakon traženja ponovno isključite postavku i obrišite debug.log. Ili neka WordPress piše log datoteku izvan web mape, zadavanjem putanje uz WP_DEBUG_LOG (na primjer '/home/gebruiker/logs/wp-debug.log', ako Vaš hosting to dopušta). U lekciji 7.4 provjeravate da debug.log nije javno dostupan.
3. Isključivanje dodatka bez pristupa administraciji
Ako ne možete ući u administraciju, isključite sumnjivi dodatak tako da preimenujete njegovu mapu, putem File Managera ili SFTP-a:
wp-content/plugins/oude-slider wordt wp-content/plugins/oude-slider-uitWordPress tada više ne pronalazi dodatak i isključuje ga. Ako ne znate koji je dodatak uzrok, preimenujte cijelu mapu plugins u plugins-uit: svi se dodaci isključuju. Ako web-stranica tada radi, izradite novu praznu mapu plugins, vraćajte dodatke jedan po jedan i nakon svakog provjerite vraća li se greška. Isto vrijedi i za temu: preimenujte mapu aktivne teme i WordPress se vraća na zadanu temu, ako ona još postoji (lekcija 2.4).
4. Sukobi bez fatalne greške
Nije svaki problem kritična greška. Ponekad ne radi samo jedna funkcija: gumb ne reagira, obrazac se ne šalje, uređivač se učitava samo djelomično. Tada je najčešće riječ o sukobu dviju dodataka ili dodatka i teme. Za to je koristan službeni dodatak Health Check & Troubleshooting: u načinu za rješavanje problema isključuje sve dodatke samo za Vašu sesiju i prebacuje na zadanu temu, dok ostali posjetitelji i dalje vide normalnu web-stranicu. Zatim ih uključujete jedan po jedan dok se problem ponovno ne pojavi.
Pogledajte i konzolu Vašeg preglednika (F12): JavaScript greške često navode datoteku, a time i dodatak.
Zdravlje web-stranice
Pod Alati > Zdravlje web-stranice WordPress sam provjerava Vašu web-stranicu: zastarjelu verziju PHP-a, dodatke i teme koji nisu aktivni, nedostajuće PHP proširenja, REST API koji ne radi, zakazane zadatke koji kasne. Na kartici Info nalaze se svi podaci o Vašoj instalaciji (verzije, putanje, PHP postavke). Tu karticu možete kopirati i priložiti kada tražite pomoć. Pogledajte ovo nakon svake veće promjene.
Sažetak
- Deaktiviranje ostavlja datoteke; obrišite dodatke i teme koje ne koristite.
- Čistite svako tromjesečje, jedan dodatak po jedan, uz sigurnosnu kopiju ili u testnom okruženju (staging).
- Kod kritične greške WordPress šalje e-poštu s poveznicom na način za oporavak.
- Log pogrešaka ili
debug.lognavodi putanju krivca; nakon traženja ponovno isključite debug, jer jedebug.loginače javno dostupan. - Bez pristupa administraciji isključujete dodatak preimenovanjem njegove mape; sukobe tražite pomoću načina za rješavanje problema.
Kviz
Zadatak
Zadatak A5.4: Je li Vaš debug-log javno dostupan? Unesite adresu Vaše web-stranice i dokazom koji dobijete od zadatka potvrdite da je riječ o Vašoj web-stranici (TXT zapis ili mala datoteka). Program provjerava /wp-content/debug.log: u redu je ako ta datoteka ne postoji ili je pristup odbijen (404 ili 403). Ako program dobije datoteku natrag, to je označeno crveno. Osim toga, program broji koliko se različitih mapa dodataka pojavljuje u HTML-u Vaše naslovne stranice (samo informativno).
Zadatak D5.4: Sređivanje popisa dodataka. Izradite popis svih svojih dodataka (aktivnih i neaktivnih): naziv, svrha, potreban (da/ne), alternativa bez dodatka. Obrišite (nakon sigurnosne kopije ili u testnom okruženju) dodatke koji više nisu potrebni, jedan po jedan, i nakon svakog brisanja provjerite radi li web-stranica i dalje. Navedite koliko ste dodataka imali i koliko ih je ostalo, te zabilježite jesu li ostali shortcodeovi koje ste morali počistiti.
Zadatak D5.4: Sređivanje popisa dodataka
Ovaj zadatak rješavate sami; nitko ga ne provjerava. Označite što ste napravili i označite zadatak kao završen.
Broj nakon čišćenja manji je ili jednak broju prije, a uz svaki dodatak koji ostaje naveden je razlog. Neaktivne dodatke uklonite: i onemogućen kod može sadržavati sigurnosni propust.
Vaše kvačice i bilješke ostaju samo u ovom pregledniku; ne šaljemo ih nikamo. Ako ste prijavljeni, u Moji tečajevi čuvamo samo podatak da ste zadatak završili.
Dodatno čitanje
Ovi članci opisuju korake u upravljačkim pločama WebOké; u drugim pločama postupak je sličan.
- DirectAdmin priručnik 18.1: Moja web stranica je bijela ili prikazuje pogrešku 500
- Greška 500 ili "kritična greška" na Vašoj web stranici (i nakon ažuriranja WordPressa)
- DirectAdmin priručnik 14.6: Greške nakon nadogradnje PHP-a i pronalaženje Error loga
- DirectAdmin priručnik 17.2: Site summary & logs: log pogrešaka i log pristupa
- Kako otklanjati pogreške u PHP-u bez mijenjanja datoteke php.ini?
- Debugiranje u WordPressu (developer.wordpress.org, engleski): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
