413リクエストエンティティが大きすぎます-ファイルアップロードの問題


100

サーバーに30MBのファイルをアップロードしようとしていますが、機能しません。

  1. 私は30メガバイトのファイルをアップロードすると、ページがロードされる「ページが見つかりません

  2. 私は3メガバイトのファイルをアップロードすると、私は「受信ラージ413要求エンティティ余りにをnginxの/ 0.6.32に」

client_max_body_size」を増やすことができるようにnginxを見つけようとしていますが、サーバーにインストールされているnginxを見つけることができません。私も実行してみました:

vi /etc/nginx/nginx.conf

または

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

設定ファイルが存在するかどうかを確認しましたが、サーバー上で見つかりませんでした。

この問題を解決する方法はありますか?または、サーバーにnginxをインストールする必要がありますか?

編集:

php.iniファイルに必要な変更をすべて加えました。

post_max_size 128M
upload_max_filesize 100M
memory_limit 256M

ありがとう、ラジュ


このリンクを見てください。cyberciti.biz /
php

こんにちはモハマド、私はnginxを探しましたが、サーバー上で見つかりませんでした。確かに、nginxはサーバーにインストールされていないので、Nginxに属するエラーメッセージが表示される理由がわかりません
Raju Vishwas 2014年

まず、ngixがサーバーにインストールされていないことを確認する必要がありますが、完全に確信している場合は、セキュリティ上の理由から、ハッカーを混乱させるサーバーマネージャーがこのトリックを使用します
Ashouri 2014年

ps aux | grep nginx実行されているかどうかを確認しようとしましたか?
rpkamp 2014年

試しましたwhich nginxか?これにより、構成ファイルではなく実行可能ファイルの場所がわかりますが、少なくともnginxがインストールされているかどうかを確認する必要があります。
ダグ・マクリーン

回答:


127

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

nginxのconfファイルを編集します:

nano /etc/nginx/nginx.conf

httpセクションに行を追加します。

http {
    client_max_body_size 100M;
}

MBを使用しないでください。Mのみが機能します。

また、nginxを再起動することを忘れないでください

systemctl restart nginx

これを行うと、413が404に変わります。EC2でAmazonLinuxを使用しています。また、nginxドキュメントには小文字の「m」が表示されます。nginx.org/en/docs/http/…–
nu everest

ファイルを変更するためにパスワードを要求しています。しかし、私はそれを設定したことを覚えていません。私は何かが足りませんか?
Sooraj 2017年

1
nanoのパスはnano / etc / nginx / nginx.confである必要があります。
maXi32 2018

私のために働いたが注:あなたの設定にすでにhttp { }セクションがある場合は、その中に残りを追加してください!新しいhttp {}セクションの追加は失敗"http" directive is duplicateし、Nginxログにエラーが記録されます。
jerclarke

43

-php.ini内(/etc/php.ini内)

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

-nginx.conf(/ opt / nginx / conf内)

client_max_body_size 24000M

私の場合はうまくいきます


こんにちはアルン、私たちのサーバーの問題は、インストールされているnginxを見つけることができませんが、それでもnginxエラーが発生します
Raju Vishwas 2014年

/ optまたは/ etc内でnginxを見つけます。nginx内でconfフォルダーを見つけ、次にnginx.confを見つけます。
アルン2014年

上記のアイデアが機能しない場合は、任意の検索ツールを使用して、Linux全体でnginx.confを検索してください。
アルン2014年

`max_input_time = 24000`、24000はミリ秒単位ですか?
RishabhAgrahari20年

1
@RishabhAgrahari Seconds!これにより、最大時間が秒単位で設定されます。デフォルト設定は-1です。これは、代わりにmax_execution_timeが使用されることを意味します。無制限の時間を許可するには0に設定します
Sean

18

まず、Nginx構成ファイルを編集します(nginx.conf

ロケーション: sudo nano /etc/nginx/nginx.conf

次のコードを追加します。

http {
        client_max_body_size 100M;
}

次に、PHP構成ファイルに次の行を追加します(php.ini

ロケーション: sudo gedit /etc/php5/fpm/php.ini

次のコードを追加します。

memory_limit = 128M 
post_max_size = 20M  
upload_max_filesize = 10M

1
nginx.conf指示どおりにファイルを開きましたが、空でした。私はそれを期待していませんでしたが、あなたのコードを追加したとき、それはまだ機能していました...私が期待するように、しかし何らかの理由で私はそうではなく、それができたとき私はとても幸せでした!
アンドリューフォックス

8

ドメインnginxファイルを入力してください:

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

このコードをファイルに追加

client_max_body_size 24000M;

エラーが発生した場合は、このコマンドを使用してください

nginx -t

8

次のように、nginxのグローバル構成ではなく、仮想ホストに直接変更を追加します。

   server {
     client_max_body_size 100M;
     ...
   }

次に、上記のコメントのように、php.iniのパラメーターを変更します。

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

そして忘れてはならないのは、nginxとphp-fpmを再起動することです。centos7では次のようになります。

  systemctl restart nginx
  systemctl restart php-fpm

6
sudo nano /etc/nginx/nginx.conf

次に、httpセクションに行を追加します

http {
    client_max_body_size 100M;
}

MBのみを使用しないでください。

systemctl restart nginx

次にphpの場所

sudo gedit /etc/php5/fpm/php.ini

今日の最大使用php7.0以上

sudo nano /etc/php/7.2/fpm/php.ini     //7.3,7.2 or 7.1 which php you use

あなたの欲望によって増加しているものをチェックしてください。

memory_limit = 128M 
post_max_size = 20M  
upload_max_filesize = 10M

php-fpmを再起動します

service php-fpm restart 

4

php.iniファイルに必要な変更を加えたと仮定します。

次のパスにあるnginx.confファイルに次の行を追加することで、問題を解決できます。

/etc/nginx/nginx.conf

次に、vimテキストエディタを使用して次のようにファイルを編集します。

vi /etc/nginx/nginx.conf

次に、十分な大きさの値を使用してclient_max_body_sizeを追加します。次に例を示します。

client_max_body_size 20MB;

その後、:xiまたはを使用して保存してください:wq

そして、nginxを再起動します。

それでおしまい。

私のために働いた、これが役立つことを願っています。


2

上記の変更でアップロードが機能するようになりました。しかし、変更を加えたとき、ファイルのアップロードで404応答が返され始めたため、さらにデバッグを行い、nginxerror.logをチェックしてアクセス許可の問題を特定しました。

解決:

/ var / lib / nginxで現在のユーザーとグループの所有権を確認します。

$ ls -ld /var/lib/nginx

drwx ------。3 nginx nginx 17 Oct 5 19:31 / var / lib / nginx

これは、nginxという名前の存在しない可能性のあるユーザーとグループがこのフォルダーを所有していることを示しています。これにより、ファイルのアップロードが妨げられています。

私の場合、「/ etc / nginx /nginx.conf」に記載されているユーザー名は

user vagrant; 

フォルダーの所有権を、nginx.confで定義されているユーザー(この場合はvagrant)に変更します。

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

実際に変更されたことを確認します。

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

より安全なsadeのためにnginxとphp-fpmをリロードします。

$ sudo service nginx reload
$ sudo service php-fpm reload

許可拒否エラーはなくなります。error.logを確認します(nginx.conf error_logの場所に基づく)。

$ sudo nano /path/to/nginx/error.log

0

ファイル/etc/nginx/nginx.conf を開く追加または変更client_max_body_size 0;


0

使用する:

php -i

コマンドまたは追加:

phpinfo();

構成ファイルの場所を取得します。

ニーズとサーバーに応じてこれらの変数を更新します

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

Linuxでは、新しいini設定が読み込まれるように、nginx / apacheおよびphpfpmサービスを再起動する必要があります。xampp、ammpsでは、このようなアプリケーションに付属のコントロールパネルからこれらを再起動できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.