nginx +php-fpm+ wordpressで最大アップロードサイズを変更するための方法を紹介します。デフォルトでは最大アップロードサイズは2MBぐらいが上限なのですが、動画をアップロードしてブログに乗せる場合は2MBになってしまうことが多いため、上限の変更が必要になります。

PHPのpost_max_sizeとupload_max_filesizeを変更する

PHP自体の設定にファイルアップロードの上限設定があるため、/etc/php.iniの下記の行の設定を変更します。(最大アップロードサイズにした値とする)

post_max_size = 40M
upload_max_filesize = 30M

wordpressのアップロードファイルの最大サイズを変更する

wordpressのサイトネットワークの設定画面から「アップロードファイルの最大サイズ」を変更します。これはブラウザでwordpressの管理画面にログインすれば画面から変更可能です。

nginxの設定ファイルにclient_max_body_sizeを設定する

nginxの上限の設定変更も必要になります。これを行わないとアップロード画面でHTTPエラーとなり、nginxのログに「client intended to send too large body」のようなエラーが出力されます。

nginxの設定変更は、/etc/nginx/conf.d/xxx.confに以下の設定を追加します。

location ~ ^/wordpress/.*\.php {
  client_max_body_size 15m; #この行を追加
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
 }