php.ini ファイルに変更を加えたので、PHP パッケージを更新するたびに php.ini ファイルを更新しません。変更を別のファイルに「フォーク」して、変更を失うことなく実際の php.ini ファイルを更新できるようにしたいと思います。
PHP 5.3 ではディレクトリごとの .ini ファイルが導入されたことは承知していますが、私のサーバーには複数の仮想ホスト (つまり複数のドキュメント ルート) があるため、ディレクトリごとのアプローチを使用してオーバーライドする php.ini ファイルを配置できる場所が 1 つもありません。
PHP で「修正中の」php.ini ファイルをチェックする方法はありますか?
答え1
PHP は特定のディレクトリから追加の .ini ファイルを読み込みます。Debian 8 ボックスでは、そのディレクトリは次のようになります/etc/php5/apache2/conf.d
。
そのディレクトリ内のファイルはアルファベット順に読み込まれるため、たとえばファイルに名前を付けると00-overrides.ini
、そのファイルが最初に読み込まれるようになります。そのファイルで設定された設定は、デフォルトの php.ini で設定された設定よりも優先されます。
答え2
PHP を Apache モジュールとして実行している場合は、PHP が php.ini を検索するディレクトリ パスを設定するディレクティブがあります。
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/php"
この例は Windows 用ですが、Linux システムでも同様に動作します。
指定された場所のphp.iniは交換するphp.ini をデフォルトの場所に置くと、上書きしたり拡張したりすることはありません。
この方法では、PHPを更新すると、デフォルトの場所にあるphp.iniが上書きされますが、カスタムphp.iniは上書きされません。
参照:http://php.net/manual/en/install.windows.apache2.php#install.windows.apache2.module