Algemeen

PHP-instellingen aanpassen in DirectAdmin

Zo kies je in DirectAdmin de PHP-versie en pas je met een .user.ini instellingen aan zoals memory_limit, upload_max_filesize en max_execution_time. Inclusief aanbevolen waarden voor WordPress.

Een upload die wordt geweigerd, een witte pagina met "Allowed memory size exhausted" of een import die halverwege stopt: dat zijn bijna altijd PHP-limieten. In DirectAdmin kies je zelf je PHP-versie en pas je de instellingen per website aan. In dit artikel lees je hoe dat werkt en welke waarden wij adviseren.

PHP-versie kiezen

DirectAdmin draait doorgaans meerdere PHP-versies naast elkaar. Je kiest per domein welke versie wordt gebruikt.

  1. Log in op DirectAdmin.

  2. Ga naar Account Manager en klik op Domain Setup.

  3. Klik op het domein waar het om gaat.

  4. Kies bij PHP Version Selector (of PHP-versie) de gewenste versie.

  5. Klik op Save.

Kies een versie die actief ondersteund wordt. Oudere versies krijgen geen beveiligingsupdates meer en worden door veel plugins en thema's niet langer ondersteund.

Maak voor het omschakelen een back-up en loop na het wisselen je site door: de homepage, een formulier of productpagina en de beheeromgeving. Gaat er iets stuk, dan zet je de vorige versie terug en kijk je welke plugin of welk thema achterloopt.

De belangrijkste instellingen

Instelling

Wat het doet

memory_limit

Hoeveel werkgeheugen één PHP-script mag gebruiken. Te laag geeft een witte pagina of "Allowed memory size exhausted".

upload_max_filesize

De maximale grootte van één geüpload bestand.

post_max_size

De maximale grootte van een volledig formulierbericht. Moet gelijk of groter zijn dan upload_max_filesize.

max_execution_time

Hoeveel seconden een script mag draaien voordat het wordt afgebroken.

max_input_time

Hoelang PHP mag doen over het inlezen van de invoer, bijvoorbeeld bij een grote upload.

max_input_vars

Hoeveel losse velden een formulier mag bevatten. Te laag betekent dat een deel van je instellingen niet wordt opgeslagen, vaak bij pagebuilders en grote menu's.

display_errors

Of foutmeldingen in beeld komen. Op een live site zet je dit op Off.

Instellingen aanpassen met een .user.ini

DirectAdmin heeft geen scherm waarin je losse PHP-waarden invult. Je regelt ze met een bestand .user.ini in de webmap van je site. Dat werkt zolang je site op PHP-FPM of FastCGI draait, wat bij ons standaard het geval is.

  1. Maak verbinding via het bestandsbeheer van DirectAdmin, via FTP of SFTP, of via SSH.

  2. Ga naar de webmap van je domein. Meestal is dat domains/jouwdomein.nl/public_html.

  3. Maak daar een bestand .user.ini aan, of open het bestaande bestand.

  4. Zet er één instelling per regel in.

  5. Sla het bestand op.

Een voorbeeldinhoud:

memory_limit = 256M
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 120
max_input_time = 120
max_input_vars = 3000
display_errors = Off

Let op de wachttijd. PHP leest een .user.ini niet bij elke aanvraag opnieuw, maar cachet die standaard vijf minuten. Zie je je wijziging nog niet terug, wacht dan even en herlaad de pagina.

Werk je liever via SSH, dan maak je het bestand zo aan:

cd ~/domains/jouwdomein.nl/public_html
nano .user.ini

Aanbevolen waarden voor WordPress

Voor een gemiddelde WordPress-site voldoen de waarden uit het voorbeeld hierboven. Draai je WooCommerce, een grote pagebuilder zoals Elementor of Divi, of doe je regelmatig imports? Verhoog dan naar:

memory_limit = 512M
max_execution_time = 300
max_input_vars = 5000

Hoger is niet automatisch beter. Een memory_limit van 2G maakt je site niet sneller, maar zorgt er wel voor dat één vastgelopen script veel meer geheugen van de server opsnoept. Verhoog gericht, en alleen zolang je het nodig hebt.

Controleren of je wijziging is doorgevoerd

In WordPress ga je naar Gereedschap, dan Site-status en het tabblad Info. Klap Server open. Daar staan de PHP-versie, memory_limit, max_execution_time, upload_max_filesize en post_max_size.

Wil je alles zien, maak dan tijdelijk een bestand info.php aan in de webmap met deze inhoud:

<?php phpinfo();

Roep het op via https://jouwdomein.nl/info.php en verwijder het bestand daarna meteen. Het toont serverinformatie die je niet openbaar wilt hebben.

Heb je SSH-toegang, dan kan het ook zo:

php -i | grep memory_limit

Houd er rekening mee dat de PHP op de commandline een andere configuratie kan gebruiken dan de PHP achter je website. De waarden uit je browser zijn leidend.

Veelvoorkomende meldingen en de oplossing

Allowed memory size of X bytes exhausted

Verhoog memory_limit naar 256M of 512M. Blijft de melding terugkomen bij dezelfde handeling, dan vraagt een plugin te veel geheugen. Schakel plugins tijdelijk uit om te achterhalen welke.

WordPress kent daarnaast een eigen limiet in wp-config.php, die lager kan staan dan je PHP-limiet. Voeg boven de regel /* That's all, stop editing! */ toe:

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Het geüploade bestand overschrijdt de maximale uploadgrootte

Verhoog upload_max_filesize en zet post_max_size gelijk of hoger. Voor een groot thema, een plugin of een video is 128M meestal genoeg.

504 Gateway Timeout of een afgebroken import

Verhoog max_execution_time naar 300. Kapt de site daarna alsnog af na ongeveer 60 seconden, dan zit de limiet in de webserver of in PHP-FPM en niet in je .user.ini. Neem contact met ons op, dan verhogen we de timeout mee.

Mijn menu of themaopties worden niet volledig opgeslagen

Dit is bijna altijd max_input_vars. Zet die op 5000.

Mijn .user.ini doet niets

Controleer drie dingen: staat het bestand in de juiste webmap, heet het exact .user.ini met de punt vooraan, en draait je site op PHP-FPM of FastCGI? Draait de site als Apache-module (mod_php), dan werkt een .user.ini niet. Neem dan contact op met de helpdesk, dan zetten wij je site op FPM of voeren we de wijziging op serverniveau door.

Veelgestelde vragen

Kan ik ook een php.ini gebruiken?

Een eigen php.ini in je webmap werkt alleen bij bepaalde opstellingen en wordt bij PHP-FPM genegeerd. Houd .user.ini aan, dat is de manier die op onze servers werkt.

Gelden mijn instellingen ook in submappen?

Ja. Een .user.ini in de webmap geldt voor die map en alle mappen daaronder. Wil je in een submap iets anders, zet daar dan een eigen .user.ini neer.

Verlies ik mijn instellingen als ik van PHP-versie wissel?

Nee. Het bestand blijft gewoon staan en wordt door de nieuwe versie ingelezen. Wel kan het zijn dat een directive in een nieuwere PHP-versie is vervallen. Die wordt dan genegeerd.

Gebruik je Plesk in plaats van DirectAdmin?

Bekijk dan het artikel PHP-instellingen aanpassen in Plesk.

Hulp nodig?

Kom je er niet uit, of weet je niet zeker welke waarde past bij jouw site? Neem contact op met onze helpdesk via helpdesk@pcpatrol.nl of bel 085 130 8931. We kijken graag met je mee.

Was dit artikel nuttig?