この記事を三行にまとめると
413 Request Entity Too LargeLimitRequestBodyのせいだった
やはり最近のAIチャットはすげえ
ちょっと前にAWSの古いEC2サーバーをM4からM6に上げたという話をしました。
古いEC2のインスタンスタイプを上げるとき(m4 → m6)
この記事に関して一つ言い忘れてたんですが、M6に上げたら動画をアップロードしようとすると413というエラーが出るようになったんですよ。
何かこんな感じのやつ。簡単に言うとアップロードしようとしている動画のサイズがリミットオーバーしてまっせってことなんですけど、今まで問題なくアップロードができていたのに急にこれがでてきたもんだから、ぶっちゃけ全然原因が分からなかったんですよ。
で、結論から言うと、Apacheの「LimitRequestBody」という設定に問題があったようです。どういうわけだかこのLimitRequestBodyがいきなり有効になったみたいで、それで1GBよりも大きい動画が上げられなくなってたんですね。上記のメッセージだと1024バイトに制限されてますよ的な感じなんですけど、1GB以下であればアップロードできてました。
なので例えば2GBまでアップロードできるようにしたいならhttpd.confを開いてLimitRequestBodyを2GBにすればこのエラーは解消できます。
こんな感じですね。実際にこれでApacheを再起動したら無事にアップロードできるようになりました。
ファイルサイズが大きすぎてアップロードできない場合、PHPだと最初に思い浮かぶのは「post_max_size」とか「upload_max_filesize」の設定だと思うんですよね。僕も最初はここが何かおかしくなっちゃったのかなと思って確認してみたんですけど、特に問題なく2GBまでいける設定のままだし、いったい何が原因なんだろうと思って2時間くらいグーグル先生の中をさまよってました。
ほんでさまよいにさまよい続けたんだけど結局原因がよく分からなくて「あ、そういえば」と思ってChatGPTに訊いてみたんですね。
そしたら一瞬で答えが返ってきやがりましたよ。
ChatGPT「httpd.confを開いてLimitRequestBody 2147483648を書いてください」ですって。俺の2時間なんてChatGPTさんにすれば数秒なんですね。改めて最近のAIチャットはすげえなって思いました。
今回の件は単純にEC2のインスタンスをM6に上げたことが直接的な原因なのか、それともM6に上げる際にENAドライバってのをインストールしなきゃいけなかったんで、その過程でyum updateをかけたことで発生したことなのかまでは原因を突き止められていないんですが、とりあえず上記のような413エラーが出たときにupload_max_filesizeとかは問題ないけどなってときはLimitRequestBodyを確認してみてください。
httpd.confとかどこ探してもLimitRequestBodyが書かれていないって場合も制限されることがあるみたいなんで、そういうときは自分で新たに追記すれば有効になります。
古いEC2のインスタンスタイプを上げるとき(m4 → m6)
この記事に関して一つ言い忘れてたんですが、M6に上げたら動画をアップロードしようとすると413というエラーが出るようになったんですよ。
413 Request Entity Too Large
Requested content-length of 1171410505 is larger than the configured limit of 1024
何かこんな感じのやつ。簡単に言うとアップロードしようとしている動画のサイズがリミットオーバーしてまっせってことなんですけど、今まで問題なくアップロードができていたのに急にこれがでてきたもんだから、ぶっちゃけ全然原因が分からなかったんですよ。
で、結論から言うと、Apacheの「LimitRequestBody」という設定に問題があったようです。どういうわけだかこのLimitRequestBodyがいきなり有効になったみたいで、それで1GBよりも大きい動画が上げられなくなってたんですね。上記のメッセージだと1024バイトに制限されてますよ的な感じなんですけど、1GB以下であればアップロードできてました。
なので例えば2GBまでアップロードできるようにしたいならhttpd.confを開いてLimitRequestBodyを2GBにすればこのエラーは解消できます。
LimitRequestBody 2147483648
こんな感じですね。実際にこれでApacheを再起動したら無事にアップロードできるようになりました。
ファイルサイズが大きすぎてアップロードできない場合、PHPだと最初に思い浮かぶのは「post_max_size」とか「upload_max_filesize」の設定だと思うんですよね。僕も最初はここが何かおかしくなっちゃったのかなと思って確認してみたんですけど、特に問題なく2GBまでいける設定のままだし、いったい何が原因なんだろうと思って2時間くらいグーグル先生の中をさまよってました。
ほんでさまよいにさまよい続けたんだけど結局原因がよく分からなくて「あ、そういえば」と思ってChatGPTに訊いてみたんですね。
そしたら一瞬で答えが返ってきやがりましたよ。
ChatGPT「httpd.confを開いてLimitRequestBody 2147483648を書いてください」ですって。俺の2時間なんてChatGPTさんにすれば数秒なんですね。改めて最近のAIチャットはすげえなって思いました。
今回の件は単純にEC2のインスタンスをM6に上げたことが直接的な原因なのか、それともM6に上げる際にENAドライバってのをインストールしなきゃいけなかったんで、その過程でyum updateをかけたことで発生したことなのかまでは原因を突き止められていないんですが、とりあえず上記のような413エラーが出たときにupload_max_filesizeとかは問題ないけどなってときはLimitRequestBodyを確認してみてください。
httpd.confとかどこ探してもLimitRequestBodyが書かれていないって場合も制限されることがあるみたいなんで、そういうときは自分で新たに追記すれば有効になります。