目的
- Laravel8 nginxのDockerローカル開発環境にて「413 Request Entity Too Large」のエラーがでたため解決策をメモ的に記載する
経緯とエラー内容
-
Laravel8のとあるアプリをapiサーバーとして利用し、ファイルPostの処理を作成してPostmanから100MBを超えるファイルをPostしたところ下記のエラーがでた。
413 Request Entity Too Large
原因
-
nginxの設定が良くないっぽい。
-
デフォルトでNginxは1MBまでのファイルしかPostする事ができない。
-
今表示されているエラーはnginxによるものだがphp.iniにもファイルアップロードの容量制限があった気がするのでそちらもチェックする。
解決方法(700MBのファイルアップロードまで許可する場合)
-
nginxの設定変更
-
Dockerのコンテナ作成時に使用するdefault.confの
server{}
内に下記の一行を記載する。default.confclient_max_body_size 700M;
-
-
php.iniの設定変更
-
昔同じようなことが会って自分で記事にしてた。
-
下記の記事を参考にPHP側のファイルアップロード上限も修正する。
-
Dockerのコンテナ作成時に使用するphp.iniファイルの
post_max_size
とupload_max_filesize
の設定を下記の様に変更する。php.ini; Maximum size of POST data that PHP will accept. ; Its value may be 0 to disable the limit. It is ignored if POST data reading ; is disabled through enable_post_data_reading. ; http://php.net/post-max-size post_max_size = 700M ;~~~~~~~~~~~~~~~~~~ 中略 ~~~~~~~~~~~~~~~~~~ ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 700M
-
-
コンテナの再構築
-
下記コマンドを実行してコンテナを再起動する。
$ docker-compose up -d --build
-
-
それでも「413 Request Entity Too Large」のエラーが解消しない方は下記を参照いただきたい。