いくつかのPHPディレクティブ、Apache用、CLI用、両方用のディレクティブを変更して追加したいと思います。例として、すべてのサーバーコンテキストにデフォルトのタイムゾーンを設定します。これについてはいくつかの方法がありますが、どちらが最善の方法かわかりません。
ここで/etc/php/7.0/Apache2/php.ini
と/etc/php/7.0/cli/php.ini
にあるマスターphp.iniファイルを直接編集できますが、アップグレード時にこのファイルが上書きされるかどうかはわかりません。また、タイムゾーンなどの共有設定の場合、2つのファイルを編集し、それらの変更を同期したままにしておく必要があります。
Apacheのphp_admin_value
、php_admin_flag
、php_value
およびphp_flag
ディレクティブを使用できます。ここでの利点は、php設定を仮想ホストごとに仮想ホストに適用でき、Apacheにグローバルに適用できることです。ただし、これはCLI設定には役立ちません。
Phpディレクトリは、Apacheと同様の構造を持ち、phpenmod
コマンドを使用してディレクティブでいっぱいのファイルを有効または無効にできます。この構造をコピーして、ディレクトリ/etc/php/7.0/mydirectives
を作成し、php.ini
ファイルをこのフォルダー内に配置し、/etc/php/7.0/Apache2/conf.d/
からphp.iniディレクティブファイルへのシンボリックリンクを作成できます。これにより、ディレクティブをboth ApacheおよびCLIバージョンのPHPに追加する単一のディレクティブファイルを作成できます。これでできないのは、仮想ディレクティブによる仮想ホストだけです。
これを適切に行う方法に関するアドバイスはありますか?
参考までに、 構成 パッケージによってインストールされた/etc/
のファイルは、デフォルトでは上書きされません。アップグレード時に、ファイルが変更された場合、プロンプトに options が表示されます。
元の質問に戻って、ここに私がそれをする方法があります:
構成ファイル/etc/php/7.0/mods-available/50-mydirectives.ini
を作成し、そこで一般的な構成を行います。次に、phpenmod mydirectives
を使用して有効にします。
/etc/php/7.0/Apache2/conf.d/
および/etc/php/7.0/cli/conf.d/
でそれぞれApache
およびcli
固有の構成を実行します。
仮想ホスト自体で仮想ホスト固有の構成を行います。
上記の構成では、php.ini
が提供するシステムを編集する必要はありません。
関連する: