サイト運用していると、かならず出るエラーが
PHP Warning: POST Content-Length of 8978294 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
これはサーバーに設定されているアップロードの上限を超えたファイルをアップしようとすると、よく出るエラーです。
これの対応は簡単で、php.iniの
post_max_size = 5M
等の設定を変更すればいいだけです。
ただ、ここで毎回迷います。
「あれ、アパッチ再起動必要?」
php.iniを修正した場合、ApacheやPHP-FPMの再起動が必要なのか毎回迷います。
そして、エンジニアによって「必要」「不要」と意見が分かれたりします。
結論から言うと、再起動は必要です。
じゃあ、なぜ不要だと思っている人が多いのか。
その原因はgrepした時の反映にあります。
php -i | grep 'post_max_size'
post_max_size => 8M => 8M
grepでphp.ini修正前に確認、「8M」だなと確認します。
ここでphp.iniを修正して「post_max_size」を「10M」に変更します。
vi /etc/php.ini
修正してから、もう一度grepしてみると
php -i | grep 'post_max_size'
post_max_size => 10M => 10M
となり、変更が反映されているように見えます。
しかし、これはあくまで「php -i」が読み込んでいる設定が変わっただけで、
実際に動いているApacheやPHP-FPMのプロセスはまだ古い設定を読み込んだままです。
「え!そうなの?」
と思っている方多いと思います。
実際の反映を見るにはphpinfo()関数を使って確認するのが一番確実です。
phoinfoでブラウザを見てみると

post_max_size 8M 8M
となっているのがわかります。
つまり、php.iniを修正した場合はApacheやPHP-FPMの再起動をしないと実際には反映されていないのです!!!
ここを勘違いしている人が時々いて、何人かのエンジニアが「php.ini修正しても再起動不要」と言っているのを聞いたことがあります。
php.liniを修正したら、再起動必要やで!!

コメント