web-dev-qa-db-ja.com

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

[〜#〜] lamp [〜#〜]NameVirtualHostsを使用してさまざまなWebサイトにサービスを提供しているサーバーがあります。

最近までglobal php.iniファイルで問題ありませんでしたが、最近、開発者の1人がphp.iniでグローバルに設定したくない設定を要求しました。

Php.iniファイルをper-siteベースで設定できると聞いたことがあると思いますが、これを行う方法がわかりません。

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

10
Brent

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
14
Zoredache

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 を参照してください。

7
StackKrish

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

1

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

1
Walter