Optimaliseren van php.ini-instellingen voor uploads
Uitleg veilige en efficiënte php.ini-waarden te kiezen, met speciale aandacht voor uploadlimieten. Voor WNED-klanten is er een stap-voor-stap uitleg via DirectAdmin: Upload limiet aanpassen (WNED-kennisbank).
1) Uploadlimieten aanpassen via DirectAdmin (WNED)
- Log in op DirectAdmin.
- Ga naar Select PHP Version → Options.
- Pas
upload_max_filesize,post_max_sizeen desgewenstmemory_limit,max_execution_timeaan. - Klik op Save. De wijzigingen zijn binnen enkele minuten actief.
Tip: gebruik phpinfo() om te verifiëren welke actieve waarden geladen zijn en uit welk ini-bestand.
2) Kern-directieven voor uploads
| Directieve | Aanbevolen startwaarde | Waarom / Opmerkingen |
|---|---|---|
file_uploads |
On |
Uploads inschakelen. |
upload_max_filesize |
64M klein · 128M gemiddeld · 512M groot |
Maximale grootte per bestand. Kies wat past bij je site (afbeeldingen vs. video’s). |
post_max_size |
≥ upload_max_filesize (bv. 80M bij 64M) |
Totale grootte van de gehele POST-payload. Altijd hoger dan of gelijk aan upload_max_filesize. |
memory_limit |
256M–512M |
Nodig voor verwerken/resize van uploads (bijv. beeldmanipulatie, unzippen). |
max_execution_time |
120–180 |
Voorkomt time-outs bij grotere uploads en server-side verwerking. |
max_input_time |
120 |
Tijdslimiet voor het parsen van input (POST/GET). |
max_file_uploads |
50 |
Maximaal aantal bestanden per verzoek; verhoog indien je veel tegelijk uploadt. |
Veiligheid & betrouwbaarheid
display_errors = Off(productie),log_errors = Onexpose_php = Offsession.cookie_httponly = 1,session.cookie_secure = 1(bij HTTPS)upload_tmp_dirinstellen naar een schrijfbare, niet-publieke map
Prestatie
opcache.enable = 1,opcache.memory_consumption = 128(of hoger)opcache.interned_strings_buffer = 16,opcache.max_accelerated_files = 10000realpath_cache_size = 16M,realpath_cache_ttl = 120
3) Volledige voorbeeldconfiguratie
; ===== Uploads =====
file_uploads = On
upload_max_filesize = 128M
post_max_size = 160M
max_file_uploads = 50
; ===== Tijd & verwerking =====
memory_limit = 512M
max_execution_time = 180
max_input_time = 120
; ===== Veiligheid =====
display_errors = Off
log_errors = On
expose_php = Off
; Zorg dat upload_tmp_dir een schrijfbare, niet-publieke map is:
; upload_tmp_dir = "/home/USER/tmp"
; ===== Sessies =====
session.cookie_httponly = 1
; alleen bij HTTPS:
; session.cookie_secure = 1
; ===== Prestatie (OPcache) =====
opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.validate_timestamps = 1
opcache.revalidate_freq = 2
; ===== Paden cache =====
realpath_cache_size = 16M
realpath_cache_ttl = 120
Pas de waarden aan op basis van je CMS/applicatie en het type uploads dat je toestaat.
4) Alternatieven op shared hosting
.user.ini (aanbevolen bij PHP-FPM)
; Plaats dit in de webroot als .user.ini
upload_max_filesize = 128M
post_max_size = 160M
memory_limit = 512M
max_execution_time = 180
max_input_time = 120
Bij PHP-FPM wordt .user.ini periodiek opnieuw ingelezen (standaard elke 300s).
.htaccess (alleen indien je handler php_value ondersteunt)
<IfModule mod_php.c>
php_value upload_max_filesize 128M
php_value post_max_size 160M
php_value memory_limit 512M
php_value max_execution_time 180
php_value max_input_time 120
</IfModule>
Werkt niet bij PHP-FPM met php_admin_value in de vhost. Gebruik in dat geval DirectAdmin of .user.ini.
5) Controleren & troubleshooten
phpinfo()
Maak tijdelijk een bestand info.php met <?php phpinfo(); en bekijk de actuele waarden en het pad van de geladen php.ini.
- Ontvang je nog steeds “bestand te groot”? Vergroot
upload_max_filesizeénpost_max_size. - Time-out tijdens upload/verwerking? Verhoog
max_execution_timeenmax_input_time. - Afbeeldingsbewerking faalt? Verhoog
memory_limit.