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 ja löytää sekä ratkaista itse konfliktin tai valkoisen sivun ongelman.
Keskeiset käsitteet: poistaminen käytöstä vs. poistaminen, käyttämätön koodi, kriittinen virhe, palautustila (recovery mode), Sivuston eheys, ongelmanratkaisutila, lisäosakansion uudelleennimeäminen, WP_DEBUG, WP_DEBUG_LOG, debug.log, virheloki
Pois päältä ei tarkoita poistettua
Lisäosat-sivulla voit poistaa käytöstä tai poistaa lisäosan. Ero on tämä:
- Poistaminen käytöstä: WordPress ei enää lataa lisäosaa. Mutta tiedostot jäävät kansioon
wp-content/plugins/ja ne ovat usein edelleen suoraan haettavissa verkkopalvelimen kautta. Jos lisäosan yksittäisessä PHP-tiedostossa on tietoturva-aukko, se on edelleen olemassa. Murtautujat skannaavat tunnettuja haavoittuvia tiedostoja, eivät aktiivisia lisäosia. - Poistaminen: tiedostot häviävät. Jotkin lisäosat siivoavat poistettaessa myös asetuksensa ja tietokantataulunsa, toiset jättävät ne paikalleen.
Jos et enää käytä jotain lisäosaa, poista se. Käytöstä poistaminen on vain väliaikaista (ongelmaa etsiessä). Sama koskee teemoja (oppitunti 2.4).
Siivoaminen: kiinteä kierros
Käy lisäosasi läpi kerran neljänneksessä (oppitunti 9.4). Jokaisen lisäosan kohdalla:
- Mihin se on? Jos et enää muista, selvitä se. Usein käy ilmi, että lisäosa asennettiin joskus yhtä asiaa varten eikä sitä koskaan poistettu.
- Käytetäänkö sitä yhä? Liukulisäosa, vaikka missään ei ole liukua, lomakelisäosa, vaikka yhteydenottosivullasi on toinen lomake.
- Pärjääkö ilman sitä? Osaako WordPress, teema tai joku toinen lisäosa saman jo valmiiksi (oppitunti 5.3)?
- Onko sitä yhä ylläpidetty? Milloin viimeksi päivitetty, löytyykö se yhä lisäosahakemistosta?
Tee siivous ensin testiympäristössä (oppitunti 8.3) tai ota ainakin varmuuskopio, ja poista lisäosat yksi kerrallaan, jotta tiedät mikä meni pieleen, jos jotain menee pieleen. Varo lyhytkoodeja: jos poistat lisäosan, joka tuotti koodin [formulier id="2"], teksti jää sen jälkeen sellaisenaan näkyviin sivullesi.
Kun jokin menee pieleen: kriittinen virhe
Päivityksen, uuden lisäosan tai PHP-version päivityksen jälkeen näet yhtäkkiä:
Sivustolla on ollut kriittinen virhe.tai täysin valkoisen sivun. Tämä tarkoittaa, että PHP pysähtyi fataaliin virheeseen ennen kuin sivu ehti muodostua (oppitunti 1.2). Yleensä syynä on lisäosa tai teema, joka ei toimi yhteen jonkin muun kanssa: toisen lisäosan, WordPressin uuden version tai PHP-version kanssa.
WordPress 5.2:sta lähtien WordPress tekee silloin kaksi asiaa:
- se lähettää sähköpostin ylläpitäjän osoitteeseen, jossa kerrotaan mikä lisäosa tai teema aiheutti virheen, sekä erityisen linkin;
- sillä linkillä kirjaudut palautustilaan (recovery mode): hallinta toimii silloin virheen aiheuttanut lisäosa tilapäisesti pois päältä kytkettynä, jotta voit päivittää, vaihtaa tai poistaa sen.
Siksi on niin tärkeää, että luet ylläpitäjän osoitteeseen tulevat sähköpostit (oppitunti 2.2).
Itse etsiminen: vaiheet
Eikö sähköpostia tule, tai eikö palautustila toimi? Näin löydät ongelman itse.
1. Katso virhelokista
Virhe löytyy lähes aina verkkopalvelimen tai PHP:n virhelokista. DirectAdminissa se löytyy verkkotunnuksesi lokien alta. Etsi rivi, jossa lukee PHP Fatal error ja yritysajankohtasi:
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:42Polku kertoo kuka on syyllinen: tässä esimerkissä lisäosa kansiossa oude-slider. Rivin loppuosa kertoo miksi (tässä: funktio, joka on poistettu PHP 8:ssa, oppitunti 8.4).
2. Käynnistä debug-loki (ei näyttöilmoitusta)
Jos virhelokista ei löydy mitään hyödyllistä, lisää tiedostoon wp-config.php (ennen riviä "stop met bewerken"):
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ä jätä tätä päälle pidemmäksi aikaa kuin tarpeen: debug.log sijaitsee kansiossa, jota verkkopalvelin tarjoaa, ja kuka tahansa osoitteen tunteva voi lukea sen. Siinä on polkuja, joskus käyttäjätunnuksia ja muuta tietoa, joka auttaa murtautujaa. Sammuta se etsinnän jälkeen ja poista debug.log. Tai anna WordPressin kirjoittaa lokitiedosto verkkokansion ulkopuolelle määrittämällä WP_DEBUG_LOG-kohtaan polku (esimerkiksi '/home/gebruiker/logs/wp-debug.log', jos webhotellisi sallii sen). Oppitunnilla 7.4 tarkistat, ettei debug.log ole julkinen.
3. Lisäosan sammuttaminen ilman hallintaa
Jos et pääse hallintaan, sammuta epäilyttävä lisäosa nimeämällä uudelleen sen kansio File Managerin tai SFTP:n kautta:
wp-content/plugins/oude-slider wordt wp-content/plugins/oude-slider-uitWordPress ei silloin enää löydä lisäosaa ja sammuttaa sen. Jos et tiedä kumpi lisäosa on syyllinen, nimeä koko kansio plugins uudelleen nimellä plugins-uit: kaikki lisäosat sammuvat. Jos sivusto toimii silloin, luo uusi tyhjä kansio plugins, palauta lisäosat yksi kerrallaan takaisin ja tarkista jokaisen lisäosan jälkeen palaako virhe. Sama koskee teemaa: nimeä aktiivisen teeman kansio uudelleen, niin WordPress palaa oletusteemaan, jos sellainen on vielä asennettuna (oppitunti 2.4).
4. Ristiriidat ilman fataalia virhettä
Kaikki ongelmat eivät ole kriittisiä virheitä. Joskus vain yksi toiminto ei toimi: painike ei tee mitään, lomake ei lähde, editori latautuu vain puoliksi. Silloin kyse on usein kahden lisäosan tai lisäosan ja teeman välisestä ristiriidasta. Tähän sopii virallinen lisäosa Health Check & Troubleshooting: ongelmanratkaisutilassa se sammuttaa kaikki lisäosat vain omassa istunnossasi ja vaihtaa oletusteemaan, kun taas kävijät näkevät edelleen tavallisen sivuston. Sen jälkeen kytket lisäosat yksi kerrallaan takaisin päälle, kunnes ongelma palaa.
Katso myös selaimesi konsolia (F12): JavaScript-virheet mainitsevat usein tiedoston ja sitä kautta lisäosan.
Sivuston eheys
Kohdassa Työkalut > Sivuston eheys WordPress tarkistaa sivustosi itse: vanhentunut PHP-versio, lisäosat ja teemat jotka eivät ole aktiivisia, puuttuvat PHP-laajennukset, REST API joka ei toimi, ajastetut tehtävät jotka ovat jäljessä. Tiedot-välilehdellä on kaikki asennuksesi tiedot (versiot, polut, PHP-asetukset). Tämän välilehden sisällön voit kopioida ja lähettää mukaan, kun pyydät apua. Tarkista tämä jokaisen ison muutoksen jälkeen.
Yhteenveto
- Käytöstä poistaminen jättää tiedostot paikalleen; poista lisäosat ja teemat, joita et käytä.
- Siivoa joka neljännes, 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; sammuta debug-tila etsinnän jälkeen, sillä muutendebug.logon julkinen. - Ilman hallintaa sammutat lisäosan nimeämällä sen kansion uudelleen; ristiriidat etsit ongelmanratkaisutilan avulla.
Tietovisa
Tehtävä
Tehtävä A5.4: Eikö debug-lokisi ole julkinen? Täytä sivustosi osoite ja todista tehtävän antamalla koodilla (TXT-tietue tai pieni tiedosto), että kyseessä on oma sivustosi. Ohjelma hakee osoitteen /wp-content/debug.log: hyvä tulos on, ettei tiedosto ole olemassa tai pääsy evätään (404 tai 403). Jos ohjelma saa tiedoston takaisin, tulos on punainen. Lisäksi ohjelma laskee kuinka monta eri lisäosakansiota etusivusi HTML-koodissa esiintyy (vain tiedoksi).
Tehtävä D5.4: Lisäosalistasi siivoaminen. Tee lista kaikista lisäosistasi (aktiiviset ja ei-aktiiviset): nimi, käyttötarkoitus, vieläkö tarpeellinen (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 yhä. Merkitse muistiin kuinka monta lisäosaa sinulla oli ja kuinka monta jäi jäljelle, ja kirjaa 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 paneeleissa; muissa paneeleissa toiminta on vastaavaa.
- DirectAdmin-ohje 18.1: Sivustoni on valkoinen tai antaa virheen 500
- Virhe 500 tai "kriittinen virhe" verkkosivustollasi (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?
- WordPressin debuggaus (developer.wordpress.org, englanniksi): https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
