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
として解決