【Laravel×Apache】413 (payload too large) が出たらphp.iniを変更する
環境
課題
本番環境にて画像をアップロードしようとしたら、 413 Content Too Large
のエラーが返ってくる。
解決方法
php.ini
で、 upload_max_filesize
と post_max_size
を確認する。
まず、そもそもどこの php.ini
を読み込んでいるかを確認するために、ブラウザで phpinfo()
を書いたファイルを表示させる。
「Loaded Configuration File」 という項目が、 php.ini
を読み込んでいるパスになっている。
/etc/php.ini
の場合も別の場合もある。
そのパスの php.ini
を、広げたい容量の最大値に修正する。
// php.ini <?php // 修正前 post_max_size = 8M upload_max_filesize = 2M // 修正後 post_max_size = 10M upload_max_filesize = 8M
修正したら、Apacheを再起動。
$ sudo systemctl restart httpd
phpinfo()
にて、 「Server API」の箇所がFPM/FastCGI
とあればPHP-FPMを介してPHPを実行しているので、php-fpmの再起動も忘れずに。
$ sudo systemctl restart php-fpm
Apache 2.0 Handler
みたいにApacheのモジュールであれば、Apacheの再起動のみで良いらしい。
注意点
PHPの公式ドキュメントに下記のようにあるので、一応考慮する。
upload_max_filesize
intアップロードされるファイルの最大サイズ。 post_max_size には、 この値より大きな値を指定しなければいけません。
https://www.php.net/manual/ja/ini.core.php#ini.upload-max-filesize