Configuration du serveur de manière à ce qu’il puisse récupérer des fichiers volumineux dans l’application.
Modification configuration PHP.ini
Il y a deux configurations à changer dans le fichier php.ini de votre serveur
; La quantité de mémoire qu un script peut utiliser :
post_max_size = 80M
; La taille maximum d une requête HTTP POST (dans laquelle est transmise le fichier) :
upload_max_filesize = 80M
; La taille maximale d'un fichier uploadé sur le serveur :
memory_limit = 160M
Memory_limit correspond à la consommation maximum de mémoire. Ici, il sera possible d’importer des fichiers faisant maximum 80 mo.
La relation entre ces trois directives est : upload_max_filesize <= post_max_size < memory_limit.
Une fois fait, il faut redémarrer le serveur en faisant :
service apache2 restart
Les paramètres de temps
Il y a aussi les directives de temps d’exécution. La configuration de celles-ci dépend des capacités du réseau (plus il est rapide, plus les valeurs peuvent être petites) :
; Le durée maximale d'exécution du script (en s.) :
max_execution_time = 240
; La durée maximale de lecture de la requête (en s.).
La valeur doit être suffisamment haute pour que le serveur ait le temps de recevoir le
fichier avant de couper la connexion :
max_input_time = 60
avec la relation max_execution_time > max_input_time.
Par exemple avec un débit montant (upload) réel de 10MB/s, un fichier de 100MB mettra 10s à être uploadé. avec une marge de sécurité, on peut définir max_input_time à un minimum de 15s.
Autres paramètres
Configuration d’Apache
Certaines distributions d’Apache définissent la directive LimitRequestBody. Cette directive de configuration a le même rôle que la directive post_max_size de PHP. Si elle est définie, sa valeur doit-être au moins égale à la valeur de post_max_size.