nginxでclient_max_body_sizeを設定する
さくらクラウドでのベンチマークを前回載せましたが、そのままnginx + fastCGI環境を作成して、WordPressを動かして、こちらのblogとは別の日記的なものとしてしばらく動かしてました。
http://www.sioazike.info/wordpress/
今日、デジカメで撮った写真をアップロードしようと思ったところ、HTTPエラーと表示され、アップロードできない事象が発生しました。最初はphp.iniの設定を疑いましたがそちらは問題なし。
調べてみるとnginxでPOST時のbodyサイズに制限があり、デフォルト1Mになっていることがわかりました。
エラー時のログにはclient intended to send too large body: 2399012 bytesというようなメッセージが見られます。
さて、設定ファイルにclient_max_body_sizeを設定すれば良いようです。今のところ使っているのはwordpressだけなので、phpのlocationのところに記載すれば良いかなと思ったので、以下のようにしました。
変更後
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name; include fastcgi_params; client_max_body_size 4M; #ここを追加 }
これで問題なくアップロードができるようになりました。