コードロード

エラー討伐

【Laravel×Apache】413 (payload too large) が出たらphp.iniを変更する

環境

課題

本番環境にて画像をアップロードしようとしたら、 413 Content Too Large のエラーが返ってくる。

解決方法

php.ini で、 upload_max_filesizepost_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

参考

www.suzu6.net

techtech-note.com

【Laravel】413 (payload too large) が出た時の対処法 - ポッポプログラミング

qiita.com