【php.ini】php.iniを修正したら再起動は必要?

サイト運用していると、かならず出るエラーが

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を修正したら、再起動必要やで!!

コメント