INI の設定がすぐに反映されない

問題

newrelic.ini ファイルを変更しても、すぐに反映されない。

対策

INI の設定を変更した後、Web サーバー (Apache など) を再起動する。

原因

Apache など、お使いの Web サーバーが最初に起動し、PHP を初期化したとき、全 INI の設定が読み込まれます。そして、欠落している設定には、グローバルなデフォルト値が設定されます。

Apache は、その後のリクエストを処理するための「ワーカー」プロセスのプールを作成します。このワーカープロセスは、初期化時に設定設定を継承します。どのワーカープロセスがリクエストを処理しているかを正確に知る方法はありません。INIファイルの変更を行った時、古い設定のままの数百のワーカープロセスが残っているの可能性があります。そして、メインの Apache プロセス自体(定期的に既存のワーカープロセスを殺して、新しいワーカープロセスを起動します)は、元の INI 設定となっています。

Apache サーバーを再起動するまで、INI ファイルへの変更は、反映されません。.htaccess ファイルを使用して PHP の「ディレクトリごと」の設定メカニズムを使用する場合は例外です。このような設定はまれです。