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


11

ここでserverFaultでallotを検索し、このソリューションを見つけました...

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

  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.


なぜだろう今までマジッククオートをしたいですか?それらは悪です。
ネイサンC

@NathanCは知っていますが、スクリプトの作成者は、「はい、すべての要件が必要です。それが要件である理由です。」

そのスクリプト作成者を解雇することができた場合のみ。
ネイサンC

@NathanCええ、私は卑劣な開発者が嫌いです:)時間がある場合にのみ、私はそれを自分で開発します:S

はいda opp 0pu66996 9 6 79
sbrattla

回答:


8

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-プール-config設定では、設定することができますphp_admin_flagし、php_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

4

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

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

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


1

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


1
これはmod_phpでのみ可能ですか?php-fpmをインストールしました。

私が読んだことから、これはphp-fpmでそれを達成する方法です。mod_phpを使用すると、ディレクティブをhttpd.confに含めることができます。
ネイサンC

0

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

以来PHP 5.3.3、あなたの中に、このコマンドを使用することができますnginx-vHostファイル。

maxlifetimeセッションの設定例:

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

    ...

    location ~ \.php$ {
        ...

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