Erreur 413 : Entité de requête trop grande - Une solution simple
Aujourd'hui, j'essayais différents thèmes sur l'un de mes sites WordPress. J'ai déjà téléchargé de nombreux thèmes sur mon ordinateur. Après avoir choisi mon fichier de thème et cliqué sur le bouton Installer maintenant pour le télécharger sur mon serveur, Nginx a déclaré : 413 Request Entity Too Large. La plupart du temps, il vous suffit de modifier le fichier de configuration Nginx pour permettre le téléchargement de fichiers volumineux.
Augmentation de la taille du fichier de téléchargement pour tous les blocs de serveur
Si vous avez plusieurs sites Web (blocs de serveur) sur un seul serveur Nginx et que vous souhaitez augmenter la taille du fichier de téléchargement pour chacun d'entre eux. Ensuite, vous devez modifier le fichier nginx.conf
sudo vi /etc/nginx/nginx.confMettez le texte suivant dans la section http
client_max_body_size 2M;La directive Nginx ci-dessus signifie que la taille maximale du fichier à télécharger est de 2 mégaoctets. La valeur par défaut est 1M. Donc, si vous ne le spécifiez pas et téléchargez un fichier de plus de 1 mégaoctet, vous obtiendrez une erreur d'entité de requête 413 trop volumineuse. Vous pouvez modifier cette valeur à votre guise.
Enregistrez et fermez le fichier. Rechargez ensuite la configuration de Nginx. Vous n'avez pas besoin de redémarrer Nginx.
sudo systemctl reload nginx
ou
sudo /etc/init.d/nginx reloadAugmentation de la taille du fichier de téléchargement pour un seul bloc de serveur
Si vous souhaitez augmenter la taille du fichier de téléchargement pour un seul bloc de serveur, vous devez modifier le fichier de bloc de serveur. Sur le serveur Debian/Ubuntu :
sudo vi /etc/nginx/sites-available/yourdoman.comSur le serveur CentOS/Redhat :
sudo vi /etc/nginx/conf.d/yourdomain.com.confEt ajoutez la ligne suivante à la section serveur. Encore une fois, vous pouvez modifier la valeur selon vos besoins.
client_max_body_size 2M;Rechargez maintenant votre configuration Nginx.
Téléchargement de fichiers de plus de 2 mégaoctets
Veuillez noter que PHP définit également une limite de taille de fichier de téléchargement. La taille maximale par défaut du fichier à télécharger est de 2 Mo. Ainsi, lorsque vous téléchargez un fichier de plus de 2 Mo, vous obtiendrez cette erreur
The uploaded file exceeds the upload_max_filesize directive in php.ini.alors vous devez changer la valeur en PHP. Modifiez le fichier php.ini. Sur Debian/Ubuntu :
sudo vi /etc/php5/fpm/php.iniSur CentOS/Redhat :
sudo vi /etc/php.iniRecherchez la ligne suivante :
upload_max_filesize = 2MRemplacez la valeur par la même valeur que la taille de votre fichier de téléchargement Nginx. Recherchez également la ligne suivante et augmentez la valeur à votre guise.
post_max_size = 8M
Enregistrez et fermez le fichier. Rechargez ensuite php-fpm.
sudo service php-fpm reload or sudo systemctl reload php-fpmVotre système peut avoir php5-fpm ou php7.0-fpm au lieu de php-fpm.
Vérifier s'il est déjà défini
Avant de définir la valeur client_max_body_size dans Nginx, il est sage de vérifier si la valeur est déjà définie mais que vous ne la connaissez pas. Changez votre répertoire de travail en /etc/nginx/ et exécutez la commande suivante :
sudo grep -R 'client_max_body_size'La commande ci-dessus trouvera la directive dans tous les fichiers de votre répertoire de configuration Nginx. Vous pouvez également ouvrir directement un fichier de bloc de serveur sudo vi /etc/nginx/conf.d/filename.conf pour voir si ce bloc de serveur a déjà défini la valeur.
Primordial
Si vous spécifiez une valeur client_max_body_size à la fois dans le fichier nginx.conf et dans le fichier de bloc de votre serveur, la valeur dans le fichier de bloc du serveur remplace la valeur définie dans le fichier nginx.conf.