NameVirtualHostsを使用してLAMPサーバーにサイトごとのphp.iniファイルを設定するにはどうすればよいですか?


10

NameVirtualHostsを使用してさまざまなWebサイトにサービスを提供するLAMPサーバーがあります。

最近まで、グローバルなphp.iniファイルは問題ありませんでしたが、最近、私たちの開発者の1人がphp.iniで、グローバルに設定したくない設定をリクエストしました。

サイトごとに php.iniファイルを設定できると聞いたことがありますが、これを行う方法がわかりません。

これを達成する方法について誰かが私を正しい方向に向けることができますか?

回答:


14

php.iniに配置するほとんどの設定は、.htaccessまたはそのサイトのApache構成にも配置できます。たとえば、私の仮想ホストの1つは.htaccessにこれを持っています

    php_value display_errors 1
    php_value register_globals 0
    php_value short_open_tag 0
    php_value magic_quotes_runtime 0
    php_value magic_quotes_gpc 0
    php_value session.name "PHPSESSID_SITEBLAH"
    php_value session.gc_maxlifetime 57600
    php_value session.gc_probability 1
    php_value session.gc_divisor 500

これは私にはうまくいかないようです。これを可能にするために、マスターphp.iniに設定する必要があるディレクティブのようなものはありますか?
ブレント

1
これを機能させるには、「AllowOverrideオプション」または「AllowOverride All」をAPache構成で設定する必要があります。
StackKrish 2009

たとえば、値がファイルの値をapache.conf上書きするphp.iniか、またはその逆ですか?
PUK

7

Apache構成ファイル(httpd.conf / apache.conf)で構成設定を指定することもできます。あなたの場合、コンテキスト内で設定値を指定できます。

次の例では、仮想ホストexample.comのupload_max_filesizeを10Mに設定する必要があります。

<VirtualHost *>
    ServerName example.com
    DocumentRoot /path_to_docroot
    php_value upload_max_filesize 10M
    php_admin_flag allow_url_fopen on
</VirtualHost>

この値をサイト全体ではなく、アプリケーションが存在する特定の1つのディレクトリに設定する場合は、内で値を指定できます。

<VirtualHost *>
   ServerName example.com
   DocumentRoot /path_to_docroot
  <Location /testApp/>
     php_value upload_max_filesize 10M
     php_admin_flag allow_url_fopen on
  </Location>
</VirtualHost>

詳細については、http://php.net/manual/en/configuration.changes.phpを参照してください。


+1奇妙なことに、他に何もうまくいきませんでした。ローカルhtaccess、php iniファイル、どれも動作しませんでした。
boot13 2015年

ありがとう!たぶん誰かがmod-securityパラメータを上書きする必要があるという問題に遭遇します。これは、DIRECTORYまたはLOCATIONレベルではなく、vhostレベルでのみ機能します。その理由は、ディレクトリまたはロケーションブロックが読み取られる前にmod-secが設定されているためです。
ora-600

1

もう1つの提案は、PHPを独立したスタンドアロンデーモンとして実行するmod-fastcgiまたはmod-fcgiを使用することです。次に、Webサイトごとに、個別のユーザーとphp.ini構成ファイルを定義できます。


1

さらに別のオプションはsuPHPで、これを使用すると、VirtualHostごとにphp.iniを定義できます。また、各VirtualHostのPHPバージョンを指定することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.