📤
Nginx+PHPの環境でサイズの大きいファイルをアップロードする ~ローカル環境編~
経緯
サイズの大きいファイルをPHPのアプリケーションにアップロードしようとしたところ弾かれたので、設定を色々修正して解決しました。
その時の備忘録になります。
動作環境・前提
Dockerで、NginxとPHPのコンテナを立てています。
バージョン | |
---|---|
PHP | 8.3.6 |
Nginx | 1.29.0 |
対象者
- サイズの大きいファイルをアップロードしようとして失敗する方
- 調べて設定の変更を試したけど、上手くいかない方(少なくとも、僕と同じ動作環境であればこの記事の通りの設定でいけると思います)
本題
結論、php.iniとnginxのnginx.confの内容を修正してコンテナをビルドし直したら解決しました。
以下がAPIが正常に実行された時の設定内容になります。
php.ini
upload_max_filesize = 125M
post_max_size = 150M
memory_limit = 512M
nginx.conf
client_max_body_size 512M;
各サイズは、アップロードしたいファイルのサイズに合わせて変えてください。
また、post_max_size
とmemory_limit
とclient_max_body_size
は、upload_max_filesize
よりちょっと多めにしておいたほうが良いです。
最後に
この記事ではローカルのDocker環境を前提にした内容でしたが、実はこの後、GoogleCloudのCloudRun環境にデプロイして試したところ、再び413エラーに悩まされることになってしまいました。
こちらも解決済みなので、別の記事に分けてそちらもまとめてみようと思います。

株式会社 カラビナテクノロジーは「命綱や支点を素早く確実に繋ぐカラビナ。そんなカラビナのような役割をテクノロジーで実現したい」という想いのもと、福岡で設立。 主にシステム開発・アプリ開発・ Webサイト制作を行っています。採用情報→karabiner.tech/career
Discussion