5. modulis · 5.4
Mazāk ir vairāk: sakārtošana un konfliktu novēršana
5. modulis: Tēmas un spraudņi · Lasīšanas laiks: 9 minūtes
Mācību mērķis: Pēc šīs nodarbības Jūs varēsiet sakārtot spraudņus un paši atrast un novērst konfliktu vai baltu lapu.
Galvenie jēdzieni: deaktivizēšana pret dzēšanu, neaktīvs kods, kritiska kļūda, atkopšanas režīms (recovery mode), Vietnes veselība, problēmu novēršanas režīms, spraudņa mapes pārdēvēšana, WP_DEBUG, WP_DEBUG_LOG, debug.log, kļūdu žurnāls
Izslēgt nenozīmē izmest
Sadaļā Spraudņi Jūs varat spraudni deaktivizēt vai dzēst. Atšķirība:
- Deaktivizēt: WordPress spraudni vairs neielādē. Taču faili paliek mapē
wp-content/plugins/, un bieži tos joprojām var pieprasīt tieši caur tīmekļa serveri. Ja kādā atsevišķā šī spraudņa PHP failā ir ievainojamība, tā joprojām pastāv. Uzbrucēji meklē zināmus ievainojamus failus, nevis aktīvus spraudņus. - Dzēst: faili tiek noņemti. Daži spraudņi dzēšanas laikā izdzēš arī savus iestatījumus un tabulas datubāzē, citi tos atstāj.
Ja spraudni vairs neizmantojat, dzēsiet to. Deaktivizēšana ir tikai uz īsu brīdi (problēmas meklēšanas laikā). Tas pats attiecas uz tēmām (2.4. nodarbība).
Sakārtošana: regulāra pārbaude
Reizi ceturksnī (9.4. nodarbība) pārskatiet savus spraudņus. Katram spraudnim:
- Kam tas paredzēts? Ja vairs neatceraties, noskaidrojiet. Bieži izrādās, ka spraudnis kādreiz instalēts vienam mērķim un nekad nav noņemts.
- Vai tas vēl tiek izmantots? Slīdrādes spraudnis, lai gan nekur nav slīdrādes, formu spraudnis, lai gan Jūsu kontaktu lapā tiek izmantota cita forma.
- Vai var iztikt bez tā? Vai WordPress, tēma vai cits spraudnis to jau prot (5.3. nodarbība)?
- Vai tas joprojām tiek uzturēts? Kad pēdējo reizi atjaunināts, vai joprojām ir spraudņu direktorijā?
Vispirms veiciet sakārtošanu testa vidē (staging) (8.3. nodarbība) vai vismaz izveidojiet rezerves kopiju, un dzēsiet pa vienam spraudnim, lai zinātu, kas nogāja greizi, ja kaut kas notiek. Pievērsiet uzmanību īskodiem (shortcodes): ja dzēšat spraudni, kas nodrošināja [veidlapa id="2"], šis teksts pēc tam burtiski parādīsies Jūsu lapā.
Ja kaut kas noiet greizi: kritiska kļūda
Pēc atjauninājuma, jauna spraudņa vai PHP jauninājuma pēkšņi redzat:
Šajā tīmekļa vietnē ir radusies kritiska kļūda.vai pilnīgi baltu lapu. Tas nozīmē: PHP ir apstājies ar fatālu kļūdu, pirms lapa bija izveidota (1.2. nodarbība). Parasti to izraisa spraudnis vai tēma, kas nav saderīga ar kaut ko citu: citu spraudni, jauno WordPress versiju vai PHP versiju.
Kopš WordPress 5.2 WordPress šādā gadījumā dara divas lietas:
- tas nosūta e-pastu uz administratora adresi ar informāciju, kurš spraudnis vai kura tēma izraisīja kļūdu, un īpašu saiti;
- ar šo saiti Jūs piesakāties atkopšanas režīmā (recovery mode): administrēšana tad darbojas, un spraudnis, kas izraisīja kļūdu, ir uz laiku izslēgts, lai Jūs varētu to atjaunināt, aizstāt vai dzēst.
Tāpēc ir tik svarīgi, lai administratora adrese būtu tāda, kuru Jūs lasāt (2.2. nodarbība).
Meklēšana pašu spēkiem: soļi
Nav saņemts e-pasts vai atkopšanas režīms nedarbojas? Lūk, kā atrast cēloni pašiem.
1. Apskatiet kļūdu žurnālu
Kļūda gandrīz vienmēr ir redzama tīmekļa servera vai PHP kļūdu žurnālā. DirectAdmin to atradīsiet sava domēna žurnālos. Meklējiet rindu ar PHP Fatal error un Jūsu mēģinājuma laiku:
PHP Fatal error: Uncaught Error: Call to undefined function create_function()
in /home/lietotajs/domains/example.com/public_html/wp-content/plugins/vecais-slaiders/slider.php:42Ceļš norāda vainīgo: šeit tas ir spraudnis mapē vecais-slaiders. Pārējā rindas daļa norāda iemeslu (šeit: funkcija, kas PHP 8 ir noņemta, 8.4. nodarbība).
2. Ieslēdziet debug žurnālu (nevis ziņojumus ekrānā)
Ja kļūdu žurnālā nav nekā noderīga, pievienojiet failā wp-config.php (virs rindas "That's all, stop editing!"):
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );Tad WordPress ieraksta visas kļūdas failā wp-content/debug.log, nerādot tās apmeklētājiem. Nekad neatstājiet to ieslēgtu ilgāk, nekā nepieciešams: debug.log atrodas mapē, ko piedāvā tīmekļa serveris, un ikviens, kurš zina adresi, var to izlasīt. Tajā ir ceļi, dažkārt lietotājvārdi un cita informācija, kas palīdz uzbrucējam. Pēc meklēšanas to atkal izslēdziet un dzēsiet debug.log. Vai arī lieciet WordPress rakstīt žurnāla failu ārpus tīmekļa mapes, norādot ceļu pie WP_DEBUG_LOG (piemēram, '/home/lietotajs/logs/wp-debug.log', ja Jūsu mitināšanas (hostinga) pakalpojumu sniedzējs to atļauj). 7.4. nodarbībā Jūs pārbaudīsiet, vai debug.log nav publiski pieejams.
3. Spraudņa izslēgšana bez administrēšanas
Ja nevarat piekļūt administrēšanai, izslēdziet aizdomīgo spraudni, pārdēvējot tā mapi, izmantojot File Manager vai SFTP:
wp-content/plugins/vecais-slaiders kļūst par wp-content/plugins/vecais-slaiders-izslTad WordPress spraudni vairs neatrod un to izslēdz. Ja nezināt, kurš tas ir, pārdēvējiet visu mapi plugins par plugins-izsl: visi spraudņi tiek izslēgti. Ja tīmekļa vietne tad darbojas, izveidojiet jaunu tukšu mapi plugins, atgrieziet spraudņus pa vienam un pēc katra spraudņa pārbaudiet, vai kļūda atgriežas. Ar tēmu ir tāpat: pārdēvējiet aktīvās tēmas mapi, un WordPress pārslēdzas uz noklusējuma tēmu, ja tā vēl ir instalēta (2.4. nodarbība).
4. Konflikti bez fatālas kļūdas
Ne katra problēma ir kritiska kļūda. Dažkārt nedarbojas tikai viena funkcija: poga neko nedara, forma netiek nosūtīta, redaktors ielādējas tikai daļēji. Tad bieži vien tas ir konflikts starp diviem spraudņiem vai starp spraudni un tēmu. Šim nolūkam noder oficiālais spraudnis Health Check & Troubleshooting: problēmu novēršanas režīmā tas tikai Jūsu sesijai izslēdz visus spraudņus un pārslēdzas uz noklusējuma tēmu, kamēr apmeklētāji redz parasto tīmekļa vietni. Pēc tam Jūs tos ieslēdzat pa vienam, līdz problēma atgriežas.
Apskatiet arī savas pārlūkprogrammas konsoli (F12): JavaScript kļūdās bieži ir norādīts fails un līdz ar to arī spraudnis.
Vietnes veselība
Sadaļā Rīki > Vietnes veselība WordPress pats pārbauda Jūsu tīmekļa vietni: novecojusi PHP versija, neaktīvi spraudņi un tēmas, trūkstoši PHP paplašinājumi, nestrādājošs REST API, ieplānoti uzdevumi, kas kavējas. Cilnē Informācija ir visi Jūsu instalācijas dati (versijas, ceļi, PHP iestatījumi). Šīs cilnes saturu varat nokopēt un pievienot, kad lūdzat palīdzību. Ieskatieties šeit pēc katras lielākas izmaiņas.
Kopsavilkums
- Deaktivizējot faili paliek vietā; dzēsiet spraudņus un tēmas, kurus neizmantojat.
- Sakārtojiet katru ceturksni, pa vienam spraudnim, ar rezerves kopiju vai testa vidē (staging).
- Kritiskas kļūdas gadījumā WordPress nosūta e-pastu ar saiti uz atkopšanas režīmu.
- Kļūdu žurnālā vai
debug.logir norādīts vainīgā ceļš; pēc meklēšanas izslēdziet debug, jo citādidebug.logir publiski pieejams. - Bez administrēšanas spraudni izslēdz, pārdēvējot tā mapi; konfliktus meklē ar problēmu novēršanas režīmu.
Tests (quiz)
Uzdevums
Uzdevums A5.4: Vai Jūsu debug žurnāls nav publiski redzams? Ievadiet savas tīmekļa vietnes adresi un ar kodu, ko Jums dod uzdevums, pierādiet, ka tā ir Jūsu tīmekļa vietne (TXT ieraksts vai neliels fails). Programma pieprasa /wp-content/debug.log: labi ir, ja tas neeksistē vai piekļuve tiek liegta (404 vai 403). Ja programma saņem atpakaļ failu, rezultāts ir sarkans. Turklāt programma saskaita, cik dažādu spraudņu mapju parādās Jūsu sākumlapas HTML (tikai informācijai).
Uzdevums D5.4: Jūsu spraudņu saraksta sakārtošana. Izveidojiet visu savu spraudņu sarakstu (aktīvo un neaktīvo): nosaukums, kam paredzēts, vai joprojām vajadzīgs (jā/nē), alternatīva bez spraudņa. Dzēsiet (pēc rezerves kopijas izveides vai testa vidē (staging)) spraudņus, kas vairs nav vajadzīgi, pa vienam, un pēc katras dzēšanas pārbaudiet, vai tīmekļa vietne joprojām darbojas. Ierakstiet, cik spraudņu Jums bija un cik palika, un atzīmējiet, vai palika īskodi, kas bija jāsakārto.
Uzdevums D5.4: Jūsu spraudņu saraksta sakārtošana
Šo uzdevumu veicat paši; neviens to nepārbauda. Atzīmējiet, ko esat izdarījuši, un atzīmējiet uzdevumu kā paveiktu.
Skaits pēc ir mazāks vai vienāds, un katram spraudnim, kas paliek, ir norādīts iemesls. Neaktīvos spraudņus Jūs dzēšat: arī izslēgts kods var saturēt ievainojamību.
Jūsu atzīmes un piezīmes paliek tikai šajā pārlūkprogrammā; mēs tās nekur nesūtām. Ja esat pieteikušies, sadaļā Mani kursi saglabājam tikai to, ka uzdevums ir paveikts.
Papildu lasāmviela
Šajos rakstos aprakstīti soļi WebOké paneļos; citos paneļos tie darbojas līdzīgi.
- DirectAdmin rokasgrāmata 18.1: Mana mājaslapa ir balta vai rāda kļūdu 500
- Kļūda 500 vai "kritiska kļūda" Jūsu tīmekļa vietnē (arī pēc WordPress atjauninājuma)
- DirectAdmin rokasgrāmata 14.6: Kļūdas pēc PHP versijas jauninājuma un kļūdu žurnāla atrašana
- DirectAdmin rokasgrāmata 17.2: Site summary & logs: kļūdu žurnāls un piekļuves žurnāls
- Kā atkļūdot PHP, nemainot php.ini?
- Atkļūdošana WordPress (developer.wordpress.org, angļu valodā): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
- WordPress spraudņu izvēle, novērtēšana un sakārtošana
