Mit FPM können mehrere Pools von Prozessen mit unterschiedlichen
Einstellungen betrieben werden. Die nachfolgenden Einstellungen können pro
Pool angepasst werden.
-
listen
string
-
Die Adresse, unter welcher FastCGI-Anfragen angenommen werden. Gültig
sind die Syntaxen: 'ip.add.re.ss:port', 'port' und
'/path/to/unix/socket'. Diese Einstellung ist für jeden Pool zwingend
notwendig.
-
listen.backlog
int
-
Stellt die listen(2)-Warteschlange (Backlog) ein. Der Wert
-1
bedeutet das Maximum auf BSD-Systemen.
Standardwert: -1
(FreeBSD oder OpenBSD) oder
511
(Linux und andere Plattformen).
-
listen.allowed_clients
string
-
Liste mit IPv4- oder IPv6-Adressen von FastCGI-Clients, denen eine Verbindung
gestattet ist. Entspricht der Umgebungsvariable FCGI_WEB_SERVER_ADDRS
im originalen PHP-FastCGI (5.2.2+). Dies ist nur bei einem empfangenden
TCP-Socket sinnvoll. Die Adressen sind durch Komma zu trennen. Wenn der
Wert leer gelassen wird, dann werden Verbindungen von beliebigen
IP-Adressen akzeptiert. Standardwert: nicht festgelegt (jede IP-Adresse wird akzeptiert).
-
listen.owner
string
-
Setzt die Berechtigungen für den Unix-Socket, falls dieser verwendet
wird. Unter Linux müssen Lese- und Schreibberechtigungen gesetzt werden,
um Verbindungen eines Webservers zu erlauben. Viele BSD-Derivate
erlauben Verbindungen unabhängig von den Berechtigungen. Standardwert:
user und group werden auf den aktuellen Benutzer gesetzt und Mode auf
0660.
-
listen.group
string
-
Siehe listen.owner
.
-
listen.mode
string
-
Siehe listen.owner
.
-
listen.acl_users
string
-
Wenn POSIX-Zugriffskontrolllisten unterstützt werden, können Sie diese
mit dieser Option einstellen. Wenn eingestellt, dann werden
listen.owner
und listen.group
ignoriert. Der Wert ist eine durch Kommas getrennte Liste von
Benutzernamen.
-
listen.acl_groups
string
-
Siehe listen.acl_users
. Der Wert ist eine durch Kommas
getrennte Liste von Gruppennamen.
-
user
string
-
Der Unix-Benutzer der FPM-Prozesse. Diese Einstellung ist zwingend
notwendig.
-
group
string
-
Die Unix-Benutzergruppe der FPM-Prozesse. Wenn nicht eingestellt, wird
als Wert die Gruppe des Standard-Benutzers verwendet.
-
pm
string
-
Legt fest, wie der Prozess-Manager die Anzahl der Kindprozesse verwaltet.
Mögliche Werte: static
, ondemand
,
dynamic
.
Diese Einstellung ist zwingend notwendig.
static
- die Anzahl der Kindprozesse ist fest
eingestellt (pm.max_children
).
ondemand
- die Kindprozesse werden gestartet, sobald
sie benötigt werden, im Gegensatz zu dynamic, wo zu Beginn bereits
pm.start_servers
Prozesse gestartet werden.
dynamic
- die Anzahl der Kindprozesse wird dynamisch
eingestellt, wobei die folgenden Einstellungen zugrunde gelegt werden:
pm.max_children
, pm.start_servers
,
pm.min_spare_servers
und
pm.max_spare_servers
.
-
pm.max_children
int
-
Die Anzahl an Kindprozessen, die erstellt werden, wenn
pm
auf static
gesetzt ist, und die
maximale Anzahl an Kindprozessen, die erstellt werden, wenn
pm
auf dynamic
gesetzt ist. Diese
Einstellung ist zwingend notwendig.
Diese Einstellung legt das Limit für die Anzahl gleichzeitiger
Verbindungen fest. Gleichzusetzen mit der ApacheMaxClients-Direktive mit
mpm_prefork und der Umgebungsvariable
PHP_FCGI_CHILDREN im originalen PHP-FastCGI.
-
pm.start_servers
int
-
Die Anzahl an Kindprozessen, die beim Start erstellt werden. Wird nur
verwendet, wenn pm
auf dynamic
gesetzt ist. Standardwert: min_spare_servers + (max_spare_servers -
min_spare_servers) / 2.
-
pm.min_spare_servers
int
-
Die gewünschte Mindestanzahl an Serverprozessen im Leerlauf. Wird nur
verwendet, wenn pm
auf dynamic
gesetzt ist. Ebenfalls zwingend notwendig.
-
pm.max_spare_servers
int
-
Die gewünschte Maximalanzahl an Serverprozessen im Leerlauf. Wird nur
verwendet, wenn pm
auf dynamic
gesetzt ist. Ebenfalls zwingend erforderlich.
-
pm.max_spawn_rate
int
-
Die Anzahl der gleichzeitig zu erzeugenden Kindprozesse. Wird nur
verwendet, wenn pm
auf dynamic
gesetzt ist.
Standardwert: 32
-
pm.process_idle_timeout
mixed
-
Die Anzahl der Sekunden, nach der ein Prozess im Leerlauf beendet wird.
Wird nur verwendet, wenn pm
auf
ondemand
gesetzt wurde. Verfügbare Einheiten: s
(Sekunden)(Standardwert), m (Minuten), h (Stunden) oder d (Tage).
Standardwert: 10s.
-
pm.max_requests
int
-
Die Anzahl der Anfragen, die ein Kindprozess ausführt, bevor er neu
startet. Das kann hilfreich sein, um Speicherlecks in Bibliotheken von
Drittanbietern zu umgehen. Für eine unbegrenzte Anzahl Anfragen '0'
verwenden. Vergleichbar mit PHP_FCGI_MAX_REQUESTS.
Standardwert: 0.
-
pm.status_listen
string
-
Die Adresse, an der FastCGI-Statusanfragen angenommen werden sollen.
Hiermit wird ein neuer unsichtbarer Pool erstellt, der Anfragen
eigenständig bearbeiten kann. Dies ist nützlich, wenn der Hauptpool mit
lang laufenden Anfragen beschäftigt ist, da es trotzdem möglich ist, die
FPM-Statusseite zu erhalten, bevor
diese abgeschlossen sind. Die Syntax ist die gleiche wie bei der
Direktive listen.
Standardwert: none
-
pm.status_path
string
-
Der URI, um die FPM-Statusseite anzuzeigen.
Dieser Wert muss mit einem führenden Schrägstrich (/) beginnen.
Wird dieser Wert nicht angegeben, wird kein URI als Statusseite erkannt. Standardwert: none.
-
ping.path
string
-
Der Ping-URI, um die Monitoring-Seite von FPM aufzurufen. Wenn dieser
Wert nicht gesetzt ist, dann wird kein URI als Ping-Seite erkannt. Das
kann dafür verwendet werden, um zu testen, ob FPM noch läuft und
antwortet. Es ist zu beachten, dass der Wert mit einem Forwardslash (/)
beginnen muss.
-
ping.response
string
-
Diese Direktive kann dazu verwendet werden, um die Antwort auf eine
Ping-Anfrage anzupassen. Die Antwort ist vom Typ text/plain mit dem
Antwortcode 200. Standardwert: pong.
-
process.priority
int
-
Legt die nice(2)-Priorität fest, die auf den Worker-Prozess angewendet
wird (falls angegeben). Der Wert liegt im Bereich von -19 (höchste
Priorität) bis 20 (niedrigste Priorität). Standardwert: nicht gesetzt
-
process.dumpable
bool
-
Setzt das "process dumpable"-Flag (PR_SET_DUMPABLE prctl), selbst wenn
der Benutzer oder die Gruppe des Prozesses sich vom Benutzer des
Hauptprozesses unterscheidet. Dies erlaubt es dem Pool-Benutzer,
Prozess-Coredumps zu erstellen und den Prozess mit ptrace zu
untersuchen. Standardwert: no. Seit PHP 7.0.29, 7.1.17 und 7.2.5.
-
prefix
string
-
Legt das Prefix für die Pfad-Validierung fest.
-
request_terminate_timeout
mixed
-
Die Zeitbeschränkung für die Bearbeitung einer einzelnen Anfrage, nach
der der Worker-Prozess beendet wird. Diese Einstellung sollte verwendet
werden, wenn die ini-Option 'max_execution_time' aus irgendeinem Grund
nicht zu einem Skriptabbruch führt. Der Wert '0' steht für 'Off'.
Mögliche Einheiten: s(econds)(default), m(inutes), h(ours) oder d(ays).
Standardwert: 0.
-
request_terminate_timeout_track_finished
bool
-
Die Zeitbeschränkung, die durch
request_terminate_timeout
festgelegt wird, wird nicht aktiviert nach
fastcgi_finish_request
oder wenn die Anwendung beendet ist und interne Shutdown-Funktionen
aufgerufen werden. Mit dieser Direktive kann die Wartezeitbeschränkung
auch in solchen Fällen uneingeschränkt angewendet werden.
Standardwert: no. Seit PHP 7.3.0.
-
request_slowlog_timeout
mixed
-
Die Zeitbeschränkung für die Bearbeitung einer einzelnen Anfrage, nach
der ein PHP-Backtrace in die 'slowlog'-Datei (Log-Datei für langsame
Anfragen geschrieben wird. Der Wert '0' steht für 'Off'. Mögliche
Einheiten: s(econds)(default), m(inutes), h(ours) oder d(ays).
Standardwert: 0.
-
request_slowlog_trace_depth
int
-
Die Ausführlichkeit des Slowlog-Log-Stacktrace.
Standardwert: 20. Seit PHP 7.2.0.
-
slowlog
string
-
Die Log-Datei für langsame Anfragen. Standardwert:
#INSTALL_PREFIX#/log/php-fpm.log.slow
.
-
rlimit_files
int
-
Legt das rlimit für offene Dateideskriptoren der Kindprozesse in diesem
Pool fest. Standardwert: Systemeinstellung.
-
rlimit_core
int
-
Legt das rlimit für die maximale Core-Größe der Kindprozesse in diesem
Pool fest. Mögliche Werte: 'unlimited' oder ein Integer größer oder
gleich 0. Standardwert: Systemeinstellung.
-
chroot
string
-
Wechselt beim Start in das angegebene Verzeichnis als Wurzelverzeichnis.
Der Wert muss eine absolute Pfadangabe sein. Wenn dieser Wert nicht
gesetzt ist, wird chroot nicht verwendet.
-
chdir
string
-
Wechselt beim Start in das angegebene Verzeichnis. Der Wert muss eine
absolute Pfadangabe sein. Standardwert: aktuelles Verzeichnis oder / bei
Verwendung von chroot.
-
catch_workers_output
bool
-
Leitet stdout (Standardausgabe) und stderr (Standard-Fehlerausgabe) in
das Haupt-Fehlerprotokoll um. Wenn nicht gesetzt, werden stdout und
stderr entsprechend der FastCGI-Spezifikation nach /dev/null umgeleitet.
Standardwert: no.
-
decorate_workers_output
bool
-
Aktiviert die Ausgabedekoration für die Ausgabe von Workern, wenn
catch_workers_output
aktiviert ist.
Standardwert: yes.
Verfügbar von PHP 7.3.0 an.
-
clear_env
bool
-
Löscht die Umgebung in FPM-Worker-Prozessen. Verhindert, dass beliebige
Umgebungsvariablen FPM-Worker-Prozesse erreichen, indem die Umgebung in
den Worker-Prozessen gelöscht wird, bevor die Umgebungsvariablen, die in
dieser Pool-Konfiguration angegeben sind, hinzugefügt werden.
Standardwert: Yes.
-
security.limit_extensions
string
-
Grenzt die Datei-Erweiterungen des Hauptskripts ein, die FPM parsen
darf. Dies kann Konfigurationsfehler seitens des Webservers verhindern.
Sie sollten FPM nur auf .php-Erweiterungen beschränken, um zu
verhindern, dass bösartige Nutzer andere Erweiterungen verwenden, um
PHP-Code auszuführen. Standardwert: .php .phar
-
apparmor_hat
string
-
Wenn AppArmor aktiviert ist, kann die Kopfzeile geändert werden.
Standardwert: nicht festgelegt
-
access.log
string
-
Die Zugriffsprotokolldatei.
Standardwert: nicht gesetzt
-
access.format
string
-
Das Format des Zugriffsprotokolls.
Standardwert: "%R - %u %t \"%m %r\" %s"
:
Es ist möglich, zusätzliche Umgebungsvariablen zu setzen und
PHP-Einstellungen eines bestimmten Pools zu verändern. Dazu sind die
nachfolgenden Einstellungen in der Pool-Konfigurationsdatei erforderlich.
übergeben wurden, überschreiben vorherige
Werte. Es sei der Hinweis gestattet, dass
-Einstellungen
überschrieben werden, vielmehr werden die neuen Werte angehängt.
PHP-Einstellungen können in der Konfiguration des Webservers vorgenommen
werden.