Kestääkö sivujesi latautumisessa pitkään? Eikö jokin sivun osa näytä toimivan ollenkaan? Sivuston hidastuminen tai toimintahäiriöt herättävät turhautumisen tunteita – varsinkin, jos ongelmien juurisyy ei ole heti ilmeinen. Syytä huoleen ei kuitenkaan, sillä vikojen selvittelyyn on olemassa monia työkaluja. Näillä vinkeillä pääset alkuun ja tiedät, miten selvitelet sivustosi vaivoja!
Oikeilla työkaluilla diagnosoit ja korjaat ongelmia käden käänteessä. Vaikka sivustosi näyttäisikin toimivan mainiosti, on hyvä idea tarkistaa tilanne aika ajoin, jotta sivustosi pysyy kunnossa ja toimii optimaalisesti. Jos haluat sivustostasi vakaan ja suorituskykyisen, kannattaa tutustua vianetsintään eli debuggaukseen.
”Debuggaus eli virheenjäljitys on ohjelmistotuotannon osa, jossa testauksessa löytyneen virheellisen toiminnan aiheuttanut virhe paikallistetaan.”
Wikipedia
Tässä artikkelissa tarkastelemme, miten vianetsintää kannattaa lähestyä WordPressissä, ja mitä työkaluja Seravon hosting tarjoaa työn helpottamiseksi ja nopeuttamiseksi.
WordPress-vianetsinnän perusteet
Ennen kuin syvennytään edistyneempiin työkaluihin, tässä on perusasiat, jotka jokaisen WordPress-sivuston omistajan, ylläpitäjän tai kehittäjän olisi hyvä tietää sivuston virheitä selvitellessä.

1. Ota WordPressin vianetsintätila käyttöön
Vianetsintätila (debugging mode) tarkoittaa sitä, että koodissa kohdatut virheet kirjataan lokitiedostoon. Ne myös näytetään suoraan selaimessa sivun latautuessa, jolloin sinun ei tarvitse tarkastella lokitiedostoja erikseen. Näin voit heti saada käsityksen siitä, missä ongelma piilee: onko syypäänä virheellisesti toimiva lisäosa, teema tai kenties sinne itse lisätty custom-koodi.
Voit laittaa sivustollasi vianetsintätilan päälle muokaamalla sivuston wp-config.php-tiedostoa. Tiedosto sijaitsee sivustosi juurihakemistossa (htdocs). Seravon ympäristössä polku on /data/wordpress/htdocs/. Tarkempia tietoja hakemistorakenteesta löydät Seravon tietopankista.
Lisää (tai muokkaa) seuraavat rivit ennen tekstiä /* That's all, stop editing! Happy blogging. */:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true );

- WP_DEBUG: Aktivoi vianetsintätoiminnon.
- WP_DEBUG_LOG: Kirjaa kaikki virheet määriteltyyn tiedostoon.
- WP_DEBUG_DISPLAY: Näyttää virheet suoraan selaimessa. Ota käyttöön vain, jos työskentelet testiympäristössä (varjo) tai julkaisemattomalla sivustolla. Livenä olevalla sivustolla tämän tulisi aina olla ’false’, jotta virheilmoitukset eivät näy sivustosi kävijöille.
Jos käytät Seravolla varjoympäristöä (staging), debugging on päällä oletuksena.
2. Etsi syyllinen
Tämä on debuggauksen kriittisin vaihe. Syyllisen rajaaminen ja ongelman todellisen aiheuttajan löytyminen ei ole aina läpihuutojuttu, vaan tutkimiseen voi joutua käyttämään hieman aikaa ja vaivaa.
Jos sivusto rikkoutuu välittömästi esimerkiksi lisäosan päivityksen tai asennuksen jälkeen, on syyllinen todennäköisesti kyseinen lisäosa. Jos ongelma taas ilmenee satunnaisesti tai alkaa niin ettei sivustolle ole tehty muutoksia, kokeile tätä:
- Poista kaikki lisäosat väliaikaisesti käytöstä. Jos ongelma poistuu, yksi lisäosista on virheet aiheuttava syyllinen. Aktivoi lisäosat yksi kerrallaan ja katso, miten sivusto latautuu jokaisen välissä. Kun aktivoit virheitä aiheuttavan lisäosan, ongelma palaa sivustolle.
- Vaihda sivuston teema väliaikaisesti. Vaihda oletusteemaan (kuten jokin Twenty-teemoista) ja katso, miten sivusi latautuu. Jos ongelma poistuu, syy on käyttämässäsi teemassa.

Vianetsintätyökalut Seravolla
Seravon WordPress-palvelupaketti tarjoaa kehittäjille tehokkaita työkaluja vianetsinnän nopeuttamiseksi. Työkalut aivan jokaiseen palvelupakettiin, ja ovat käytettävissä sekä Seravo Pluginin kautta että komentoriviltä (SSH-yhteyden yli).
WordPress-lokit
Kun sivustosi on Seravolla, tärkeimmät lokitiedostot on koottu hakemistoon /data/log/. Tässä ovat tärkeimmät vianetsinnän kannalta:
| Lokitiedosto | Käyttötarkoitus |
| php-error.log | Kerää kaikki PHP-virheet, huomautukset ja varoitukset. Tärkein loki vianetsinnässä. |
| nginx-access.log | Kirjaa kaikki sivustollesi tehdyt HTTP-pyynnöt. |
| nginx-error.log | Kirjaa www-palvelimeen (NGINX) liittyvät virheet. |
| sql.log | Ei vakio-ominaisuus, mutta tietokantakyselyiden analysointiin voi käyttää Query Monitor -lisäosaa (katso alta). |
Vinkki: wp-watch-logs
Seravolla voit käyttää seuraavaa apukomentoa lokien seuraamiseen reaaliajassa. Kirjaudu sisään sivustollesi SSH:lla ja aja komento wp-watch-logs.
$ wp-watch-logs
Kyseinen komento seuraa tärkeimpiä lokitiedostoja livenä. Kokeile ladata sivustosi selaimessa uudelleen niin näet, miten tuloste muuttuu. Komennon avulla näet siis tarkalleen, mitä sivustollasi tapahtuu, kun siellä vieraillaan.

Lisäosia vianetsintään
Jos kaipaat käyttöösi enemmän diagnostiikkaa, WordPressille on olemassa jos jonkinmoisia lisäosia. Tässä pari mainintaa kokeiltavaksi!
Query Monitor – Dataa erityisesti kehittäjille
Query Monitor on yksi suosituimmista vianetsintälisäosista WordPressille. Se lisää hallintapaneeliin (wp-admin) näkymän yksityiskohtaisille tiedoille, kuten…
- Tietokantakyselyt: Näyttää hitaat kyselyt tai tietokantavirheet.
- PHP-virheet: Näyttää PHP-koodissa esiintyvät virheet, varoitukset ja huomautukset.
- HTTP API -kutsut: Näyttää ulkoiset (sivustosi tekemät) HTTP-pyynnöt ja niiden saamat vastauskoodit.
- Skriptit ja tyylit: Listaa ladatut tiedostot ja mahdollisesti rikki menneet riippuvuudet.
Vinkki: Query Monitor
Suosittelemme aktivoimaan Query Monitorin ainoastaan vianetsinnän ajaksi, sillä sen käyttö voi hieman hidastaa sivuston toimintaa.
Vertaile Query Monitorin tietoja sivuston lokitiedostoihin saadaksesi kuvan siitä, mikä aiheuttaa ongelmia sivustollasi.
Log HTTP Requests – Seuraa sivustosi tekemiä pyyntöjä
Log HTTP Requests -lisäosa valvoo ja lokittaa jokaisen WordPress-sivustosi tekemän, ulospäin suuntautuvan HTTP-pyynnön, joka käyttää WordPress HTTP API -rajapintaa.
Monet WordPress-lisäosat viestivät ulkoisten palveluiden kanssa ja muodostavat integraatioita eri järjestelmien välille. Tällaisia sivuston toimintaan liittyviä palveluita ja järjestelmiä ovat esimerkiksi maksunvälittäjät, sisällönjakeluverkostot (CDN), SMTP-palvelut, sosiaalisen median syötteet tai vaikkapa karttapalvelut (API). Jos ulkoinen palvelu on hidas tai ei vastaa, sivustosi saattaa jumiutua tai sen toiminnot voivat rikkoutua.
Log HTTP Requests näyttää pyynnön osoitteen (URL), saadun vastauskoodin sekä pyyntöön kuluneen ajan. Tämä auttaa tunnistamaan ulkoisiin palveluihin liittyvät hitaat pyynnöt tai epäonnistuneet yhteydet. Voit lukea lisää HTTP-pyynnöistä ja virhekoodeista aiemmasta blogikirjoituksestamme.
Seravo Plugin – Tutki ja paranna WordPressin suorituskykyä
Seravo Plugin on käytettävissä suoraan WordPressin ohjauspaneelissa (wp-admin). Se integroi välttämättömät ylläpito- ja vianmääritysominaisuudet saumattomasti sivustoosi, mikä helpottaa ylläpitotehtäviä, jotka muuten vaatisivat SSH-yhteyden tai komentorivin käyttöä.
Kun sivustosi on ylläpidossa Seravolla, löydät Seravo Pluginin asetukset WordPressin ohjausnäkymästä Työkalut-valikon alta.
Kun sivustosi on ylläpidettävänä Seravolla ja selvittelet sivustoosi liittyviä ongelmia, Seravo Plugin tarjoaa avuksesi seuraavat ominaisuudet:
- Lokit – Seravo Plugin tarjoaa graafisen käyttöliittymän kriittisimpien lokitiedostojen (kuten
php-error.log,nginx-access.logjaupdate.log) uusimpien merkintöjen tarkasteluun. Tämä on helpoin tapa tarkistaa sivuston virheet nopeasti. - Sivuston tila – Tämä näkymä sisältää tietoa sivustosi automaattisista päivityksistä, tietoturvatarkistuksista ja varmuuskopioista sekä muista sivuston optimointiasetuksista.
- Välimuistin hallinta – Mahdollistaa eri välimuistitasojen tyhjentämisen helposti yhdellä klikkauksella. Hyödyllistä vianselvityksessä, jotta tehdyt muutokset saadaan näkyviin. (Varjoympäristöissä välimuisti on tosin pois päältä.)
Lisää Seravo Pluginin ominaisuuksia löydät Seravon tietopankista.

Xedbug – Edistynyttä ongelmanselvittelyä ja optimointia
Tarvitsetko syvällisempää tietoa siitä, kuinka PHP-koodi suoriutuu sivustollasi? Edistyneempiin vianmääritystilanteisiin ja WordPressin suorituskyvyn optimointiin suosittelemme varta vasten koodin profilointiin tarkoitettua työkalua, kuten Xdebugia. Se on avoimen lähdekoodin liitännäinen PHP:lle, ja sitä voidaan käyttää sekä ongelmanselvittelyyn että varsinaiseen koodiprofilointiin.
WordPress ja sen ominaisuudet perustuvat koukkuihin (hooks), toimintoihin (actions) ja funktioihin (functions). Jos haluat selvittää, mitkä osaset WordPress-asennuksessasi (teema, lisäosat tai WP:n ydin) kuluttavat eniten resursseja, Xdebug on oikea työkalu. Sen avulla on helpompi määrittää, mikä tarkalleen hidastaa sivustoasi.
Mitä Xdebug tekee
Mitä Xdebug tarkalleen ottaen tekee? Se kirjaa ylös, miten PHP-koodia suoritetaan: näyttää funktioiden nimet, niiden suoritusjärjestyksen sekä kunkin funktion kuluttaman ajan ja muistin määrän. Tietojen avulla voit paikantaa WordPress-sivustosi suorituskyvyn pullonkaulat, eli funktiot jotka kuluttavat paljon muistia tai vievät paljon aikaa.
Vaikka Xdebugin tuottama tieto voi sinällään olla vaikea tulkita, avuksi voi ottaa työkalun datan visualisointia varten, kuten Webgrind tai Graphviz. Työkalut nopeuttavat ja helpottavat pullonkaulojen havaitsemista.
Xdebugin keräämän datan avulla voit tehdä sivustollasi muutoksia, jotka parantavat sen suorituskykyä ja nopeuttavat latausaikoja. Lisätietoja Xdebugin käytöstä löydät tietopankkimme ohjeista.
Tämän datan avulla voit toteuttaa sivustollesi suorituskykyparannuksia ja saada sen latautumaan huomattavasti nopeammin. Jos olet kiinnostunut oppimaan lisää Xdebugista ja sen käytöstä Seravolla, tutustu tietopankkimme ohjeisiin.
Viimeiset vinkit vianselvittelyyn
Muista aina käyttää vianselvittelyssä sivustokehittämiseen tarkoitettua staging-ympäristöä (eli varjoa)! Älä koskaan tee vianmääritystä tai webkehitystä suoraan julkisella sivustolla. Seravo tarjoaa käyttöösi varjoympäristön, joka on kopio varsinaisesta sivustostasi. Sen avulla voit testata muutoksia ja korjata virheitä ilman, että se vaikuttaa sivustosi kävijöihin. Jos sinulla ei ole vielä pääsyä kehitysympäristöön sivustollasi, ota meihin yhteyttä.
Jos ongelmat sivustollasi jatkuvat kaikista vianmääritysyrityksistä huolimatta, muista, että voit kääntyä Seravon WordPress-asiantuntijoiden puoleen. Asiakaspalvelumme auttaa sinua paikantamaan ja ratkaisemaan mahdolliset ongelmat sivustoosi liittyvissä asioissa, olivat bugit pieniä tai suuria.
Onnea ongelmanselvittelyyn!

