diverse impostazioni php.ini per vari virtualhost (php-fpm)


11

Ho cercato qui su serverFault e ho trovato questa soluzione ...

Includere questo nell'host virtuale dovrebbe funzionare:

  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

Ma di quanto mi sia reso conto, non sto usando mod_php. Ho installato php-fpm. E davvero non riesco a trovare alcuna informazione se il mio metodo funzionerà o se esiste un modo alternativo ...

Quindi, cosa devo fare se ho php-fpm e vorrei avere impostazioni diverse per virtualhost?

S.


Perché mai vorresti citazioni magiche? Quelli sono cattivi.
Nathan C

@NathanC Lo so, ma l'autore dello script è stato anche abbastanza scortese da dirmi: "Sì, sono necessari tutti i requisiti, ecco perché sono requisiti."

Se solo fosse possibile licenziare quell'autore dello script.
Nathan C

@NathanC sì, odio gli sviluppatori snob :) solo se avessi tempo, lo svilupperei da solo: S

Sì da opp 0pu66996 9 6 79
sbrattla,

Risposte:


8

Su php-fpm, di solito lo si imposta nel pool fpm del dominio. I pool sono inclusi nel file di configurazione principale di php-fpm, che si trova sul mio server all'indirizzo /etc/php/fpm-php5.3/php-fpm.conf:

...

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

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

In fpm-pool-config, puoi impostare php_admin_flage php_admin_valuecosì:

...

;   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

Avevo un server affamato di RAM e volevo evitare di configurare più pool per ciascuno dei siti a basso traffico che stavo gestendo. Inoltre non mi sono piaciuti i problemi di sicurezza di .user.ini's basato su directory, quindi ho implementato una soluzione diversa usando "sezioni" php.ini:

http://php.net/ini.sections

Puoi definire sezioni di php.ini (nel mio caso, /etc/php5/fpm/php.ini) che sono specifiche del percorso o dell'host. In fondo, ho:

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

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

Ho letto altrove che se si utilizza il metodo host, è necessario utilizzare il valore specifico definito in ServerName nella configurazione di VirtualHost, non nessuno degli alias.

PS Tutto questo è stato fatto su Debian Jessie 8.4



0

Per nginx utilizzare questa soluzione:

Dato PHP 5.3.3che puoi usare questo comando nel tuo nginxfile -vhost.

Esempio per l'impostazione maxlifetimedelle sessioni:

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

    ...

    location ~ \.php$ {
        ...

        fastcgi_param PHP_VALUE "session.gc_maxlifetime=604800";
        fastcgi_param PHP_VALUE "session.cookie_lifetime=604800";
    }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.