web-dev-qa-db-fra.com

413 Entité de demande trop grande - Problème de téléchargement de fichier

J'essaie de télécharger un fichier de 30 Mo sur mon serveur et cela ne fonctionne pas.

  1. Lorsque je télécharge un fichier de 30 Mo, la page se charge " Page introuvable "

  2. Lorsque je télécharge un fichier de 3 Mo, je reçois " Entité 413 de demande trop grande " avec nginx/0.6.32

J'essaie de trouver nginx pour pouvoir augmenter " client_max_body_size " mais je ne parviens pas à trouver nginx installé sur mon serveur. J'ai même essayé de courir:

vi /etc/nginx/nginx.conf

ou

vi /usr/local/nginx/conf/nginx.conf

pour vérifier si le fichier de configuration existe, mais je ne pouvais pas le trouver sur mon serveur. 

Y a-t-il un moyen de résoudre ce problème? Ou dois-je installer nginx sur mon serveur?.

MODIFIER:

J'ai apporté toutes les modifications nécessaires dans mes fichiers php.ini,

post_max_size 128M
upload_max_filesize 100M
memory_limit 256M

Merci, Raju

48
Raju Vishwas

Source: http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/

Editez le fichier de configuration de nginx:

nano /etc/nginx/nginx.conf

Ajoutez une ligne dans la section http:

http {
    client_max_body_size 100M;
}

N'utilisez pas MB cela ne fonctionnera pas, seulement le M!

De plus, n'oubliez pas de redémarrer nginx

systemctl restart nginx
59
Dieter

-en php.ini (à l'intérieur de /etc/php.ini)

 max_input_time = 24000
 max_execution_time = 24000
 upload_max_filesize = 12000M
 post_max_size = 24000M
 memory_limit = 12000M

-in nginx.conf (dans/opt/nginx/conf)

client_max_body_size 24000M

Cela fonctionne pour mon cas

31
Arun

Veuillez entrer le fichier de domaine nginx:

nano /etc/nginx/sites-available/domain.set

Ajouter au fichier ce code

client_max_body_size 24000M;

Si vous obtenez une erreur, utilisez cette commande

nginx -t
5
Cagdas

En supposant que vous ayez apporté les modifications nécessaires à vos fichiers php.ini:

Vous pouvez résoudre le problème en ajoutant la ligne suivante dans votre fichier nginx.conf situé dans le chemin suivant:

/etc/nginx/nginx.conf

puis éditez le fichier en utilisant l'éditeur de texte vim comme suit:

vi /etc/nginx/nginx.conf

et ajoutez client_max_body_size avec une valeur suffisamment grande, par exemple:

client_max_body_size 20MB;

Après cela, assurez-vous de sauvegarder en utilisant :xi ou :wq

Et puis redémarrez votre nginx.

C'est tout.

Travaillé pour moi, espérons que cela aide.

3

Le téléchargement fonctionne avec les modifications ci-dessus. Mais lorsque j'ai apporté les modifications, j'ai commencé à recevoir une réponse 404 lors du téléchargement de fichiers, ce qui m'a amené à poursuivre le débogage et à résoudre son problème d'autorisation en vérifiant nginx error.log. 

Solution:

Vérifiez la propriété actuelle de l'utilisateur et du groupe sur/var/lib/nginx.

$ ls -ld /var/lib/nginx

drwx ------. 3 nginx nginx 17 octobre 5 19:31/var/lib/nginx

Cela indique qu'un utilisateur et un groupe probablement non existants, nommés nginx, sont propriétaires de ce dossier. Cela empêche le téléchargement de fichiers.

Dans mon cas, le nom d'utilisateur mentionné dans "/etc/nginx/nginx.conf" était 

user vagrant; 

Changez la propriété du dossier en utilisateur défini dans nginx.conf dans ce cas vagabond.

$ Sudo chown -Rf vagrant:vagrant /var/lib/nginx

Vérifiez que cela a réellement changé.

$ ls -ld /var/lib/nginx
drwx------. 3 vagrant vagrant 17 Oct  5 19:31 /var/lib/nginx

Rechargez nginx et php-fpm pour une navigation plus sûre.

$ Sudo service nginx reload
$ Sudo service php-fpm reload

La permission refusée devrait maintenant disparaître. Vérifiez le fichier error.log (basé sur l'emplacement de nginx.conf error_log).

$ Sudo nano /path/to/nginx/error.log
2
Nafas Sait

Utilisation:

php -i

commande ou ajouter:

phpinfo();

pour obtenir l'emplacement du fichier de configuration. 

Mettez à jour ces variables en fonction de vos besoins et de votre serveur

max_input_time = 24000
max_execution_time = 24000
upload_max_filesize = 12000M
post_max_size = 24000M
memory_limit = 12000M

Sous Linux, vous devrez redémarrer nginx/Apache et le service phpfpm pour que les nouveaux paramètres ini soient chargés. Sur xampp, ampères, vous pouvez les redémarrer à partir du panneau de configuration fourni avec ces applications.

0
Saqib Ashraf

J'ajoute les modifications directement à mon virtualhost à la place de la configuration globale de nginx, comme ceci:

   server {
     client_max_body_size 100M;
     ...
   }

Et puis je change les paramètres dans php.ini, comme les commentaires ci-dessus:

   max_input_time = 24000
   max_execution_time = 24000
   upload_max_filesize = 12000M
   post_max_size = 24000M
   memory_limit = 12000M

et ce que vous ne pouvez pas oublier, c’est de redémarrer nginx et php-fpm, c’est comme ça dans centos 7:

  systemctl restart nginx
  systemctl restart php-fpm
0
Evan

Ouvrir le fichier/etc/nginx/nginx.conf Ajouter ou modifier client_max_body_size 0;

0
Tai Ho