Apache再起動してもphp.iniが反映されず困った時のこと

PHP
スポンサーリンク

前置き

VagrantのBOXファイルから開発環境を構築してた時のこと。
php.iniで規定値を変更せざるを得ない状況になりました。
これ自体はやりなれている作業なのでいつも通りiniの対象箇所を変更してApache再起動を実行。

何の気なしに確認作業をしたところ、反映されてない…なぜ?!

勿論、読み込んでいるphp.iniもphpinfoで確認済。


検討付かず、しばらくてんぱってApacheを何度も再起動 + vagrant reloadを繰り返してしまうというみっともない始末に汗

環境

RHEL 8.3(Red Hat Enterprise Linux 8.3)
Apache 2.4
PHP 7.3

結論

PHP-FPMの再起動が必要

PHP-FPMを使用しているためPHP-FPM側の再起動も必要だった

$ sudo systemctl restart php-fpm

※ CentOS7も同等のコマンドでOKです

補足

PHPの実行方式には大きくモジュール形式CGI形式の2つがあります。

一般的に使われることが多い、モジュール形式はApacheが直接PHPを実行しているためApacheの再起動のみで良いそうです。

今回はCGI形式のPHP-FPM(FastCGI Process Manager)を通してPHPを実行しているためPHP-FPMを再起動して設定を反映させてあげる必要があったということらしいですね。

実行方式はPHP.iniの「Server API」から確認することができます。

■モジュール形式の場合

■CGI形式の場合


私事ですが、最近、OS検証で様々な環境をローカルに構築しており、二つの実行形式を交互に検証テストしております。
同じような操作のため、一つの基準しか持ち合わせていなかったため気づきが遅くなってしまったことに未熟さを感じます。

今回の発見によって引き出し、考え方のバリエーションが広がり経験値が増えたことを実感できました。


タイトルとURLをコピーしました