CrystalSnowman.com

あなたの時間節約につながる情報を提供します

httpエラーのためWordPressに2MB以下のファイルがアップロード出来ずハマった件

wordpress_upload_screen_error

WordPressは画像ファイルなどをアップロードすることができますが、最大2MBまでの制限があります。ところが2MB以下のファイルをアップロードしようとしてもhttpエラーになることがありました。その原因を調査して解決できたので、そのあたりの経緯を書きます。このサイトのWebサーバであるnginxの設定が原因でした。

2MB以下のファイルがアップロードできない

記事を投稿中に画像ファイルをアップロードしようと思いました。ファイルサイズが2MB以下であると知っていた私は1MBを少し超えるファイルをアップロードしました。

wordpress_upload_screen

ところがこのようなエラーが出ました。
wordpress_upload_screen_error

そこでいろいろなサイズのファイルをアップロードしてテストしてみました。
その結果ファイルサイズが1MBを超えるとエラーになることが分かりました。

原因調査

「wordpress」と「httpエラー」のキーワードで検索して以下のサイトを参考にさせていただきましたが、エラーは解決しません。
WordPressで画像がアップロードできない場合の原因と対策一覧

さらにWebを徘徊して以下のサイトを読んだとき、原因はWordPress側ではなく、Webサーバ側では?とひらめきました。
WordPress の「HTTPエラー。」でメディアアップロードができない、を調査

ちなみに私のサイトのWebサーバはApacheではなくnginxを使用しています。そこでnginxについて調査を開始しました。

nginxの設定を調べる

まずnginxが出力するログファイルを調査しました。
こんなことが書かれていました。

そこでclient intended to send too large bodyのキーワードで検索したところ、以下の記事が見つかりました。
nginxで”client intended to send too large body”が発生した時の対策方法

どうやらnginxの設定ファイルであるnginx.confで、client_max_body_size項目を設定する必要がありそうです。

nginx.confの設定変更

「client_max_body_size」とはhttpリクエストのサイズ上限を設定する項目です。この項目を指定しない場合デフォルトの1MBがアップロードできるサイズ上限となります。

こちらを参考にさせていただき、nginx.confの設定を変更しました。
お名前.com VPS にNginxでWordPressを構築。設定の意味もまとめた

vi /etc/nginx/nginx.conf」でファイルを次のように編集しました。
とりあえず上限は3MBにしました。

nginx -s reload」でnginxを再起動して設定を反映させます。
無事1MB以上のファイルがアップロードできました。

最後に

今回はWordPressのファイルアップロードエラーがnginxの設定によるものであると書いてあるそのものずばりのサイトを見つけることができませんでした
(よくあることですが)。そのため解決に時間がかかってしまいました。
私がハマった経験があなたのお役に立てれば幸いです。


Top