nginxのPHPのアップロードファイルサイズの変更方法。

WordPressで画像をアップした所画像がアップできませんでした。
結果を3行でいうと以下で解決。

  • nginxのclient_max_body_sizeを上げる。
  • php.iniで、upload_max_filesizeを上げる
  • php-fpmのrestartとnginxのreload

以下いくつか段階があったようなのでその解決方法の詳細

1、httpエラーがでる。

この場合はnginxが送信できるhttpのbodyサイズが不足していました。
私の環境の場合は、以下の設定ファイルを書き換えてnginxをreloadして解決しました。

ファイル : /etc/nginx/nginx.conf (共通の設定ファイルの最後当たりに追加)

http {
    (中略)
    client_max_body_size 50M;
    include /etc/nginx/conf.d/*.conf;
}

(ドメインごとの設定ファイルなどで変更ができるように includeの前にいれました。)

2、PHPのファイルアップロード制限

しばらく大丈夫だったのですが、今度はWordPressでアップロードした場合に上限だとエラーメッセージがでました。

6000x4028-17M.jpg exceeds the maximum upload size for this site.

これはPHPの設定 ‘upload_max_filesize’ が原因でした。
まずサーバーで値を確認。

# php --info | less
//'upload_max_filesize'を検索。
upload_max_filesize => 2M => 2M
//と2MBにっているさらに'php.ini'で検索してphp.iniの場所を確認。
 Loaded Configuration File => /etc/php.ini

/etc/php.iniを編集します。

# vim /etc/php.ini
//以下の部分を元の 2Mから10Mへ変
upload_max_filesize = 10M
//保存して10Mになっていることを確認
# php --info
upload_max_filesize => 10M => 10M

そしてnginx再起動

# systemctl restart nginx

でアップロードすると、あれできない。。と少し悩む。
あーphp-fpmもかと。

# systemctl restart php-fpm.service

として解決