Moduuli 7 · 7.2
Mitä verkkokauppa vaatii webhotellilta
Moduuli 7: Löydettävyys ja webhotelli · Lukuaika: 10 minuuttia
Oppimistavoite: Tämän oppitunnin jälkeen osaat arvioida, sopiiko webhotellipaketti WooCommerce-kaupalle, tarkistaa ja muuttaa tärkeimmät PHP-asetukset ja tunnistaa, milloin paketti käy liian pieneksi.
Keskeiset käsitteet: palvelinsuositukset, PHP-versio, WordPressin muistiraja (WP_MEMORY_LIMIT), memory_limit, max_execution_time, max_input_vars, upload_max_filesize, tietokanta, objektivälimuisti, CPU, prosessit, 503, Resource Limit Is Reached, WooCommerce > Tila, kasvaminen
Verkkokauppa on raskaampi kuin tavallinen sivusto
Tavallinen WordPress-sivusto, jossa on sivuvälimuisti, palvelee useimpia kävijöitä tallennetusta HTML:stä. Verkkokauppa pystyy siihen vain osittain (oppitunti 6.4): ostoskori, kassa ja Oma tili luodaan jokaiselle kävijälle uudelleen, ja heti kun joku lisää jotain ostoskoriin, hän saa istunnon, eikä välimuisti usein enää toimi hänen kohdallaan. Lisäksi:
- jokainen tilaus kirjoittaa tietokantaan (tilaus, rivit, osoitteet, varasto, muistiinpanot);
- maksupalvelu ilmoittaa webhookilla, että maksu on tehty, ja tähän pyyntöön on vastattava nopeasti;
- WooCommercessa on ajastettuja toimintoja, jotka pyörivät taustalla (oppitunti 7.3);
- hallinta (tilaukset, raportit, tuotteiden muokkaus) on raskaampaa kuin blogissa.
Kauppa, joka toimii pienellä paketilla hyvin kymmenellä tilauksella päivässä, voi jumittua alennusmyynnissä, kun samaan aikaan on satoja kävijöitä. Siksi kannattaa tietää, mihin pakettisi pystyy.
Mitä WooCommerce suosittelee
WooCommerce julkaisee suositellut palvelinasetukset (tilanne marraskuussa 2026, versiolle 10.8 ja uudemmille):
| Osa | Suositus |
|---|---|
| WordPress | 6.9 tai uudempi |
| PHP | 8.3 tai uudempi (testattu versioon 8.4 asti) |
| Tietokanta | MySQL 8.0 tai uudempi, tai MariaDB 10.6 tai uudempi |
| WordPressin muistiraja | 256 Mt tai enemmän |
| HTTPS | pakollinen |
Nämä ovat suosituksia, eivät vähimmäisvaatimuksia: itse lisäosa vaatii asennukseen PHP 7.4:n. Vanhalla PHP-versiolla toimiva kauppa on kuitenkin hitaampi eikä saa enää tietoturvapäivityksiä. Turvallinen siirtyminen uudempaan PHP-versioon kuvataan WordPress-kurssin oppitunnilla 8.4. Prosessi on verkkokaupalle sama, mutta testaa kassa ja maksaminen testiympäristössä (staging) erityisen huolellisesti.
Mistä näet nykyiset arvot? Kohdasta WooCommerce > Tila (Järjestelmän tila). Siellä näkyvät WordPress-ympäristön alla muun muassa WordPressin muistiraja ja Palvelinympäristön alla PHP-versio, PHP:n rajat ja tietokannan versio. Ongelmatilanteissa kehittäjä tai lisäosan tuki pyytää usein tätä raporttia. Kopioit sen järjestelmäraportin hakupainikkeella ("Get system report").
Tärkeät PHP-asetukset
Verkkokaupassa törmäät useimmin neljään asetukseen:
- memory_limit (ja WP_MEMORY_LIMIT): kuinka paljon työmuistia yksi PHP-pyyntö saa käyttää. Liian pieni arvo johtaa valkoiseen sivuun tai virheeseen "Allowed memory size exhausted", usein raporttien, tuontien tai suuren muunnelmallisen tuotteen muokkauksen yhteydessä. WooCommerce suosittelee 256 Mt:n WordPressin muistirajaa. WordPress käyttää wp-config.php-tiedoston arvoa (
WP_MEMORY_LIMIT), mutta ei koskaan enempää kuin PHP itse sallii. - max_execution_time: kuinka kauan yksi pyyntö saa kestää. CSV-tuonti tai tuhannen tilauksen vienti voi kestää oletusta kauemmin. Tuo mieluummin pienemmissä osissa kuin nosta rajaa hyvin korkealle.
- max_input_vars: kuinka monta kenttää lomake saa lähettää. Kun muunnelmallisella tuotteella on paljon muunnelmia tai valikko on suuri, hallinta lähettää satoja kenttiä. Jos raja on liian pieni, viimeiset kentät hylätään hiljaa: klikkaat Päivitä, et näe virhettä, mutta osa muunnelmistasi ei tallentunut. Jos huomaat tämän, nosta arvoa (esimerkiksi 3000:een tai 5000:een) tai tee vähemmän muunnelmia (oppitunti 3.2).
- upload_max_filesize ja post_max_size: kuinka suuri lähetettävä tiedosto saa olla. Tärkeää tuotekuville ja ladattaville tuotteille (oppitunti 3.3).
Useimmissa webhotelleissa muutat näitä arvoja hallintapaneelissa. WebOkéssa se tehdään DirectAdminissa paketin PHP-asetuksissa (katso KB 212 ja KB 200). Muilla palveluntarjoajilla se toimii samaan tapaan, joskus .user.ini-tiedoston tai php.ini-näkymän kautta. Muuta yksi arvo kerrallaan ja tarkista kohdasta WooCommerce > Tila, että muutos on tullut voimaan.
Kun paketti käy liian pieneksi
Jaetussa webhotellissa jokaisella paketilla on rajat: kuinka paljon CPU:ta, kuinka paljon muistia ja kuinka monta prosessia samanaikaisesti. WebOkéssa ja muissa CloudLinuxia käyttävissä webhotelleissa näet ne DirectAdminissa paketin käyttötiedoista. Jos kauppasi ylittää ne, kävijät saavat virheen 503 tai ilmoituksen kuten "Resource Limit Is Reached". Verkkokaupassa tämä on erityisen ikävää: asiakas on juuri maksamassa, tai maksupalvelun webhook ei saa vastausta, jolloin maksettu tilaus jää tilaan "Odottaa maksua".
Selvitä ensin, mikä kuormituksen aiheuttaa, ennen kuin otat isomman paketin. Verkkokauppojen yleisimmät syyt:
- sivuvälimuisti puuttuu tai on asetettu väärin (oppitunti 6.4);
- botit, jotka käyvät läpi suodattimia, hakutuloksia tai
?add-to-cart=-linkkejä; - WP-Cron jokaisella käynnillä ja täysi ajastettujen toimintojen jono (oppitunti 7.3);
- raskaat lisäosat tai teema, joka tekee jokaisella sivulla paljon tietokantakyselyjä;
- objektivälimuisti puuttuu (Redis), vaikka kirjautuneita asiakkaita on paljon (oppitunti 6.4).
Syyn löytämiseen auttavat paketin käyttöyhteenveto, lokit ja joissakin webhotelleissa työkalu kuten PHP X-Ray, joka näyttää sivukohtaisesti, mikä funktio on hidas (KB 227).
Jos kauppa on määritetty hyvin ja rajat tulevat silti vastaan, kasvaminen on perusteltua: isompi paketti tai oma palvelin (VPS), jolla päätät itse, kuinka monta PHP-prosessia saa olla käynnissä. Tämä askel vaatii myös enemmän ylläpitoa. Älä suunnittele sitä kiireisimmän viikkosi keskelle, ja testaa ensin uudessa paikassa (oppitunti 7.3).
Mitä muuta verkkokauppa tarvitsee
PHP:n lisäksi verkkokauppa vaatii webhotellilta:
- HTTPS:n ja varmenteen automaattisen uusimisen (WordPress-kurssi, oppitunti 3.1);
- varmuuskopiot, joita otetaan tilauksiisi nähden riittävän usein, ja palautustestin (oppitunti 6.2);
- oikean cronin ajastetuille tehtäville (oppitunti 7.3);
- luotettavan sähköpostin tai yhteyden sähköpostipalveluun (oppitunti 6.1);
- testiympäristön (staging) mahdollisuuden (oppitunti 7.3);
- riittävän suuren tietokannan: tilaukset ja ajastetut toiminnot kasvavat joka päivä.
Theehuis Examplen kauppa aloitti tavallisella webhotellipaketilla. Alennusta sisältäneen uutiskirjeen jälkeen tunnissa tuli enemmän liikennettä kuin tavallisesti viikossa, ja maksut jäivät jumiin. Käyttöyhteenvedossa prosessien enimmäismäärä oli jatkuvasti täynnä. Syy: sivuvälimuisti oli pois päältä teemapäivityksen jälkeen. Välimuisti päälle uudelleen, ja seuraava kampanja sujui ilman 503-virhettä.
Yhteenveto
- Verkkokauppa on raskaampi kuin tavallinen sivusto: dynaamiset sivut, tietokantaan kirjoittaminen, webhookit ja ajastetut toiminnot.
- WooCommerce suosittelee PHP 8.3+, MySQL 8.0+ tai MariaDB 10.6+, 256 Mt:n muistirajaa ja HTTPS:ää. Näet arvosi kohdasta WooCommerce > Tila.
- Kiinnitä huomiota asetuksiin memory_limit, max_execution_time, max_input_vars (tietoja katoaa hiljaa, kun muunnelmia on paljon) ja latausrajoihin.
- 503 tai Resource Limit Is Reached tarkoittaa, että paketin rajat ovat täynnä. Etsi ensin syy, kasva vasta sitten.
Tietovisa (quiz)
Tehtävä
Tehtävä A7.2: Sopiiko PHP-versiosi WooCommercelle? Avaa WooCommerce > Tila ja kirjaa ylös PHP-versio (Palvelinympäristö) ja WordPressin muistiraja megatavuina (WordPress-ympäristö). Syötä kauppasi osoite ja nämä kaksi arvoa. Ohjelma etsii PHP-versiosi sarjan php.net-sivuston taulukosta (mitkä versiot saavat vielä päivityksiä) ja tarkistaa, näyttääkö etusivu otsakerivin X-Powered-By, jossa on PHP-versio. Vihreä, jos sarjaasi tuetaan vielä aktiivisesti ja se on vähintään 8.3, ja muistiraja on vähintään 256. Oranssi, jos sarjasi saa enää vain tietoturvapäivityksiä, on alle 8.3 mutta vielä tuettu, jos muistiraja on 128 ja 255 välillä, tai jos sivustosi näyttää PHP-version otsakerivillä. Punainen, jos sarjasi ei saa enää päivityksiä tai on tuntematon, muistiraja on alle 128, tai otsakerivi näyttää eri sarjan kuin syötit ("onko käytössä useita PHP-versioita?").
Kysymys itsellesi (ei tarkisteta): mitä kohdassa WooCommerce > Tila lukee max_input_vars-asetuksen ja suurimman latauskoon kohdalla? Riittääkö se suurimmalle tuotteellesi ja suurimmalle ladattavalle tiedostollesi?
Lue lisää
Nämä artikkelit kuvaavat vaiheet WebOkén hallintapaneeleissa. Muissa paneeleissa ne toimivat samaan tapaan.
- PHP-version ja PHP-asetusten muuttaminen (ja mitä tehdä, jos päivityksen jälkeen ilmenee virheitä)
- Lataaminen ei onnistu: nosta arvoja upload_max_filesize ja max_execution_time
- DirectAdmin-ohje 14.1: PHP-version valinta (Select PHP version)
- DirectAdminin Resource Usage ja hitaat verkkosivustot (Resource Limit Is Reached)
- DirectAdmin-ohje 17.5: 503 of 'Resource Limit Is Reached': mitä nyt?
- Ilmainen WordPress-kurssi 8.4: PHP-versiot ja päivitykset
- Server requirements (woocommerce.com, englanniksi): https://woocommerce.com/document/server-requirements/
