web-dev-qa-db-ja.com

Apacheおよび/またはCLIのphp.iniを修正する正しい方法

いくつかのPHPディレクティブ、Apache用、CLI用、両方用のディレクティブを変更して追加したいと思います。例として、すべてのサーバーコンテキストにデフォルトのタイムゾーンを設定します。これについてはいくつかの方法がありますが、どちらが最善の方法かわかりません。

ここで/etc/php/7.0/Apache2/php.ini/etc/php/7.0/cli/php.iniにあるマスターphp.iniファイルを直接編集できますが、アップグレード時にこのファイルが上書きされるかどうかはわかりません。また、タイムゾーンなどの共有設定の場合、2つのファイルを編集し、それらの変更を同期したままにしておく必要があります。

Apacheのphp_admin_valuephp_admin_flagphp_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に追加する単一のディレクティブファイルを作成できます。これでできないのは、仮想ディレクティブによる仮想ホストだけです。

これを適切に行う方法に関するアドバイスはありますか?

6
Dom

参考までに、 構成 パッケージによってインストールされた/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が提供するシステムを編集する必要はありません。

関連する:

5
aaditya1234