容量の大きなファイルをWordPressにアップロードする際に「HTTPエラー」とだけ表示されてアップロードできないことがありました。
結論から言うと、WordPressを動かしてるWebサーバ、nginxの設定の問題でした。
環境
- OS: Ubuntu 16.04 LTS
- WordPress (4.6.1)
- nginx
- php 7.0
エラー内容
...... client intended to send too large body: 6802893 bytes, .......
サーバーのログ(自分の環境では /var/log/nginx/error.log)を見てみると、こんな感じにbodyの容量が大きすぎます的なエラーが出てきました。
解決方法
nginxの設定(/etc/nginx/sites-available/<設定ファイル>)を編集します。
server { ...(色々書かれてる) client_max_body_size 2g; # 最大サイズを2GBに設定 location / { ...(色々書かれてる) client_max_body_size 2g; # 最大サイズを2GBに設定 } }
自分の場合は、リバースプロキシサーバ、wordpressを動かしているサーバの両方にこの設定を適応したところ、無事に動作しました。
追記
(2019.11.10)
同様のエラーが他環境でも発生した際に、location内のclient_max_body_sizeだけでなく、server直下のclient_max_body_sizeも変更が必要でしたので、そのように記事も修正しました。
参考: nginxで”client intended to send too large body”が発生した時の対策方法 – Qiita
Pingback: Saba note | WordPressの”httpエラー”で画像がアップロードできない