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 znat ćete očistiti dodatke te sami pronaći i riješiti sukob ili bijelu stranicu.
Ključni pojmovi: deaktiviranje i brisanje, neaktivni kod, kritična pogreška, način oporavka (recovery mode), Zdravlje web-stranice, način rješavanja problema, preimenovanje mape dodatka, WP_DEBUG, WP_DEBUG_LOG, debug.log, log pogrešaka
Isključiti nije isto što i baciti
U izborniku Dodaci dodatak (plugin) možete deaktivirati ili obrisati. Razlika:
- Deaktiviraj: WordPress više ne učitava dodatak. No datoteke ostaju u
wp-content/plugins/i često ih je još uvijek moguće izravno dohvatiti preko web-poslužitelja. Ako u zasebnoj PHP datoteci tog dodatka postoji sigurnosni propust, taj propust i dalje postoji. Napadači traže poznate ranjive datoteke, a ne aktivne dodatke. - Obriši: datoteke se uklanjaju. Neki dodaci prilikom brisanja uklanjaju i svoje postavke i tablice u bazi podataka, a drugi ih ostavljaju.
Ako dodatak više ne koristite, obrišite ga. Deaktiviranje služi samo privremeno (dok tražite uzrok problema). Isto vrijedi za teme (lekcija 2.4).
Čišćenje: redovita provjera
Jednom u tromjesečju (lekcija 9.4) pregledajte svoje dodatke. Za svaki dodatak:
- Čemu služi? Ako se više ne sjećate, istražite. Često se pokaže da je dodatak nekad instaliran zbog jedne stvari i nikad nije uklonjen.
- Koristi li se još? Dodatak za slider, a nigdje nema slidera; dodatak za obrasce, a Vaša stranica za kontakt koristi neki drugi obrazac.
- Može li bez njega? Može li to već WordPress, tema ili neki drugi dodatak (lekcija 5.3)?
- Održava li se još? Kada je zadnji put ažuriran, nalazi li se još u direktoriju dodataka?
Čišćenje najprije provedite u testnom okruženju (staging) (lekcija 8.3) ili barem napravite sigurnosnu kopiju, i brišite jedan po jedan dodatak kako biste znali što je pošlo po zlu ako nešto pođe po zlu. Pazite na shortcodeove: ako obrišete dodatak koji je pružao [formulier id="2"], taj će se tekst nakon toga doslovno prikazivati na Vašoj stranici.
Kad nešto pođe po zlu: kritična pogreška
Nakon ažuriranja, novog dodatka ili nadogradnje PHP-a odjednom vidite:
Došlo je do kritične pogreške na ovoj web-stranici.ili potpuno bijelu stranicu. To znači: PHP se zaustavio zbog fatalne pogreške prije nego što je stranica bila gotova (lekcija 1.2). Najčešće je uzrok dodatak ili tema koji nisu kompatibilni s nečim drugim: drugim dodatkom, novom inačicom WordPressa ili inačicom PHP-a.
Od WordPressa 5.2 WordPress tada radi dvije stvari:
- šalje e-poruku na administratorsku adresu s podatkom koji je dodatak ili koja je tema uzrokovala pogrešku, te posebnu poveznicu;
- pomoću te poveznice prijavljujete se u način oporavka (recovery mode): administracija tada radi, a dodatak koji je uzrokovao pogrešku privremeno je isključen, tako da ga možete ažurirati, zamijeniti ili obrisati.
Zato je toliko važna administratorska adresa koju doista čitate (lekcija 2.2).
Samostalno traženje: koraci
Ne stiže e-poruka ili način oporavka ne radi? Ovako ćete sami pronaći uzrok.
1. Pogledajte log pogrešaka
Pogreška je gotovo uvijek zapisana u logu pogrešaka web-poslužitelja ili PHP-a. U DirectAdminu ga pronalazite među 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-u 8, lekcija 8.4).
2. Uključite debug-log (ne prikaz na zaslonu)
Ako u logu pogrešaka nema ničeg korisnog, u wp-config.php (iznad retka „That's all, stop editing!”) postavite:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );WordPress tada sve pogreške zapisuje u wp-content/debug.log, bez prikazivanja posjetiteljima. Nikada ovo ne ostavljajte uključenim dulje nego što je potrebno: debug.log nalazi se u mapi koju web-poslužitelj poslužuje, pa ga može pročitati svatko tko zna adresu. U njemu su putanje, ponekad korisnička imena i druge informacije koje pomažu napadaču. Nakon traženja ponovno ga isključite i obrišite debug.log. Ili neka WordPress zapisuje log izvan web-mape tako da kod WP_DEBUG_LOG navedete putanju (na primjer '/home/gebruiker/logs/wp-debug.log', ako Vaš pružatelj hostinga to dopušta). U lekciji 7.4 provjeravate da debug.log nije javno dostupan.
3. Isključivanje dodatka bez administracije
Ako se ne možete prijaviti u administraciju, sumnjivi dodatak isključite tako da preimenujete njegovu mapu, putem File Managera ili SFTP-a:
wp-content/plugins/oude-slider postaje wp-content/plugins/oude-slider-uitWordPress tada više ne pronalazi dodatak i isključuje ga. Ako ne znate o kojem je riječ, preimenujte cijelu mapu plugins u plugins-uit: svi se dodaci isključuju. Ako web-stranica tada radi, napravite novu praznu mapu plugins, vraćajte dodatke jedan po jedan i nakon svakog provjerite vraća li se pogreška. Za temu vrijedi isto: preimenujte mapu aktivne teme i WordPress će se vratiti na zadanu temu, ako je još instalirana (lekcija 2.4).
4. Sukobi bez fatalne pogreške
Nije svaki problem kritična pogreška. Ponekad ne radi samo jedna funkcija: gumb ne reagira, obrazac se ne šalje, uređivač se učita napola. Tada je često riječ o sukobu dvaju dodataka ili dodatka i teme. Za to je koristan službeni dodatak Health Check & Troubleshooting: u načinu rješavanja problema on samo za Vašu sesiju isključuje sve dodatke i prebacuje na zadanu temu, dok posjetitelji i dalje vide uobičajenu web-stranicu. Zatim ih uključujete jedan po jedan dok se problem ne vrati.
Pogledajte i konzolu svojeg preglednika (F12): JavaScript pogreške često navode datoteku, a time i dodatak.
Zdravlje web-stranice
U izborniku Alati > Zdravlje web-stranice WordPress sam provjerava Vašu web-stranicu: zastarjelu inačicu PHP-a, dodatke i teme koji nisu aktivni, PHP proširenja koja nedostaju, REST API koji ne radi, zakazane zadatke koji kasne. Na kartici Informacije nalaze se svi podaci o Vašoj instalaciji (inačice, putanje, PHP postavke). Sadržaj te kartice možete kopirati i priložiti kada tražite pomoć. Nakon svake veće promjene nakratko pogledajte ovdje.
Sažetak
- Deaktiviranje ostavlja datoteke; obrišite dodatke i teme koje ne koristite.
- Čistite svako tromjesečje, jedan po jedan dodatak, uz sigurnosnu kopiju ili u testnom okruženju (staging).
- Kod kritične pogreške WordPress šalje e-poruku s poveznicom na način oporavka.
- Log pogrešaka ili
debug.lognavodi putanju krivca; nakon traženja ponovno isključite debug, jer jedebug.loginače javno dostupan. - Bez administracije dodatak isključujete preimenovanjem njegove mape; sukobe tražite pomoću načina rješavanja problema.
Kviz
Zadatak
Zadatak A5.4: Je li Vaš debug-log javno dostupan? Unesite adresu svoje web-stranice i kodom koji Vam zadatak daje dokažite da je to Vaša web-stranica (TXT zapis ili mala datoteka). Program dohvaća /wp-content/debug.log: rezultat je dobar ako ta datoteka ne postoji ili je pristup odbijen (404 ili 403). Ako program dobije datoteku, rezultat je crven. Osim toga program broji koliko se različitih mapa dodataka pojavljuje u HTML-u Vaše početne stranice (samo informativno).
Zadatak D5.4: Sređivanje popisa dodataka. Napravite popis svih svojih dodataka (aktivnih i neaktivnih): naziv, čemu služi, je li još potreban (da/ne), alternativa bez dodatka. Obrišite (nakon izrade sigurnosne kopije ili u testnom okruženju (staging)) dodatke koji više nisu potrebni, jedan po jedan, i nakon svakog brisanja provjerite radi li web-stranica još uvijek. Upišite 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éa; u drugim upravljačkim pločama postupak je sličan.
- DirectAdmin priručnik 18.1: Moja web stranica je bijela ili prikazuje pogrešku 500
- Pogreška 500 ili "kritična pogreš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?
- Otklanjanje pogrešaka u WordPressu (developer.wordpress.org, na engleskom): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
- Odabir, procjena i čišćenje WordPress dodataka
