Devant personnaliser la configuration du pool php-fpm d'un nouveau serveur, je me demande s'il est possible / autorisé / recommandé d'avoir un nouveau fichier de pool, dont le nom va par ordre alphabétique après celui d'origine, qui n'a que des valeurs qui remplacent la configuration initiale.
La configuration d'origine est /etc/php/7.0/fpm/pool.d
nommée www.conf
.
Il semblerait, selon les pages relatives à l'installation, que les ingénieurs modifient directement l'original (sauvegarde d'une copie des valeurs initiales). Par exemple
[www]
...
user www-data
group www-data
pm.max_children 2
donne après modification
[www]
...
user myapp ; was www-data
group myapp ; was www-data
pm.max_children 8 ; was 2
Mais il semble que cela puisse être une tâche à répéter après la prochaine mise à niveau de php-fpm (de plus la configuration est dans un 7.0
chemin, c'est inquiétant).
Au lieu de modifier le fichier d'origine, je voudrais le garder inchangé, et en ajouter un autre, dire wwwmyapp.conf
que cela déclarerait le même pool, et n'ayant que les valeurs qui ont changé
dans wwwmyapp.conf
[www] ; same pool!
user myapp
group myapp
pm.max_children 8
dans pool.d
, liste des fichiers
www.conf
wwwmyapp.conf
puisque dans php-fpm.conf
tous les fichiers de conf de pool sont chargés, les valeurs de wwwmyapp
seront lues après celles de www
(dans le même www
pool) et devraient remplacer les premières valeurs.
- Il semble fonctionner dans quelques tests et aucune erreur n'a été signalée, mais cela fonctionnera-t-il tout le temps et pour toutes les valeurs?
- Faut-il remplacer directement le fichier de configuration?
Impossible de trouver une réponse dans aucun document, même sur php.net.
la source
Réponses:
Impossible de trouver une confirmation "officielle" d'une autre source, mais voici un résultat après avoir fait des recherches:
En analysant le code source de
php7.0-fpm
et plus spécifiquementfpm-conf.c
, il apparaît quephp-fpm.conf
est lu en premier [ fpm_conf_load_ini_file ()],include
directives sont lues dans l'ordre, donnant une liste de fichiers grâce à glob () ,include
aura un appel récursif à la fonction de traitement comprend, etGLOB_NOSORT
option)Ainsi, nous pouvons supposer - au moins dans cette version, mais il est peu probable que cela change bientôt si l'on considère le code actuel - qu'il est sûr d'organiser les
pool.d
fichiers de configuration de répertoire dans l'ordre alphabétique; toute valeur précédemment enregistrée étant remplacée par une entrée du même nom lue après.Nous avons un moyen propre de gérer les fichiers de configuration
php-fpm
, en gardant les fichiers de distribution intacts, et en ajoutant des fichiers personnalisés dont le nom est alphabétiquement supérieur à ceux emballés, qui contiennent les quelques options qui doivent être modifiées.la source
[global]
section. par exempleemergency_restart_threshold
. Testé sur php7.1-fpm ubuntu (serveur 18).www
le seul moyen de remplacer, utilisez les noms de fichiers pool.d commewwwsomething
ou en commençant parx
,y
ouz
.Dans le cas où vous avez un fichier comme php-overrides.ini, vous devez le copier dans
/etc/php/7.0/fpm/conf.d/99-overrides.ini
Le préfixe 99 est dû à l'ordre d'exécution
la source
conf.d
les remplacements ne peuvent pas remplacer lesphp-fpm.conf
variables (uniquement enpool.d/
dessous[global]
) (note pour le futur moi)