différents paramètres php.ini pour divers virtualhost (php-fpm)

11

J'ai cherché allot ici sur serverFault et j'ai trouvé cette solution ...

L'inclure dans l'hôte virtuel devrait fonctionner:

  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

Mais que cela ne me soit apparu, je n'utilise pas du tout mod_php. J'ai installé php-fpm. Et je ne trouve vraiment aucune information si ma méthode fonctionnera, ou s'il existe une autre façon ...

Alors, que dois-je faire si j'ai php-fpm et que je souhaite avoir des paramètres différents pour virtualhost?

S.


la source
Pourquoi voudriez-vous jamais des citations magiques? Ce sont mauvais.
Nathan C
@NathanC Je sais, mais l'auteur du script a même été assez grossier pour me dire: "Oui, toutes les exigences sont nécessaires, c'est pourquoi ce sont des exigences."
Si seulement il était possible de renvoyer l'auteur du script.
Nathan C
@NathanC ouais, je déteste les développeurs snob :) seulement si j'avais le temps, je le développerais moi-même: S
Oui da opp 0pu66996 9 6 79
sbrattla

Réponses:

8

Sur php-fpm, vous définissez généralement cela dans le pool fpm du domaine. Les pools sont inclus à partir du fichier de configuration principal de php-fpm, qui se trouve sur mon serveur à /etc/php/fpm-php5.3/php-fpm.conf:

...

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

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

Dans fpm-pool-config, vous pouvez définir php_admin_flaget php_admin_valueaimer ceci:

...

;   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
etagenklo
la source
4

J'avais un serveur gourmand en RAM et je voulais éviter de configurer plusieurs pools pour chacun des sites à faible trafic que j'exécutais. Je n'aimais pas non plus les problèmes de sécurité des .user.ini basés sur les répertoires, j'ai donc implémenté une solution différente en utilisant les "sections" php.ini:

http://php.net/ini.sections

Vous pouvez définir des sections de php.ini (dans mon cas, /etc/php5/fpm/php.ini) qui sont spécifiques au chemin ou à l'hôte. Au fond, j'ai:

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

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

J'ai lu ailleurs que si vous utilisez la méthode hôte, vous devez utiliser la valeur spécifique définie dans ServerName dans la configuration VirtualHost, pas l'un des alias.

PS Tout cela a été fait sur Debian Jessie 8.4

jaydisc
la source
1

Vous pouvez inclure ces indicateurs dans un fichier .htaccess sous chaque hôte virtuel pour lequel vous souhaitez ces paramètres. Voir: http://www.php.net/manual/en/configuration.file.per-user.php

Nathan C
la source
1
N'est-ce pas possible uniquement avec mod_php? J'ai installé php-fpm.
D'après ce que j'ai lu, c'est la méthode pour l'accomplir avec php-fpm. mod_php permet aux directives d'être dans votre httpd.conf.
Nathan C
0

Pour nginx, utilisez cette solution:

Puisque PHP 5.3.3vous pouvez utiliser cette commande dans votre nginxfichier -vhost.

Exemple de configuration maxlifetimedes sessions:

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

    ...

    location ~ \.php$ {
        ...

        fastcgi_param PHP_VALUE "session.gc_maxlifetime=604800";
        fastcgi_param PHP_VALUE "session.cookie_lifetime=604800";
    }
}
Nom de code
la source