不同虛擬主機(php-fpm)的不同 php.ini 設定

不同虛擬主機(php-fpm)的不同 php.ini 設定

我在 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 並且想要對虛擬主機進行不同的設置,我該怎麼辦?

S。

答案1

在 php-fpm 上,您通常會將其設定在網域的 fpm 池中。這些池包含在 php-fpm 的主 conf 檔案中,該檔案位於我的伺服器上/etc/php/fpm-php5.3/php-fpm.conf

...

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

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

在 fpm-pool-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

答案2

我有一台記憶體消耗很大的伺服器,並且希望避免為我運行的每個低流量網站配置多個池。我也不喜歡基於目錄的 .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 配置中 ServerName 中定義的特定值,而不是任何別名。

PS 這一切都是在 Debian Jessie 8.4 上完成的

答案3

您可以將這些標誌包含在您需要這些設定的每個虛擬主機下的 .htaccess 檔案中。看:http://www.php.net/manual/en/configuration.file.per-user.php

答案4

對於 nginx 使用此解決方案:

因為您可以在-vhost-filePHP 5.3.3中使用此命令。nginx

設定maxlifetime會話數範例:

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

    ...

    location ~ \.php$ {
        ...

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

相關內容