Gateway Timeout / Téléversement de fichier : 500 Internal Server Error
Problème
Les échecs de téléversement de fichiers peuvent entraîner les erreurs suivantes :
- Gateway Timeout
- 500 Internal Server Error
- Batch file upload failed Internal Server Error
- Allowed memory size exhausted
- Formulaire en une étape : « The pictures.X failed to upload »
Solution
En plus des contraintes de taille de fichier, les limitations de mémoire nécessitent une attention particulière. Modifiez ces variables dans php.ini :
max_execution_time = 120 memory_limit = 512M post_max_size = 128M upload_max_filesize = 64M max_input_time = 240
Cet exemple de configuration permet de téléverser des fichiers jusqu'à 17 Mo.
Solutions avancées
Paramètres Nginx
Configurez le paramètre client_max_body_size dans nginx.conf. La valeur par défaut de 1m limite les requêtes POST à un maximum de 1 Mo. Augmentez cette valeur à 20m ou plus pour des téléversements plus volumineux.
Paramètres Apache
Pour les serveurs Apache, le paramètre LimitRequestBody contrôle les limites de taille des requêtes. Contrairement à Nginx, Apache n'applique aucune restriction par défaut, bien que la configuration de cette valeur puisse être nécessaire dans certaines situations.