Module 7 · 7.2
Wat een shop van hosting vraagt
Module 7: Gevonden worden en hosting · Leestijd: 10 minuten
Leerdoel: Na deze les kun je beoordelen of een hostingpakket past bij een WooCommerce-shop, de belangrijkste PHP-instellingen controleren en aanpassen, en herkennen wanneer je pakket te klein wordt.
Kernbegrippen: serveraanbevelingen, PHP-versie, WordPress-geheugenlimiet (WP_MEMORY_LIMIT), memory_limit, max_execution_time, max_input_vars, upload_max_filesize, database, objectcache, CPU, processen, 503, Resource Limit Is Reached, WooCommerce > Status, groeien
Een shop is zwaarder dan een gewone site
Een gewone WordPress-site met een paginacache serveert de meeste bezoekers vanuit opgeslagen HTML. Een shop kan dat maar half (les 6.4): winkelwagen, afrekenen en Mijn account worden voor elke bezoeker opnieuw gemaakt, en zodra iemand iets in de winkelwagen legt, krijgt hij een sessie en gaat de cache voor hem vaak niet meer op. Daarbovenop:
- elke bestelling schrijft naar de database (bestelling, regels, adressen, voorraad, notities);
- de betaalprovider meldt via een webhook dat er betaald is, en dat verzoek moet snel antwoord krijgen;
- WooCommerce heeft geplande acties die op de achtergrond draaien (les 7.3);
- het beheer (bestellingen, rapporten, producten bewerken) is zwaarder dan bij een blog.
Een shop die op een klein pakket prima loopt met tien bestellingen per dag, kan in een uitverkoop met honderden gelijktijdige bezoekers vastlopen. Daarom loont het om te weten wat je pakket kan.
Wat WooCommerce aanbeveelt
WooCommerce publiceert aanbevolen serverinstellingen (stand november 2026, voor versie 10.8 en later):
| Onderdeel | Aanbeveling |
|---|---|
| WordPress | 6.9 of hoger |
| PHP | 8.3 of hoger (getest tot en met 8.4) |
| Database | MySQL 8.0 of hoger, of MariaDB 10.6 of hoger |
| WordPress-geheugenlimiet | 256 MB of meer |
| HTTPS | verplicht |
Dat zijn aanbevelingen, geen minimum: de plugin zelf vraagt PHP 7.4 om te installeren. Maar een shop op een oude PHP-versie is trager en krijgt geen beveiligingsupdates meer. Hoe je veilig naar een nieuwere PHP-versie gaat, staat in de WordPress-cursus, les 8.4; dat proces is voor een shop hetzelfde, alleen test je het afrekenen en de betaling extra goed in staging.
Waar zie je wat je nu hebt? In WooCommerce > Status (Systeemstatus). Daar staan onder WordPress-omgeving onder meer de WordPress-geheugenlimiet, en onder Serveromgeving de PHP-versie, de PHP-limieten en de databaseversie. Bij problemen vraagt een ontwikkelaar of de supportafdeling van een plugin vaak om dit rapport; met de knop om het systeemrapport op te halen ("Get system report") kopieer je het.
De PHP-instellingen die ertoe doen
Vier instellingen kom je bij een shop het vaakst tegen:
- memory_limit (en WP_MEMORY_LIMIT): hoeveel werkgeheugen één PHP-verzoek mag gebruiken. Te weinig geeft een witte pagina of "Allowed memory size exhausted", vaak bij rapporten, imports of het bewerken van een groot variabel product. WooCommerce raadt een WordPress-geheugenlimiet van 256 MB aan. WordPress gebruikt de waarde uit wp-config.php (
WP_MEMORY_LIMIT), maar nooit meer dan PHP zelf toestaat. - max_execution_time: hoe lang één verzoek mag duren. Een CSV-import of een export van duizend bestellingen kan langer duren dan de standaard. Liever in kleinere delen importeren dan de limiet heel hoog zetten.
- max_input_vars: hoeveel velden een formulier mag versturen. Bij een variabel product met veel variaties, of een groot menu, stuurt het beheer honderden velden mee. Is de limiet te laag, dan worden de laatste velden stilzwijgend weggegooid: je klikt op Bijwerken, ziet geen fout, maar een deel van je variaties is niet opgeslagen. Merk je dat, verhoog de waarde dan (bijvoorbeeld naar 3000 of 5000) of maak minder variaties (les 3.2).
- upload_max_filesize en post_max_size: hoe groot een upload mag zijn. Van belang voor productfoto's, en voor downloadbare producten (les 3.3).
Bij de meeste hosters pas je deze waarden aan in het paneel. Bij WebOké gaat dat in DirectAdmin bij de PHP-instellingen van je pakket (zie KB 212 en KB 200); bij andere aanbieders werkt het vergelijkbaar, soms via een .user.ini of een php.ini-scherm. Verander één waarde tegelijk en controleer in WooCommerce > Status of hij is overgenomen.
Wanneer het pakket te klein wordt
Op gedeelde hosting heeft elk pakket grenzen: hoeveel CPU, hoeveel geheugen en hoeveel processen tegelijk. Bij WebOké en andere hosters met CloudLinux zie je ze in DirectAdmin bij het gebruik van je pakket. Gaat je shop erover heen, dan krijgen bezoekers een 503 of een melding als "Resource Limit Is Reached". Bij een shop is dat extra vervelend: een klant die net wil betalen, of een webhook van de betaalprovider die geen antwoord krijgt, waardoor een betaalde bestelling op "Wachtend op betaling" blijft staan.
Kijk eerst wat de belasting veroorzaakt voordat je een groter pakket neemt. De meest voorkomende oorzaken bij shops:
- geen of een verkeerd ingestelde paginacache (les 6.4);
- bots die door filters, zoekresultaten of
?add-to-cart=-links lopen; - WP-Cron bij elk bezoek en een volle wachtrij van geplande acties (les 7.3);
- zware plugins of een thema dat op elke pagina veel databasevragen doet;
- geen objectcache (Redis) bij veel ingelogde klanten (les 6.4).
Hulpmiddelen om het te vinden zijn het gebruiksoverzicht van je pakket, de logboeken en bij sommige hosters een hulpmiddel als PHP X-Ray dat per pagina laat zien welke functie traag is (KB 227).
Is de shop goed ingericht en loop je toch tegen de grenzen aan, dan is groeien terecht: een groter pakket, of een eigen server (VPS) waarop je zelf bepaalt hoeveel processen PHP mag draaien. Die stap vraagt ook meer beheer. Plan hem niet midden in je drukste week; test eerst op de nieuwe plek (les 7.3).
Wat verder bij een shop hoort
Naast PHP vraagt een shop van zijn hosting:
- HTTPS met automatische verlenging van het certificaat (WordPress-cursus, les 3.1);
- back-ups die vaak genoeg zijn voor je bestellingen, met een terugzettest (les 6.2);
- echte cron voor geplande taken (les 7.3);
- betrouwbare mail of een koppeling met een maildienst (les 6.1);
- een staging-mogelijkheid (les 7.3);
- een database die groot genoeg is: bestellingen en geplande acties groeien elke dag.
Bij Theehuis Example begon de shop op een gewoon hostingpakket. Na een nieuwsbrief met korting kwam er in een uur meer verkeer dan normaal in een week, en betalingen bleven hangen. In het gebruiksoverzicht stond het maximum aantal processen steeds bereikt. Oorzaak: de paginacache stond uit na een thema-update. Cache weer aan, en de volgende actie verliep zonder 503.
Samenvatting
- Een shop is zwaarder dan een gewone site: dynamische pagina's, databaseschrijfacties, webhooks en geplande acties.
- WooCommerce raadt PHP 8.3+, MySQL 8.0+ of MariaDB 10.6+, een geheugenlimiet van 256 MB en HTTPS aan; je ziet je waarden in WooCommerce > Status.
- Let op memory_limit, max_execution_time, max_input_vars (stil gegevensverlies bij veel variaties) en uploadgrenzen.
- Een 503 of Resource Limit Is Reached betekent dat je pakketgrenzen bereikt zijn; zoek eerst de oorzaak, groei daarna.
Quiz
Opdracht
Opdracht A7.2: Past je PHP bij WooCommerce? Open WooCommerce > Status en noteer de PHP-versie (Serveromgeving) en de WordPress-geheugenlimiet in MB (WordPress-omgeving). Vul het adres van je shop en die twee waarden in. Het programma zoekt de reeks van je PHP-versie op in de tabel van php.net (welke versies nog updates krijgen) en kijkt of de homepage een kopregel X-Powered-By met een PHP-versie toont. Groen als je reeks nog actief wordt ondersteund en minstens 8.3 is, en de geheugenlimiet minstens 256 is. Oranje als je reeks alleen nog beveiligingsupdates krijgt, lager is dan 8.3 maar nog ondersteund, als de geheugenlimiet tussen 128 en 255 ligt, of als je site de PHP-versie in een kopregel laat zien. Rood als je reeks geen updates meer krijgt of onbekend is, de geheugenlimiet onder 128 ligt, of de kopregel een andere reeks toont dan je invulde ("staan er meerdere PHP-versies?").
Vraag voor jezelf (niet nagekeken): wat staat er in WooCommerce > Status bij max_input_vars en bij de maximale uploadgrootte? Is dat genoeg voor je grootste product en je grootste download?
Verder lezen
Deze artikelen beschrijven de stappen in de panelen van WebOké; in andere panelen werken ze vergelijkbaar.
- PHP-versie en PHP-instellingen wijzigen (en wat te doen bij fouten na een upgrade)
- Uploaden lukt niet: upload_max_filesize en max_execution_time verhogen
- DirectAdmin handleiding 14.1: De PHP-versie kiezen (Select PHP version)
- DirectAdmin Resource Usage en trage websites (Resource Limit Is Reached)
- DirectAdmin handleiding 17.5: 503 of 'Resource Limit Is Reached': wat nu?
- Gratis WordPress-cursus 8.4: PHP-versies en upgrades
- Server requirements (woocommerce.com, Engels): https://woocommerce.com/document/server-requirements/
