Je plugins werken niet. Je site laadt niet en je blijft de foutmelding ‘Allowed memory size exhausted’ krijgen die aangeeft dat je je PHP geheugenlimiet moet verhogen. Wat betekent dat en wat doe je eraan?

De PHP geheugenlimiet is bedoeld om te voorkomen dat RAM-intensieve bronnen je site laten crashen. Soms kan het echter ook problemen veroorzaken, bijvoorbeeld wanneer je een plugin installeert die wat extra kracht nodig heeft en daardoor de toegang tot je site blokkeert.

Wanneer je door een gebrek aan geheugen een white screen of death tegenkomt, moet je dit probleem zo snel mogelijk verhelpen. Laten we eens kijken wat de PHP geheugenlimiet is en wat de oplossing is voor als je het resourceplafond hebt bereikt.

Wat is de PHP geheugenlimiet?

De PHP geheugenlimiet bepaalt de maximale hoeveelheid geheugen die elke script op je website kan gebruiken. Maar wat betekent dat nou precies?

Je website wordt aangedreven door servers, dit zijn gespecialiseerde computers die worden gebruikt om de back-end van een website werkend te houden. Net als normale computers gebruiken ze componenten als processors, opslag en RAM; ook wel geheugen genoemd.

RAM is een van de belangrijkste onderdelen van een server. Elk programma en elke applicatie neemt een deel van de geheugen in beslag. Hoe intensiever het programma, des te meer geheugen het gebruikt. Wanneer je geen geheugen meer vrij hebt, dan zal je site traag werken of zelfs niet meer laden.

Webapplicaties, zoals WordPress plugins, zijn een van de vele dingen die geheugen op je server in beslag kunnen nemen. Meestal nemen deze applicaties maar een kleine hoeveelheid ruimte in beslag en zul je hier nooit problemen mee hebben, tenzij jouw host je maar heel weinig geheugen heeft gegeven om mee te werken.

Maar er geldt ook een harde beperking voor de hoeveelheid geheugen dat het script van een PHP applicatie in beslag kan nemen op je server. Wanneer een van deze scripts de limiet overschrijdt, zullen er zich problemen voordoen.

Je zult dan een wit scherm met een foutmelding zien dat mogelijk de toegang tot je volledige site blokkeert.

Waarom is er een geheugenlimiet?

Stel je voor dat er iets misgaat op je server. Misschien loopt een programma vast in een oneindige loop waardoor het steeds meer geheugen in beslag neemt, of lukt het een hacker om je te overtuigen om een kwaadaardig script uit te voeren die al je bronnen gebruikt.

Als PHP processen uit de hand lopen, dient de geheugenlimiet dat te stoppen voordat ze je hele server kunnen laten crashen – of natuurlijk alle bronnen kunnen opslurpen, en je hebt vaak maar een beperkt aantal resources per maand.

De meeste legitieme PHP scripts zijn erg klein. Elk individueel script zou maar een kleine hoeveelheid RAM in beslag moeten nemen, tenzij je een ongebruikelijk programma hebt dat meer bronnen in één script heeft hebt dan de meeste programma’s als geheel. Dit soort plugins bestaan zeker, maar zijn zeldzaam.

Als je geheugen bijna vol is, is de kans groot dat er een kapot of kwaadaardig PHP programma is, en dus treedt de foutmelding over geheugenlimiet op.

Maar soms gebruik is het simpelweg nodig om een grote plugin te gebruiken die extra geheugen nodig heeft. Sommige webhosts stellen de PHP geheugenlimiet daarnaast te laag in, zodat de fout op kan treden zonder dat er een applicatie geïnstalleerd is die uitzonderlijk veel energie gebruikt.

Hoe dan ook, de foutmelding dat je je PHP geheugenlimiet hebt bereikt is nooit ver weg.

De foutmelding dat het geheugen op is

Je kampt dus met de foutmelding dat het geheugen op is Je ziet op je gehele site of bij het uitvoeren van bepaalde functies, zoals tijdens het indienen van een formulier, dan een wit scherm met een foutmelding.

Foutmelding dat het geheugen op is zoals te zien op WordPress
Foutmelding dat het geheugen op is zoals te zien op WordPress

Dit is een ernstig probleem, vooral als het je hele website betreft. Elk uur dat het probleem niet opgelost is, verlies je veel bezoekers.

De boosdoener is waarschijnlijk een hele grote of verkeerd geconfigureerde plugin. Omdat WordPress plugins in PHP gecodeerd zijn, vallen ze onder de PHP geheugenlimiet.

Je kunt de plugin vinden die het probleem veroorzaakt, door jouw plugins een voor een uit te schakelen totdat je weer toegang hebt tot je site. Zodra je de plugins in kwestie geïdentificeerd hebt, controleer je de documentatie en check je of dat aangeeft hoeveel geheugen de plugin nodig heeft om te werken.

Overweeg een ticket in te dienen bij de ontwikkelaar van de plugin als er geen indicatie is dat het een uitzonderlijk krachtige plugin zou moeten zijn, aangezien er mogelijk fouten in zitten. Houd er rekening mee dat de PHP geheugenlimiet alleen van invloed is op enkele scripts, niet op de plugin als geheel. Er is dus een grote kans dat een script vastloopt in een oneindige loop of een andere storing.

Het probleem kan ook bij jou liggen. Misschien is de geheugenlimiet die je hebt ingesteld veel te laag, waardoor alleen de kleinste plugins goed werken. Of misschien probeerde je een plugin te installeren waarvoor je de limiet op moet schroeven.

In beide gevallen moet je proberen de PHP geheugenlimiet te verhogen. We laten je nu zien hoe je dat moet doen.

PHP geheugenlimiet in WordPress verhogen

Voordat je zoiets doet, is er een eenvoudige manier om te controleren wat jouw huidige PHP geheugenlimiet is zonder dat je door bestanden hoeft te graven. Als je WordPress 5.2 of hoger gebruikt, ga dan in je back-end naar Gereedschap > Sitediagnose.

Installeer de Health Check & Troubleshooting plugin mocht je die niet kunnen zien.

Bekijk de Site Health informatie in WordPress
Bekijk de Site Health informatie in WordPress

Op het tabblad Info vind je jouw PHP geheugenlimiet. Als deze al redelijk hoog is dan is een van je plugins mogelijk defect.

Als je echter merkt dat het limiet erg laag is, dan moet je deze verhogen door je wp-config.php bestand te bewerken.

Hiermee los je het probleem niet altijd op. Uiteindelijk wordt de PHP geheugenlimiet door je webhost bepaald. Soms is je site ingesteld om minder resources te gebruiken dan dat je host aanbiedt, waardoor het aanpassen van je bestanden dit kan verhelpen. Maar als hun hard-coded limiet echter te laag is, dan kun je deze helaas niet verhogen, ongeacht hoe hoog je het limiet handmatig instelt.

Dan nog is dit het proberen waard, dus laten we het bestand nu bewerken.

Wat is de PHP geheugenlimiet van Kinsta?

Alle gebruikers van Kinsta pakketten hebben een standaard PHP geheugenlimiet van 256 MB ter beschikking. Dit zou meer dan genoeg moeten zijn voor 99% van alle WordPress plugins en is in feite veel meer dan de meeste plugins ooit zouden moeten gebruiken.

Als je Kinsta hosting gebruikt en je site goed is geconfigureerd, dan zou je nooit een geheugenlimietfout tegen moeten komen. De maximumlimiet wordt meestal automatisch in de bestanden ingesteld, zonder dat jij daar iets voor hoeft te doen.

Het is echter misschien alsnog de moeite waard om de limiet te checken en ervoor te zorgen dat het niet per ongeluk te laag is ingesteld in de instellingen van WordPress. Het kan gebeuren dat de limiet door iets is veranderd en daardoor het aantal resources waartoe je toegang hebt verlaagd heeft.

Als je nog steeds problemen ondervindt, kun je altijd contact opnemen met Kinsta’s supportteam en om hulp vragen bij het oplossen van het probleem. We kunnen je helpen bij het identificeren van een verkeerd geconfigureerd bestand dat je toevallig over het hoofd hebt gezien.

PHP geheugenlimiet wijzigen via FTP

Om het bestand wp-config.php te bewerken heb je met FTP of SFTP toegang nodig tot je site. Hiermee kun je belangrijke (maar ook gevoelige) interne bestanden bewerken die invloed hebben op hoe je site functioneert.

Je hoeft maar één regel aan te passen, dus dat zou eenvoudig moeten gaan. Begin met het installeren van FileZilla of een andere FTP client waar je voorkeur naar uit gaat. Dit kost je niets, dus geen zorgen. Voordat je begint, moet je ook een back-up van je website maken. Het is gemakkelijk om tijdens het bewerken van kernbestanden per ongeluk het bestand te beschadigen.

Open FileZilla en voer je inloggegevens in. Na enkele ogenblikken zou je verbinding moeten maken met je site.

Klik op de public map en zoek naar wp-config.php. Als je public of public-html niet kunt vinden, dan heet dit mogelijk root, www of de naam van je website.

Naar wp-config zoeken in FileZilla
Naar wp-config zoeken in FileZilla

Open wp-config. Zorg er goed voor dat je niets anders bewerkt dan de regel voor de PHP geheugenlimiet, aangezien dit een gevoelig bestand is en het je website kan beschadigen. Blader door wp-config totdat je deze regel vindt: define('WP_MEMORY_LIMIT', '256M');

WP memory limiet zoals die te zien is in wp-config
WP memory limiet zoals die te zien is in wp-config

Pas het getal aan dat daar vermeld wordt, sla het bestand op en sluit FileZilla. Klaar is kees!

PHP geheugenlimiet veranderen in cPanel

Bij sommige hosts kun je geen bestanden bewerken via FTP. In plaats daarvan geven ze je eventueel toegang tot cPanel. Als dit bij jou ook het geval is, dan hoeft je je geen zorgen te maken; je kunt op die manier namelijk ook je PHP geheugenlimiet aanpassen.

Stap 1: Log met de gegevens die je van je host hebt gekregen in op cPanel  Op het startscherm zie je een gedeelte genaamd Software, met een knop Select PHP Version.

Een PHP versie selecteren in cPanel
Een PHP versie selecteren in cPanel

Klik erop en bovenaan het scherm zul je Switch to PHP options kunnen zien. Scrol naar beneden tot je memory_limit tegenkomt in het vervolgkeuzemenu. Klik erop en verander de instelling die je aan wilt passen. Klik op Apply en klaar ben je.

Niet iedereen zal Select PHP Version als mogelijkheid hebben. In plaats daarvan zien ze MultiPHP Ini Editor In dat geval zijn de stappen ietwat anders.

MultiPHP Ini Editor in cPanel
MultiPHP Ini Editor in cPanel

Je zult daarop moeten klikken en in het volgende venster, onder Configure PHP INI basic settings, moet je in het vervolgkeuzemenu openen en je domein selecteren. Zoek naar memory_limit en voer het gewenste nummer in. Klik Apply om de veranderingen op te slaan.

Je kunt eventueel ook cPanel’s File Manager proberen. Dit lijkt erg op het openen van je site via FTP. Klik op je startpagina onder het gedeelte Files op File Manager. Zoek naar de folder public/public-html (of hoe die map ook heet) en open wp-config.php.

Zoek de regel WP_MEMORY_LIMIT zoals hierboven beschreven en verander het nummer naar het gewenste aantal. Sla je veranderingen op en zorg ervoor dat je ze toepast; dat is alles.

Wat moet de PHP geheugenlimiet zijn?

Wanneer je je geheugenlimiet aan gaat passen zou je deze impulsief misschien op 900 MB, of nog hoger, in willen stellen. Dit kan echter een heel slecht idee zijn.

Mocht er op je site ooit een script kapotgaan, dan kan het snel uit de hand lopen en kan dat de hele server laten crashen. Zelfs als je site op krachtige hardware wordt gehost, kan één script dat al het geheugen opslokt voor ernstige problemen zorgen.

Verkeerd geconfigureerde scripts die ongewoon belastend zijn, maar niet voldoende gebroken om echt problemen te veroorzaken, kunnen ook onopgemerkt blijven. De meeste PHP scripts zijn erg klein en een geheugenlimietfout dient als een waarschuwing dat er iets misgaat in de backend. Als je de limiet te hoog instelt, dan kan je, zonder het ooit te weten, scripts verpesten die je site weer vertragen.

Je moet je PHP geheugenlimiet zo laag mogelijk instellen, zolang het je site normaal laat functioneren.

128 MB is een goed uitgangspunt. Het is een behoorlijke hoeveelheid geheugen waar de meest intensieve plugins goed mee functioneren. Als je weet dat je wat extra vermogen nodig hebt, dan is 256 MB geschikt voor de zwaarste plugins. En als je zeker weet dat je een echte powerhouse hebt, dan is 512 MB het absolute maximum dat je in zou moeten stellen. In 90% van de gevallen zul je je geheugenlimiet niet boven de 256 MB in hoeven te stellen.

Wat als de geheugenlimiet aanpassen niet helpt?

Als je na het bewerken van je PHP bestand nog steeds de geheugenfout ziet verschijnen, dan speelt er een van de volgende twee problemen: je host heeft je zeer weinig middelen toegewezen of er is een PHP script op je server dat veel te veel geheugen in beslag neemt.

Nogmaals, je moet je plugins nakijken en uitschakelen totdat je de boosdoener identificeert. Met 128-256 MB geheugen zou geen enkele plugin zo veel ruimte in beslag moeten nemen zonder dat ergens in de documentatie te vermelden. Schakel de plugin uit en breng de auteurs van de plugin op de hoogte van wat er is gebeurd.

Doet de fout zich nog steeds voor, zelfs nadat alle plugins zijn uitgeschakeld? Er moet een conflict of een of andere PHP toepassing zijn die het probleem veroorzaakt. Dit is meer dan dat je zelf op kunt lossen, dus vraag je webhost om hulp.

Als het probleem helemaal geen plugin is, dan ligt het probleem waarschijnlijk bij jouw host, die de geheugenlimiet te laag heeft ingesteld. Je gebruikt waarschijnlijk gedeelde hosting in plaats van managed WordPress hosting, die berucht om het toewijzen van een zeer kleine hoeveelheid geheugen. Dat is begrijpelijk, want als een site te veel RAM gebruikt, dan loopt het hele systeem op tientallen andere ook websites vast.

Je enige optie is dan om te upgraden naar een abonnement dat meer middelen biedt. Dat kan uiteindelijk duur worden, vooral als je een intensieve plugin op een nieuwe site probeert te installeren. Als je nog niet veel bezoekers hebt, dan helpen de extra middelen die je bij een upgrade krijgt niet echt.

Je zou ook over kunnen schakelen naar een host als Kinsta, die van begin af aan al meer geheugen biedt.

Samenvatting

De PHP geheugenlimiet bestaat om een zeer legitieme reden: je wilt niet dat kwaadaardige processen meer RAM in beslag nemen dan zou moeten. Maar als je de limiet bereikt en een ‘white screen of death’ tegenkomt terwijl je een legitieme plugin gebruikt, kan dit behoorlijk vervelend zijn.

Uiteindelijk is het je host die bepaalt tot hoeveel PHP geheugen je toegang hebt. Als ze de lat te laag leggen, is het onmogelijk om deze te verhogen.

Soms gebruikt je site echter minder middelen dan die je daadwerkelijk toebedeeld zijn. In dat geval is het mogelijk om je geheugen te verhogen. Probeer die eens in te stellen op 128 of 256 MB (de standaardoptie bij alle Kinsta abonnementen), want je wilt die niet te hoog hebben.

Als geen van deze opties werkt, dan wordt het probleem waarschijnlijk veroorzaakt door een gebrek aan toegewezen resources en niet door een instelling die gewijzigd moet worden. Neem contact op met je host en vraag hoe je er meer geheugen kunt krijgen, of schakel over naar een nieuwe host zoals Kinsta die je meer geheugen geeft dan je ooit nodig zult hebben.