Moduuli 5 · 5.4
Vähemmän on enemmän: siivoaminen ja ristiriitojen ratkaiseminen
Moduuli 5: Teemat ja lisäosat · Lukuaika: 9 minuuttia
Oppimistavoite: Tämän oppitunnin jälkeen osaat siivota lisäosat sekä etsiä ja korjata itse ristiriidan tai valkoisen sivun.
Keskeiset käsitteet: käytöstä poistaminen vs. poistaminen, käyttämätön koodi, kriittinen virhe, palautustila (recovery mode), Sivuston eheys, vianmääritystila, lisäosakansion uudelleennimeäminen, WP_DEBUG, WP_DEBUG_LOG, debug.log, virheloki
Käytöstä poistaminen ei ole roskiin heittämistä
Kohdassa Lisäosat voit lisäosan kohdalla valita Poista käytöstä tai Poista. Ero on tämä:
- Poista käytöstä: WordPress ei enää lataa lisäosaa. Tiedostot jäävät kuitenkin hakemistoon
wp-content/plugins/, ja niihin pääsee usein yhä suoraan verkkopalvelimen kautta. Jos lisäosan yksittäisessä PHP-tiedostossa on haavoittuvuus, se on edelleen olemassa. Murtautujat skannaavat tunnettuja haavoittuvia tiedostoja, eivät käytössä olevia lisäosia. - Poista: tiedostot poistetaan. Jotkin lisäosat siivoavat poistettaessa myös asetuksensa ja taulunsa tietokannasta, toiset jättävät ne paikalleen.
Jos et enää käytä lisäosaa, poista se. Käytöstä poistaminen on vain hetkellistä käyttöä varten (esimerkiksi vikaa etsiessä). Sama koskee teemoja (oppitunti 2.4).
Siivoaminen: säännöllinen kierros
Käy lisäosasi läpi kerran neljännesvuodessa (oppitunti 9.4). Kysy jokaisesta lisäosasta:
- Mihin se on tarkoitettu? Jos et enää muista, selvitä. Usein käy ilmi, että lisäosa on joskus asennettu yhteen tarkoitukseen eikä sitä ole koskaan poistettu.
- Onko se vielä käytössä? Esimerkiksi liukusäädinlisäosa, vaikka sivustolla ei ole yhtään liukusäädintä, tai lomakelisäosa, vaikka yhteydenottosivusi käyttää toista lomaketta.
- Pärjäätkö ilman sitä? Osaako WordPress, teema tai jokin toinen lisäosa jo saman asian (oppitunti 5.3)?
- Ylläpidetäänkö sitä vielä? Milloin se on viimeksi päivitetty, löytyykö se vielä lisäosahakemistosta?
Siivoa ensin testiympäristössä (staging) (oppitunti 8.3) tai tee vähintään varmuuskopio, ja poista yksi lisäosa kerrallaan, jotta tiedät, mikä meni pieleen, jos jokin menee pieleen. Huomaa lyhytkoodit (shortcodes): jos poistat lisäosan, joka tarjosi lyhytkoodin [lomake id="2"], kyseinen teksti näkyy sen jälkeen sellaisenaan sivullasi.
Kun jokin menee pieleen: kriittinen virhe
Päivityksen, uuden lisäosan tai PHP-päivityksen jälkeen näet yhtäkkiä:
Tällä sivustolla on tapahtunut kriittinen virhe.tai täysin valkoisen sivun. Se tarkoittaa, että PHP on pysähtynyt vakavaan virheeseen (fatal error) ennen kuin sivua oli syntynyt (oppitunti 1.2). Yleensä syynä on lisäosa tai teema, joka ei sovi yhteen jonkin muun kanssa: toisen lisäosan, WordPressin uuden version tai PHP-version.
WordPress 5.2:sta lähtien WordPress tekee tällöin kaksi asiaa:
- se lähettää sähköpostin ylläpitäjän osoitteeseen, jossa kerrotaan, mikä lisäosa tai teema aiheutti virheen, ja mukana on erityinen linkki;
- tällä linkillä kirjaudut palautustilaan (recovery mode): hallinta toimii silloin, ja virheen aiheuttanut lisäosa on tilapäisesti pois käytöstä, joten voit päivittää, korvata tai poistaa sen.
Siksi on niin tärkeää, että ylläpitäjän osoite on sellainen, jota luet (oppitunti 2.2).
Etsi itse: vaiheet
Eikö sähköpostia tule, tai eikö palautustila toimi? Näin löydät vian itse.
1. Katso virhelokia
Virhe löytyy lähes aina verkkopalvelimen tai PHP:n virhelokista. DirectAdminissa se on verkkotunnuksesi lokien kohdalla. Etsi rivi, jossa lukee PHP Fatal error ja jonka aika vastaa yritystäsi:
PHP Fatal error: Uncaught Error: Call to undefined function create_function()
in /home/kayttaja/domains/example.com/public_html/wp-content/plugins/vanha-slider/slider.php:42Polku kertoo, kuka on syyllinen: tässä kansiossa vanha-slider oleva lisäosa. Rivin loppuosa kertoo syyn (tässä: funktio, joka on poistettu PHP 8:sta, oppitunti 8.4).
2. Ota debug-loki käyttöön (ei näytöllä näkyviä ilmoituksia)
Jos virhelokissa ei ole mitään hyödyllistä, lisää wp-config.php-tiedostoon (rivin ”That's all, stop editing!” yläpuolelle):
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );WordPress kirjoittaa silloin kaikki virheet tiedostoon wp-content/debug.log näyttämättä niitä kävijöille. Älä pidä tätä päällä kauemmin kuin on tarpeen: debug.log on kansiossa, jonka verkkopalvelin jakaa, ja kuka tahansa osoitteen tietävä voi lukea sen. Siinä on polkuja, joskus käyttäjänimiä ja muuta tietoa, josta on apua murtautujalle. Kytke se pois päältä etsinnän jälkeen ja poista debug.log. Voit myös antaa WordPressin kirjoittaa lokitiedoston verkkohakemiston ulkopuolelle antamalla WP_DEBUG_LOG-asetukselle polun (esimerkiksi '/home/kayttaja/logs/wp-debug.log', jos palveluntarjoajasi sallii sen). Oppitunnilla 7.4 tarkistat, ettei debug.log ole julkinen.
3. Lisäosan poistaminen käytöstä ilman hallintaa
Jos et pääse hallintaan, poista epäilty lisäosa käytöstä nimeämällä sen kansio uudelleen File Managerin tai SFTP:n kautta:
wp-content/plugins/vanha-slider muuttuu wp-content/plugins/vanha-slider-poisWordPress ei silloin enää löydä lisäosaa ja poistaa sen käytöstä. Jos et tiedä, mikä lisäosa on kyseessä, nimeä koko kansio plugins uudelleen nimelle plugins-pois: kaikki lisäosat poistuvat käytöstä. Jos sivusto silloin toimii, luo uusi tyhjä kansio plugins, palauta lisäosat yksi kerrallaan ja tarkista jokaisen jälkeen, palaako virhe. Sama pätee teemaan: nimeä aktiivisen teeman kansio uudelleen, niin WordPress siirtyy käyttämään oletusteemaa, jos sellainen on vielä asennettuna (oppitunti 2.4).
4. Ristiriidat ilman vakavaa virhettä
Kaikki ongelmat eivät ole kriittisiä virheitä. Joskus vain yksi toiminto ei toimi: painike ei tee mitään, lomake ei lähde tai editori latautuu puoliksi. Silloin kyse on usein ristiriidasta kahden lisäosan tai lisäosan ja teeman välillä. Tähän on kätevä virallinen lisäosa Health Check & Troubleshooting: sen vianmääritystilassa kaikki lisäosat poistetaan käytöstä ja vaihdetaan oletusteemaan vain sinun istunnossasi, kun taas kävijät näkevät sivuston normaalisti. Sen jälkeen otat ne käyttöön yksi kerrallaan, kunnes ongelma palaa.
Katso myös selaimesi konsolia (F12): JavaScript-virheissä mainitaan usein tiedosto ja sitä kautta lisäosa.
Sivuston eheys
Kohdassa Työkalut > Sivuston eheys WordPress tarkistaa itse sivustosi: vanhentunut PHP-versio, lisäosat ja teemat, jotka eivät ole käytössä, puuttuvat PHP-laajennukset, toimimaton REST API ja ajastetut tehtävät, jotka ovat jäljessä. Välilehdellä Tietoa näkyvät kaikki asennuksesi tiedot (versiot, polut, PHP-asetukset). Voit kopioida tämän välilehden tiedot ja liittää ne mukaan, kun pyydät apua. Käy katsomassa täältä jokaisen suuren muutoksen jälkeen.
Yhteenveto
- Käytöstä poistaminen jättää tiedostot paikalleen; poista lisäosat ja teemat, joita et käytä.
- Siivoa neljännesvuosittain, yksi lisäosa kerrallaan, varmuuskopion kanssa tai testiympäristössä.
- Kriittisen virheen sattuessa WordPress lähettää sähköpostin, jossa on linkki palautustilaan.
- Virheloki tai
debug.logkertoo syyllisen polun; kytke debug pois päältä etsinnän jälkeen, koska muutendebug.logon julkinen. - Ilman hallintaa poistat lisäosan käytöstä nimeämällä sen kansion uudelleen; ristiriitoja etsit vianmääritystilalla.
Tietovisa (quiz)
Tehtävä
Tehtävä A5.4: Eikö debug-lokisi ole julkinen? Syötä sivustosi osoite ja todista tehtävän antamalla koodilla, että sivusto on sinun (TXT-tietueella tai pienellä tiedostolla). Ohjelma pyytää osoitetta /wp-content/debug.log: tulos on hyvä, jos sitä ei ole olemassa tai pyyntö torjutaan (404 tai 403). Jos ohjelma saa takaisin tiedoston, tulos on punainen. Lisäksi ohjelma laskee, kuinka monta eri lisäosakansiota etusivusi HTML:ssä esiintyy (vain tiedoksi).
Tehtävä D5.4: Lisäosalistasi siivoaminen. Tee luettelo kaikista lisäosistasi (käytössä olevat ja käytöstä poistetut): nimi, käyttötarkoitus, tarvitaanko vielä (kyllä/ei), vaihtoehto ilman lisäosaa. Poista (varmuuskopion jälkeen tai testiympäristössä) lisäosat, joita ei enää tarvita, yksi kerrallaan, ja tarkista jokaisen poiston jälkeen, toimiiko sivusto vielä. Kirjaa, montako lisäosaa sinulla oli ja montako on jäljellä, ja merkitse, jäikö jäljelle lyhytkoodeja, jotka piti siivota.
Tehtävä D5.4: Lisäosalistasi siivoaminen
Tämän tehtävän teet itse, kukaan ei tarkista sitä. Merkitse tekemäsi kohdat ja merkitse tehtävä tehdyksi.
Määrä jälkeenpäin on pienempi tai yhtä suuri, ja jokaisen jäljelle jäävän lisäosan kohdalla on perustelu. Poista käyttämättömät lisäosat: myös pois päältä oleva koodi voi sisältää aukon.
Merkintäsi ja muistiinpanosi pysyvät vain tässä selaimessa, emme lähetä niitä minnekään. Jos olet kirjautunut sisään, tallennamme kohtaan Omat kurssit vain sen, että olet tehnyt tehtävän.
Lue lisää
Nämä artikkelit kuvaavat vaiheet WebOkén hallintapaneeleissa; muissa paneeleissa ne toimivat samaan tapaan.
- DirectAdmin-ohje 18.1: Sivustoni on valkoinen tai antaa virheen 500
- Virhe 500 tai "kriittinen virhe" sivustollasi (myös WordPress-päivityksen jälkeen)
- DirectAdmin-ohje 14.6: Virheet PHP-päivityksen jälkeen ja virhelokin löytäminen
- DirectAdmin-ohje 17.2: Site summary & logs: virhelogi ja käyttölogi
- Miten voin debugata PHP:tä muokkaamatta php.ini-tiedostoa?
- Virheenjäljitys WordPressissä (developer.wordpress.org, englanniksi): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
- WordPress-lisäosien valinta, arviointi ja siivous
