Avec FPM il est possible d'exécuter plusieurs pools de processus avec des paramÚtres différents.
Voici les paramĂštres qui peuvent ĂȘtre ajustĂ©s par pool.
-
listen
chaĂźne de caractĂšres
-
L'adresse pour accepter des requĂȘtes FastCGI. Syntaxes valides :
'ip.add.re.ss:port', 'port', '/path/to/unix/socket'.
Cette option est obligatoire pour chaque pool.
-
listen.backlog
entier
-
Affecte listen(2) backlog.
Une valeur de -1 signifie le maximum sur les systĂšmes BSD.
Valeur par défaut : -1 (FreeBSD ou OpenBSD)
ou 511 (Linux et autres plateformes).
-
listen.allowed_clients
chaĂźne de caractĂšres
-
Liste des adresses IPv4 ou IPv6 des clients FastCGI autorisés à se connecter.
C'est équivalent à la variable d'environnement FCGI_WEB_SERVER_ADDRS dans le
systĂšme FastCGI original de PHP (5.2.2+). N'a de sens qu'avec un socket tcp en
Ă©coute. Chaque adresse doit ĂȘtre sĂ©parĂ©e par une virgule. Si cette valeur n'est
pas précisée, les connexions seront acceptées depuis toute adresse ip.
Valeur par défaut : non définie (toute adresse IP acceptée).
-
listen.owner
chaĂźne de caractĂšres
-
Affecte les permissions pour le socket Unix si utilisé. Sous Linux, les permissions read/write
doivent ĂȘtre affectĂ©es pour autoriser des connexions depuis un serveur web. Beaucoup de systĂšmes
dérivés BSD autorisent les connexions quelles que soient les permissions.
Valeurs par défaut : user et group sont ceux de l'utilisateur courant, le mode est 0660.
-
listen.group
chaĂźne de caractĂšres
-
Voir listen.owner.
-
listen.mode
chaĂźne de caractĂšres
-
Voir listen.owner.
-
listen.acl_users
chaĂźne de caractĂšres
-
Quand les listes de contrÎle d'accÚs POSIX sont supportées, il est possible de les définir en utilisant cette option.
Quand défini, listen.owner et listen.group
sont ignorés.
La valeur est une liste de noms d'utilisateurs séparés par des virgules.
-
listen.acl_groups
chaĂźne de caractĂšres
-
Voir listen.acl_users.
La valeur est une liste de noms de groupes séparés par des virgules.
-
listen.setfib
int
-
Définit la table de routage associée (FIB). FreeBSD uniquement.
Valeur par défaut : -1. à partir de PHP 8.2.0.
-
user
chaĂźne de caractĂšres
-
Utilisateur Unix des processus FPM. Cette option est obligatoire.
-
group
chaĂźne de caractĂšres
-
Groupe Unix des processus FPM. Si non précisé, le groupe de l'utilisateur est
utilisé.
-
pm
chaĂźne de caractĂšres
-
Choisit comment le gestionnaire de processus va contrĂŽler le nombre de processus fils.
Valeurs possibles : static, ondemand,
dynamic. Option obligatoire.
static - nombre de processus fils fixés (pm.max_children).
ondemand - le processus se réactive à la demande
(lorsque demandĂ©, c'est l'opposĂ© de dynamique oĂč pm.start_servers
sont démarrés lorsque le service démarre).
dynamic - nombre de processus fils dynamiques basé sur les directives suivantes:
pm.max_children, pm.start_servers,
pm.min_spare_servers, pm.max_spare_servers.
-
pm.max_children
entier
-
Nombre de processus fils à créer lorsque pm est réglé sur
static. Nombre maximum de processus fils à créer lorsque
pm est réglé sur dynamic ou ondemand.
Option obligatoire.
Cette option affecte la limite du nombre de requĂȘtes simultanĂ©es qui seront servies. Ăquivalent Ă
ApacheMaxClients avec mpm_prefork et à PHP_FCGI_CHILDREN dans l'implémentation originale
de FastCGI de PHP.
-
pm.start_servers
entier
-
Nombre de processus fils à créer au démarrage. Utilisé seulement si
pm est réglé sur dynamic.
Valeur par défaut : (min_spare_servers + max_spare_servers) / 2.
-
pm.min_spare_servers
entier
-
Nombre minimum de processus au repos (idle) voulus. Utilisé seulement si
pm est réglé sur dynamic. Obligatoire dans
ce cas.
-
pm.max_spare_servers
entier
-
Nombre maximum de processus au repos (idle) voulus. Utilisé seulement si
pm est réglé sur dynamic. Obligatoire dans
ce cas.
-
pm.max_spawn_rate
int
-
Nombre maximum de taux de génération de processus enfants simultanés. Utilisé seulement si
pm est défini à dynamic.
Valeur par défaut : 32
-
pm.process_idle_timeout
mixed
-
Nombre de secondes aprÚs lesquelles un processus inactif sera tué.
UtilisĂ© uniquement quand pm est dĂ©fini Ă
ondemand.
Unités disponibles : s (secondes)(par défaut), m (minutes), h (heures), ou d (jours).
Valeur par défaut : 10s.
-
pm.max_requests
entier
-
Nombre de requĂȘtes que chaque processus fils devrait exĂ©cuter avant de renaĂźtre.
Ceci peut ĂȘtre utile pour contourner des fuites mĂ©moires dans des bibliothĂšques tierces.
Pour un traitement sans fin des requĂȘtes, prĂ©cisez '0'. Ăquivalent Ă
PHP_FCGI_MAX_REQUESTS. Par défaut : 0.
-
pm.status_listen
string
-
L'adresse sur laquelle accepter la demande de statut FastCGI. Cela crée un nouveau pool invisible
qui peut traiter les requĂȘtes indĂ©pendamment. Ceci est utile si le pool principal est occupĂ© par des
requĂȘtes de longue durĂ©e car il est toujours possible d'obtenir la
page de statut de FPM avant qu'elles ne soient terminées.
La syntaxe est la mĂȘme que pour la directive listen.
Valeur par défaut : none.
-
pm.status_path
chaĂźne de caractĂšres
-
L'URI vers la page de statut de FPM.
Cette valeur doit commencer par une barre oblique (/). Si cette valeur n'est pas définie,
aucun URI ne sera reconnu en tant que page de statut. Valeur par défaut : none.
-
ping.path
chaĂźne de caractĂšres
-
L'URI de ping pour appeler la page de monitoring de FPM. Si aucune valeur n'est précisée,
aucune page de ping ne sera disponible. Ceci pourrait ĂȘtre utilisĂ© pour tester depuis l'extĂ©rieur
si FPM est toujours disponible et prĂȘt Ă rĂ©pondre. Il est Ă noter que la valeur doit commencer par un
slash (/).
-
ping.response
chaĂźne de caractĂšres
-
Cette directive est utile pour personnaliser la rĂ©ponse Ă une requĂȘte de ping.
La réponse est formatée comme text/plain avec un code de réponse de 200.
Valeur par défaut : pong.
-
process.priority
entier
-
Spécifier la priorité nice(2) à appliquer au processus de travail
(uniquement s'il est défini). La valeur peut varier de -19 (priorité
la plus élevée) à 20 (priorité la plus basse). Valeur par
défaut: non définie.
-
process.dumpable
booléen
-
DĂ©finit l'indicateur de processus dumpable (PR_SET_DUMPABLE prctl) mĂȘme
si l'utilisateur ou le groupe de processus est différent de
l'utilisateur du processus maßtre. Il permet de créer un core dump du
processus et ptrace le processus pour l'utilisateur de pool. Valeur par
défaut : no. à partir de PHP 7.0.29, 7.1.17 et 7.2.5.
-
prefix
chaĂźne de caractĂšres
-
Spécifier le préfixe pour l'évaluation du chemin
-
request_terminate_timeout
mixed
-
Le timeout pour servir une requĂȘte aprĂšs lequel le processus concernĂ© sera
tuĂ©. Cette option devrait ĂȘtre utilisĂ©e lorsque l'option 'max_execution_time'
n'arrĂȘte pas l'exĂ©cution du script pour une raison quelconque.
Une valeur de '0' signifie
'Off'. Unités disponibles : s(econdes)(défaut), m(inutes), h(eures), ou j(ours).
Par défaut : 0.
-
request_terminate_timeout_track_finished
bool
-
Le timeout défini par
request_terminate_timeout n'est pas engagé
aprĂšs un fastcgi_finish_request ou
lorsque l'application s'est terminĂ©e et que les fonctions internes d'arrĂȘt sont appelĂ©es. Cette directive
permet d'appliquer la limite de temps sans condition.
Valeur par défaut : no. à partir de PHP 7.3.0.
-
request_slowlog_timeout
mixed
-
Le timeout pour servir une requĂȘte dans laquelle la backtrace PHP sera vidĂ©e
dans le fichier 'slowlog'. Une valeur de '0' signifie 'Off'.
Unités disponibles : s(econdes)(défaut), m(inutes), h(eures), ou j(ours).
Par défaut : 0.
-
request_slowlog_trace_depth
int
-
Le niveau de profondeur de la trace de la pile de log slowlog.
Valeur par défaut : 20. à partir de PHP 7.2.0.
-
slowlog
chaĂźne de caractĂšres
-
Le journal pour les requĂȘtes lentes, par dĂ©faut :
#INSTALL_PREFIX#/log/php-fpm.log.slow.
-
rlimit_files
entier
-
Affecte la rlimit pour les descripteurs de fichiers ouverts des processus
enfants de ce pool. Valeur par défaut : valeur du systÚme.
-
rlimit_core
entier
-
Affecte la taille maximale de rlimit des processus enfants de ce pool.
Valeurs possibles : 'unlimited' ou un entier plus grand ou égal à 0.
Valeur par défaut : valeur définie par le systÚme.
-
chroot
chaĂźne de caractĂšres
-
Chroot vers ce dossier au dĂ©marrage. Cette valeur doit ĂȘtre un chemin absolu.
Si cette valeur n'est pas définie, chroot n'est pas utilisé.
-
chdir
chaĂźne de caractĂšres
-
Chdir vers ce dossier au dĂ©marrage. Cette valeur doit ĂȘtre un chemin absolu.
Valeur par défaut : dossier courant ou / si chroot.
-
catch_workers_output
booléen
-
Redirige stdout et stderr vers le journal d'erreur principal. Si non précisé,
stdout et stderr seront redirigés vers /dev/null selon les spécifications FastCGI.
Valeur par défaut : no.
-
decorate_workers_output
booléen
-
Active la décoration de sortie pour les travailleurs de sortie quand
catch_workers_output est activé.
Valeur par défaut : yes.
Disponible Ă partir de PHP 7.3.0.
-
clear_env
booléen
-
Nettoie lâenvironnement des agents FPM.
PrĂ©vient que des variables dâenvironnement arbitraires puissent
atteindre les processus FPM par le nettoyage de lâenvironnement
de ces agents avant que les variables dâenvironnement spĂ©cifiĂ©es
dans la configuration du pool ne soient ajoutées.
Valeur par défaut : Yes.
-
security.limit_extensions
chaĂźne de caractĂšres
-
Limite les extensions que le script principal FPM va ĂȘtre autorisĂ© Ă analyser.
Ceci peut prévenir les erreurs de configuration cÎté serveur.
Il est recommandĂ© de limiter FPM aux extensions .php uniquement pour empĂȘcher des utilisateurs malveillants d'utiliser d'autres extensions pour exĂ©cuter du code PHP.
Valeur par défaut : .php .phar
-
apparmor_hat
string
-
Si AppArmor est activé, permet de changer un hat (chapeau).
Valeur par défaut : non défini
-
access.log
chaĂźne de caractĂšres
-
Le fichier journal d'accÚs. Valeur par défaut : non définie
-
access.format
chaĂźne de caractĂšres
-
Le format du journal d'accĂšs.
Valeur par défaut : "%R - %u %t \"%m %r\" %s":
-
access.suppress_path
array
-
Une liste de valeurs request_uri qui devraient ĂȘtre filtrĂ©es du journal d'accĂšs.
Valeur par défaut : non définie. à partir de PHP 8.2.0.
Il est possible de passer des variables d'environnement additionnelles et mettre Ă jour les paramĂštres
de PHP d'un pool. Pour ce faire, il faut ajouter les options suivantes au
fichier de configuration du pool.