ファイルをアップロードするとエラーが出る
画像をアップロードしようとしたところ、
このサイトのアップロードサイズ上限を超えています。
というエラーが出てしまいました。
- 環境
- Ubuntu 18.04 LTS
- Nginx
- PHP 7.2
原因1:Nginxのデフォルト設定
原因1はNginxのデフォルト設定で、POST最大サイズが1MBまでになっているためです。
設定ファイルを書き換えて変更します。
原因2:PHPのデフォルト設定
原因2はPHPのデフォルト設定で、アップロードできるファイルサイズが2MBまでになっているためです。
こちらも設定ファイルを書き換えて変更します。
原因1 解決方法:Nginxの設定ファイルを編集する
Nginxの設定ファイルを編集します。
$ cd /etc/nginx/ $ sudo nano nginx.conf http { (-中略-) client_max_body_size 50M; #includeの前に上の1行を追記。この場合上限50MBになる。 include /etc/nginx/conf.d/*.conf; (-中略-) } $ sudo systemctl restart nginx
原因2 解決方法:PHPの設定ファイルを編集する
PHPの設定ファイルを編集します。
注意点
設定するサイズは以下の大小関係を満たしてください。
memory_limit>post_max_size>upload_max_filesize
$ cd /etc/php/7.2/fpm $ sudo nano php.ini #以下の設定項目を検索して変更する。 upload_max_filesize = 25M #アップロードできるファイルサイズの上限。この場合25MBになる。 post_max_size = 50M #POSTできるファイルサイズの上限。この場合50MBになる。 memory_limit = 256M #PHPが使えるメモリサイズの上限。この場合256MBになる。(初期値の128Mでも良いらしい。) $ sudo systemctl restart php7.2-fpm $ sudo systemctl restart nginx
この2点を変更することで、エラーが出ずにアップロードできる様になるはずです。
お疲れ様でした。