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_size
en desgewenstmemory_limit
,max_execution_time
aan. - 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 = On
expose_php = Off
session.cookie_httponly = 1
,session.cookie_secure = 1
(bij HTTPS)upload_tmp_dir
instellen 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 = 10000
realpath_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_time
enmax_input_time
. - Afbeeldingsbewerking faalt? Verhoog
memory_limit
.