web-dev-qa-db-ja.com

さまざまな仮想ホストの異なるphp.ini設定(php-fpm)

私はserverFaultでここの割り当てを検索し、この解決策を見つけました...

これを仮想ホストに含めると機能するはずです。

  php_admin_flag register_argc_argv = On
  php_value max_execution_time = 1000
  php_value session.gc_maxlifetime = 15000
  php_admin_flag magic_quotes_gpc = on

しかし、気がついたのですが、私はmod_phpをまったく使用していません。 php-fpmをインストールしました。そして、私の方法が機能するか、別の方法がある場合、私は本当に情報を見つけることができません...

では、php-fpmを使用していて、virtualhostの設定を変更したい場合はどうすればよいですか?

S.

11
user113400

Php-fpmでは、通常、これをドメインのfpmプールに設定します。プールはphp-fpmのメインのconf-fileに含まれています。これは私のサーバーの/etc/php/fpm-php5.3/php-fpm.confにあります。

...

;;;;;;;;;;;;;;;;;;;;
; Pool Definitions ; 
;;;;;;;;;;;;;;;;;;;;

include=/var/www/*/conf/fpm-pool.conf

Fpm-pool-configでは、次のようにphp_admin_flagphp_admin_valueを設定できます。

...

;   php_value/php_flag             - you can set classic ini defines which can
;                                    be overwritten from PHP call 'ini_set'. 
;   php_admin_value/php_admin_flag - these directives won't be overwritten by
;                                     PHP call 'ini_set'
php_flag[display_errors]            = on
php_admin_value[error_log]          = /var/www/cloud/logs/php_err.log
php_admin_flag[log_errors]          = on
php_admin_value[memory_limit]       = 1024M
#php_value[max_execution_time]       = 30
php_admin_value[upload_max_filesize] = 4G
php_admin_value[post_max_size]      = 4.2G
php_admin_value[max_input_time]     = 3600
php_admin_value[max_execution_time] = 3600
8
etagenklo

RAMを大量に消費するサーバーがあり、実行中のトラフィックの少ないサイトごとに複数のプールを構成しないようにしたいと考えました。また、ディレクトリベースの.user.iniのセキュリティ上の懸念も気に入らなかったため、php.iniの「セクション」を使用して別のソリューションを実装しました。

http://php.net/ini.sections

パスまたはホストに固有のphp.ini(私の場合は/etc/php5/fpm/php.ini)のセクションを定義できます。一番下に、私は持っています:

[Host=host1.example.com]
auto_prepend_file = '/var/www/something'

[Host=host2.example.net]
upload_max_filesize = 5M

Hostメソッドを使用する場合は、エイリアスではなく、VirtualHost構成のServerNameで定義された特定の値を使用する必要があることを他の場所で読みました。

追伸これはすべてDebian Jessie 8.4で行われました

4
jaydisc

これらのフラグを、これらの設定が必要な各仮想ホストの下の.htaccessファイルに含めることができます。参照: http://www.php.net/manual/en/configuration.file.per-user.php

1
Nathan C

nginxの場合、このソリューションを使用します:

PHP 5.3.3nginx- vhost-fileでこのコマンドを使用できます。

セッションのmaxlifetimeを設定する例:

server {
    listen 80;
    listen [::]:80;

    ...

    location ~ \.php$ {
        ...

        fastcgi_param PHP_VALUE "session.gc_maxlifetime=604800";
        fastcgi_param PHP_VALUE "session.cookie_lifetime=604800";
    }
}
0
Codename