web-dev-qa-db-ja.com

VirtualHostsごとに異なるphp.iniファイルを使用する方法は?

私のサイトがあり、Apacheを実行している同じCentOSマシンで実行されているステージングサブドメインです。サブドメインはVirtualHostを使用して作成され、本番環境にプッシュする前にバグを見つけるために使用します。ステージングVirtualHostのphp.iniファイルを開発用にしたいので、本番サイトでは本番用のphp.iniを使用します。異なるphp.iniファイルを使用するようにApacheを構成するにはどうすればよいですか?すべてにphp_value/php_flagを使用するのではなく、すでに利用可能なphp.iniファイルを使用するだけです。このような.htaccessファイルを作成してみましたが、

SetEnv PHPRC /path/to/php.ini/directory

Phpinfo()はまだ/etc/php.iniを使用していると言っているため、これは効果がありません。また、仮想ホスト(wwwとステージング)の両方にPHPIniDirを設定しようとしましたが、ディレクティブを2回表示することについて不平を言っています。

1
gsingh2011

実際、各仮想ホストに異なるphp.iniファイルを指定することは不可能です

ただし、 ini_set() 関数を使用して、php.iniファイルのほぼすべてのを変更できます

  • 特定の構成オプションの値を設定できます。構成オプションは、スクリプトの実行中にこの新しい値を保持し、スクリプトの終了時に復元されます。
  • ini_set() を使用して、使用可能なすべてのオプションを変更できるわけではありません。利用可能なすべてのオプションのリストがあります here 。したがって、「PHP_INI_USER」モードを持つすべてのディレクティブは、実行時に ini_set() 関数を使用して変更できます。
1
fsenart