1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-23 23:02:13 +01:00
Files
archived-doc-de/install/fpm/configuration.xml
Martin Samesch 7ae9261232 Sync with EN
2025-10-09 21:31:17 +02:00

1144 lines
37 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: f0149750aedec8b2eaa46338d90213dc4767d8b3 Maintainer: nikic Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: 197df870cb7d610d4b253621b85909969d3c509a Reviewer: samesch -->
<!-- Credits: Jens-Andre Koch -->
<sect1 xml:id="install.fpm.configuration" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Konfiguration</title>
<para>
FPM verwendet die &php.ini;-Syntax für die Konfigurationsdatei -
<filename>php-fpm.conf</filename> - und Pool-Konfigurationsdateien.
</para>
<sect2>
<title>Liste globaler <filename>php-fpm.conf</filename>-Direktiven</title>
<variablelist>
<varlistentry xml:id="pid">
<term>
<parameter>pid</parameter>
<type>string</type>
</term>
<listitem>
<para>
Pfad zur PID-Datei. Standardwert: none.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="error-log">
<term>
<parameter>error_log</parameter>
<type>string</type>
</term>
<listitem>
<para>
Pfad zur Fehlerprotokoll-Datei. Standardwert:
<literal>#INSTALL_PREFIX#/log/php-fpm.log</literal>.
Ist der Wert "syslog", wird das Protokoll an syslogd gesendet anstatt in
eine lokale Datei geschrieben zu werden.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="log-level">
<term>
<parameter>log_level</parameter>
<type>string</type>
</term>
<listitem>
<para>
Grad der Fehlerprotokollierung. Mögliche Werte: alert, error, warning,
notice, debug. Standardwert: notice.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="log-limit">
<term>
<parameter>log_limit</parameter>
<type>int</type>
</term>
<listitem>
<para>
Obergrenze für die protokollierten Zeilen, die es ermöglicht, Nachrichten,
die länger als 1024 Zeichen sind, ohne Zeilenumbruch zu protokollieren.
Standardwert: 1024.
Verfügbar von PHP 7.3.0 an.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="log-buffering">
<term>
<parameter>log_buffering</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Experimentelles Protokollieren ohne zusätzliche Pufferung.
Standardwert: yes.
Verfügbar von PHP 7.3.0 an.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="syslog-facility">
<term>
<parameter>syslog.facility</parameter>
<type>string</type>
</term>
<listitem>
<para>
Wird verwendet, um anzugeben, welche Art von Programm die Nachricht
protokolliert. Standardwert: daemon.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="syslog-ident">
<term>
<parameter>syslog.ident</parameter>
<type>string</type>
</term>
<listitem>
<para>
Wird jeder Nachricht vorangestellt. Werden mehrere FPM-Instanzen auf
demselben Server ausgeführt, können Sie den Standardwert so ändern, dass
er den allgemeinen Anforderungen entspricht.
Standardwert: php-fpm.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="emergency-restart-threshold">
<term>
<parameter>emergency_restart_threshold</parameter>
<type>int</type>
</term>
<listitem>
<para>
Wenn sich diese Anzahl von Kindprozessen innerhalb des durch
<literal>emergency_restart_interval</literal> gesetzten Zeitintervalls
mit SIGSEGV oder SIGBUS beendet, dann startet FPM neu. Der Wert 0
bedeutet 'Off'. Standardwert: 0 (Off).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="emergency-restart-interval">
<term>
<parameter>emergency_restart_interval</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
Zeitintervall, das von <literal>emergency_restart_interval</literal>
verwendet wird, um zu bestimmen, wann ein ordnungsgemäßer Neustart
ausgelöst werden soll. Das kann nützlich sein, um zufällige Störungen im
gemeinsamen Speicher eines Beschleunigers zu umgehen. Verfügbare
Einheiten: s(econds), m(inutes), h(ours), oder d(ays).
Standardeinheit: seconds. Standardwert: 0 (Off).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="process-control-timeout">
<term>
<parameter>process_control_timeout</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
Zeitlimit für Kindprozesse, die auf eine Reaktion vom Hauptprozess
(Master) warten. Verfügbare Einheiten: s(econds), m(inutes), h(ours),
oder d(ays).
Standardeinheit: seconds. Standardwert: 0.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="process-max">
<term>
<parameter>process.max</parameter>
<type>int</type>
</term>
<listitem>
<para>
Die Höchstanzahl an Prozessen, die FPM forkt. Dies wurde entwickelt, um
die globale Anzahl an Prozessen zu kontrollieren, wenn in vielen Pools
dynamisches PM verwendet wird. Mit Vorsicht zu verwenden.
Standardwert: 0.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="process-priority">
<term>
<parameter>process.priority</parameter>
<type>int</type>
</term>
<listitem>
<para>
Gibt die auf den Hauptrozess anzuwendende nice(2)-Priorität an (nur
falls festgelegt). Der Wert kann zwischen -19 (höchste Priorität) und 20
(niedrigste Priorität) liegen. Standardwert: nicht gesetzt.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="daemonize">
<term>
<parameter>daemonize</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Schickt FPM in den Hintergrund. Bei 'no' bleibt FPM für das Debugging im
Vordergrund. Standardwert: yes.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="rlimit-files-master">
<term>
<parameter>rlimit_files</parameter>
<type>int</type>
</term>
<listitem>
<para>
Setzt das Ressourcenlimit (rlimit) der offenen Datei-Deskiptoren für den
Hauptrozess. Standardwert: Systemeinstellung.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="rlimit-core-master">
<term>
<parameter>rlimit_core</parameter>
<type>int</type>
</term>
<listitem>
<para>
Setzt das Ressourcenlimit (rlimit) der Maximalgröße einer Core-Datei für
den Hauptprozess. Standardwert: 0.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="events-mechanism">
<term>
<parameter>events.mechanism</parameter>
<type>string</type>
</term>
<listitem>
<para>
Spezifiziert den Ereignismechanismus, den FPM verwendet. Die folgenden
sind möglich: epoll, kqueue (*BSD), port (Solaris), poll, select.
Standardwert: leer (automatische Erkennung, bevorzugt epoll und kqueue).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="systemd-interval">
<term>
<parameter>systemd_interval</parameter>
<type>int</type>
</term>
<listitem>
<para>
Wenn FPM mit systemd-Integration kompiliert wurde, gibt dies das
Intervall in Sekunden an, in dem Statusberichtsmeldungen an systemd
gesendet werden. 0 deaktiviert dies. Standardwert: 10.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2>
<title>Liste der Pool-Direktiven</title>
<para>
Mit FPM können mehrere Pools von Prozessen mit unterschiedlichen
Einstellungen betrieben werden. Die nachfolgenden Einstellungen können pro
Pool angepasst werden.
</para>
<variablelist>
<varlistentry xml:id="listen">
<term>
<parameter>listen</parameter>
<type>string</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-backlog">
<term>
<parameter>listen.backlog</parameter>
<type>int</type>
</term>
<listitem>
<para>
Stellt die listen(2)-Warteschlange (Backlog) ein. Der Wert
<literal>-1</literal> bedeutet das Maximum auf BSD-Systemen.
Standardwert: <literal>-1</literal> (FreeBSD oder OpenBSD) oder
<literal>511</literal> (Linux und andere Plattformen).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-allowed-clients">
<term>
<parameter>listen.allowed_clients</parameter>
<type>string</type>
</term>
<listitem>
<para>
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).
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-owner">
<term>
<parameter>listen.owner</parameter>
<type>string</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-group">
<term>
<parameter>listen.group</parameter>
<type>string</type>
</term>
<listitem>
<para>
Siehe <literal>listen.owner</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-mode">
<term>
<parameter>listen.mode</parameter>
<type>string</type>
</term>
<listitem>
<para>
Siehe <literal>listen.owner</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-acl-users">
<term>
<parameter>listen.acl_users</parameter>
<type>string</type>
</term>
<listitem>
<para>
Wenn POSIX-Zugriffskontrolllisten unterstützt werden, können Sie diese
mit dieser Option einstellen. Wenn eingestellt, dann werden
<literal>listen.owner</literal> und <literal>listen.group</literal>
ignoriert. Der Wert ist eine durch Kommas getrennte Liste von
Benutzernamen.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-acl-groups">
<term>
<parameter>listen.acl_groups</parameter>
<type>string</type>
</term>
<listitem>
<para>
Siehe <literal>listen.acl_users</literal>. Der Wert ist eine durch Kommas
getrennte Liste von Gruppennamen.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="listen-setfib">
<term>
<parameter>listen.setfib</parameter>
<type>int</type>
</term>
<listitem>
<para>
Legt die zugehörige Routingtabelle (FIB) fest. Nur FreeBSD.
Standardwert: <literal>-1</literal>. Seit PHP 8.2.0.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="user">
<term>
<parameter>user</parameter>
<type>string</type>
</term>
<listitem>
<para>
Der Unix-Benutzer der FPM-Prozesse. Diese Einstellung ist zwingend
notwendig.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="group">
<term>
<parameter>group</parameter>
<type>string</type>
</term>
<listitem>
<para>
Die Unix-Benutzergruppe der FPM-Prozesse. Wenn nicht eingestellt, wird
als Wert die Gruppe des Standard-Benutzers verwendet.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm">
<term>
<parameter>pm</parameter>
<type>string</type>
</term>
<listitem>
<para>
Legt fest, wie der Prozess-Manager die Anzahl der Kindprozesse verwaltet.
Mögliche Werte: <literal>static</literal>, <literal>ondemand</literal>,
<literal>dynamic</literal>.
Diese Einstellung ist zwingend notwendig.
</para>
<para>
<literal>static</literal> - die Anzahl der Kindprozesse ist fest
eingestellt (<literal>pm.max_children</literal>).
</para>
<para>
<literal>ondemand</literal> - die Kindprozesse werden gestartet, sobald
sie benötigt werden, im Gegensatz zu dynamic, wo zu Beginn bereits
<literal>pm.start_servers</literal> Prozesse gestartet werden.
</para>
<para>
<literal>dynamic</literal> - die Anzahl der Kindprozesse wird dynamisch
eingestellt, wobei die folgenden Einstellungen zugrunde gelegt werden:
<literal>pm.max_children</literal>, <literal>pm.start_servers</literal>,
<literal>pm.min_spare_servers</literal> und
<literal>pm.max_spare_servers</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.max-children">
<term>
<parameter>pm.max_children</parameter>
<type>int</type>
</term>
<listitem>
<para>
Die Anzahl an Kindprozessen, die erstellt werden, wenn
<literal>pm</literal> auf <literal>static</literal> gesetzt ist, und die
maximale Anzahl an Kindprozessen, die erstellt werden, wenn
<literal>pm</literal> auf <literal>dynamic</literal> gesetzt ist. Diese
Einstellung ist zwingend notwendig.
</para>
<para>
Diese Einstellung legt das Limit für die Anzahl gleichzeitiger
Verbindungen fest. Gleichzusetzen mit der ApacheMaxClients-Direktive mit
mpm_prefork und der Umgebungsvariable
<varname>PHP_FCGI_CHILDREN</varname> im originalen PHP-FastCGI.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.start-servers">
<term>
<parameter>pm.start_servers</parameter>
<type>int</type>
</term>
<listitem>
<para>
Die Anzahl an Kindprozessen, die beim Start erstellt werden. Wird nur
verwendet, wenn <literal>pm</literal> auf <literal>dynamic</literal>
gesetzt ist. Standardwert: (min_spare_servers + max_spare_servers) / 2.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.min-spare-servers">
<term>
<parameter>pm.min_spare_servers</parameter>
<type>int</type>
</term>
<listitem>
<para>
Die gewünschte Mindestanzahl an Serverprozessen im Leerlauf. Wird nur
verwendet, wenn <literal>pm</literal> auf <literal>dynamic</literal>
gesetzt ist. Ebenfalls zwingend notwendig.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.max-spare-servers">
<term>
<parameter>pm.max_spare_servers</parameter>
<type>int</type>
</term>
<listitem>
<para>
Die gewünschte Maximalanzahl an Serverprozessen im Leerlauf. Wird nur
verwendet, wenn <literal>pm</literal> auf <literal>dynamic</literal>
gesetzt ist. Ebenfalls zwingend erforderlich.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.max-spawn-rate">
<term>
<parameter>pm.max_spawn_rate</parameter>
<type>int</type>
</term>
<listitem>
<para>
Die Anzahl der gleichzeitig zu erzeugenden Kindprozesse. Wird nur
verwendet, wenn <literal>pm</literal> auf <literal>dynamic</literal>
gesetzt ist.
Standardwert: 32
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.process-idle-timeout">
<term>
<parameter>pm.process_idle_timeout</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
Die Anzahl der Sekunden, nach der ein Prozess im Leerlauf beendet wird.
Wird nur verwendet, wenn <literal>pm</literal> auf
<literal>ondemand</literal> gesetzt wurde. Verfügbare Einheiten: s
(Sekunden)(Standardwert), m (Minuten), h (Stunden) oder d (Tage).
Standardwert: 10s.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.max-requests">
<term>
<parameter>pm.max_requests</parameter>
<type>int</type>
</term>
<listitem>
<para>
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 <varname>PHP_FCGI_MAX_REQUESTS</varname>.
Standardwert: 0.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.status-listen">
<term>
<parameter>pm.status_listen</parameter>
<type>string</type>
</term>
<listitem>
<para>
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
<link linkend="fpm.status">FPM-Statusseite</link> zu erhalten, bevor
diese abgeschlossen sind. Die Syntax ist die gleiche wie bei der
Direktive <link linkend="listen">listen</link>.
Standardwert: none
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="pm.status-path">
<term>
<parameter>pm.status_path</parameter>
<type>string</type>
</term>
<listitem>
<para>
Der URI, um die <link linkend="fpm.status">FPM-Statusseite</link> anzuzeigen.
Dieser Wert muss mit einem führenden Schrägstrich (/) beginnen.
Wird dieser Wert nicht angegeben, wird kein URI als Statusseite erkannt. Standardwert: none.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ping.path">
<term>
<parameter>ping.path</parameter>
<type>string</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ping.response">
<term>
<parameter>ping.response</parameter>
<type>string</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="worker-process-priority">
<term>
<parameter>process.priority</parameter>
<type>int</type>
</term>
<listitem>
<para>
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
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="process-dumpable">
<term>
<parameter>process.dumpable</parameter>
<type>bool</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="prefix">
<term>
<parameter>prefix</parameter>
<type>string</type>
</term>
<listitem>
<para>
Legt das Prefix für die Pfad-Validierung fest.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="request-terminate-timeout">
<term>
<parameter>request_terminate_timeout</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="request-terminate-timeout-track-finished">
<term>
<parameter>request_terminate_timeout_track_finished</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Die Zeitbeschränkung, die durch
<link linkend="request-terminate-timeout">request_terminate_timeout</link>
festgelegt wird, wird nicht aktiviert nach
<link linkend="function.fastcgi-finish-request">fastcgi_finish_request</link>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="request-slowlog-timeout">
<term>
<parameter>request_slowlog_timeout</parameter>
<type>mixed</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="request-slowlog-trace-depth">
<term>
<parameter>request_slowlog_trace_depth</parameter>
<type>int</type>
</term>
<listitem>
<para>
Die Ausführlichkeit des Slowlog-Log-Stacktrace.
Standardwert: 20. Seit PHP 7.2.0.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="slowlog">
<term>
<parameter>slowlog</parameter>
<type>string</type>
</term>
<listitem>
<para>
Die Log-Datei für langsame Anfragen. Standardwert:
<literal>#INSTALL_PREFIX#/log/php-fpm.log.slow</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="rlimit-files">
<term>
<parameter>rlimit_files</parameter>
<type>int</type>
</term>
<listitem>
<para>
Legt das rlimit für offene Dateideskriptoren der Kindprozesse in diesem
Pool fest. Standardwert: Systemeinstellung.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="rlimit-core">
<term>
<parameter>rlimit_core</parameter>
<type>int</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="chroot">
<term>
<parameter>chroot</parameter>
<type>string</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="chdir">
<term>
<parameter>chdir</parameter>
<type>string</type>
</term>
<listitem>
<para>
Wechselt beim Start in das angegebene Verzeichnis. Der Wert muss eine
absolute Pfadangabe sein. Standardwert: aktuelles Verzeichnis oder / bei
Verwendung von chroot.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="catch-workers-output">
<term>
<parameter>catch_workers_output</parameter>
<type>bool</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="decorate-workers-output">
<term>
<parameter>decorate_workers_output</parameter>
<type>bool</type>
</term>
<listitem>
<para>
Aktiviert die Ausgabedekoration für die Ausgabe von Workern, wenn
<link linkend="catch-workers-output">catch_workers_output</link>
aktiviert ist.
Standardwert: yes.
Verfügbar von PHP 7.3.0 an.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="clear-env">
<term>
<parameter>clear_env</parameter>
<type>bool</type>
</term>
<listitem>
<para>
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.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="security-limit-extensions">
<term>
<parameter>security.limit_extensions</parameter>
<type>string</type>
</term>
<listitem>
<para>
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
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="apparmor-hat">
<term>
<parameter>apparmor_hat</parameter>
<type>string</type>
</term>
<listitem>
<para>
Wenn AppArmor aktiviert ist, kann die Kopfzeile geändert werden.
Standardwert: nicht festgelegt
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="access-log">
<term>
<parameter>access.log</parameter>
<type>string</type>
</term>
<listitem>
<para>
Die Zugriffsprotokolldatei.
Standardwert: nicht gesetzt
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="access-format">
<term>
<parameter>access.format</parameter>
<type>string</type>
</term>
<listitem>
<para>
Das Format des Zugriffsprotokolls.
Standardwert: <literal>"%R - %u %t \"%m %r\" %s"</literal>:
<table xml:id="fpm.configuration.access.format">
<title>Valid options</title>
<tgroup cols="2">
<thead>
<row>
<entry>Platzhalter</entry>
<entry>Beschreibung</entry>
</row>
</thead>
<tbody>
<row>
<entry>
<literal>%%</literal>
</entry>
<entry>Das <literal>%</literal>-Zeichen</entry>
</row>
<row>
<entry>
<literal>%C</literal>
</entry>
<entry>
Die %CPU, die von der Anfrage verwendet wird. Diese Direktive
akzeptiert die folgenden Formate:
<literal>%{user}C</literal> nur für die Benutzer-CPU,
<literal>%{system}C</literal> nur für die System-CPU,
<literal>%{total}C</literal> für Benutzer + System-CPU (Standard) </entry>
</row>
<row>
<entry>
<literal>%d</literal>
</entry>
<entry>
Die Zeit, die für die Beantwortung der Anfrage benötigt wurde.
Diese Direktive akzeptiert die folgenden Formate für die Genauigkeit:
<literal>%{Sekunden}d</literal> (Standard),
<literal>%{Millisekunden}d</literal>,
<literal>%{Mikrosekunden}d</literal>
</entry>
</row>
<row>
<entry>
<literal>%{<replaceable>Name</replaceable>}e</literal>
</entry>
<entry>
Eine Umgebungsvariable (ähnlich wie <varname>$_ENV</varname> oder
<varname>$_SERVER</varname>).
Um den Namen einer Umgebungsvariablen anzugeben, muss der
Variablenname in geschweiften Klammern angegeben werden.
Zum Beispiel Server-Spezifikationen wie
<literal>%{REQUEST_METHOD}e</literal> oder
<literal>%{SERVER_PROTOCOL}e</literal>, HTTP-Header wie
<literal>%{HTTP_HOST}e</literal> oder
<literal>%{HTTP_USER_AGENT}e</literal>
</entry>
</row>
<row>
<entry>
<literal>%f</literal>
</entry>
<entry>Dateiname des Skripts</entry>
</row>
<row>
<entry>
<literal>%l</literal>
</entry>
<entry>
<literal>Content-Length</literal> der Anfrage (nur für
HTTP-POST-Anfragen)
</entry>
</row>
<row>
<entry>
<literal>%m</literal>
</entry>
<entry>HTTP-Methode für die Anfrage</entry>
</row>
<row>
<entry>
<literal>%M</literal>
</entry>
<entry>
Die maximale Größe des von PHP zugewiesenen Speichers.
Diese Direktive akzeptiert die folgenden Formate:
<literal>%{Bytes}M</literal> (Standard),
<literal>%{Kilobytes}M</literal>, <literal>%{Kilo}M</literal>,
<literal>%{Megabytes}M</literal>, <literal>%{Mega}M</literal>
</entry>
</row>
<row>
<entry>
<literal>%n</literal>
</entry>
<entry>Poolname</entry>
</row>
<row>
<entry>
<literal>%{<replaceable>Name</replaceable>}o</literal>
</entry>
<entry>
Ausgabe-Header. Der Name des Headers muss in geschweiften Klammern
angegeben werden.
Zum Beispiel: <literal>%{Content-Type}o</literal>,
<literal>%{X-Powered-By}o</literal>, <literal>%{Transfer-Encoding}o</literal>
</entry>
</row>
<row>
<entry>
<literal>%p</literal>
</entry>
<entry>PID des Kindprozesses, der die Anfrage bearbeitet hat</entry>
</row>
<row>
<entry>
<literal>%P</literal>
</entry>
<entry>PID des Elternprozesses des Kindprozesses, der die Anfrage bearbeitet hat</entry>
</row>
<row>
<entry>
<literal>%q</literal>
</entry>
<entry>Anfragezeichenkette</entry>
</row>
<row>
<entry>
<literal>%Q</literal>
</entry>
<entry>
Das Zeichen <literal>'?'</literal> oder das Verknüpfungszeichen
zwischen <literal>%q</literal> und <literal>%r</literal>, wenn eine
Anfragezeichenkette vorhanden ist
</entry>
</row>
<row>
<entry>
<literal>%r</literal>
</entry>
<entry>
Der Anfrage-URI ohne die Abfragezeichenkette,
siehe <literal>%q</literal> und <literal>%Q</literal>
</entry>
</row>
<row>
<entry>
<literal>%R</literal>
</entry>
<entry>Entfernte (Remote-) IP-Adresse</entry>
</row>
<row>
<entry>
<literal>%s</literal>
</entry>
<entry>Status (Antwortcode)</entry>
</row>
<row>
<entry>
<literal>%t</literal>
</entry>
<entry>
Serverzeit, zu der die Anfrage eingegangen ist. Diese Direktive
akzeptiert das <literal>strftime(3)</literal>-Format
<literal>%d/%b/%Y:%H:%M:%S %z</literal> (Standard). Das
<literal>strftime(3)</literal>-Format muss in einem
<literal>%{&lt;strftime_format&gt;}t</literal>-Tag gekapselt sein.
Für eine Zeitangabe im ISO8601-Format würde &zb; folgendes
verwendet: <literal>%{%Y-%m-%dT%H:%M:%S%z}t</literal>
</entry>
</row>
<row>
<entry>
<literal>%T</literal>
</entry>
<entry>
Zeitpunkt, zu dem das Protokoll geschrieben wurde (als die Anfrage
beendet wurde). Diese Direktive akzeptiert das
<literal>strftime(3)</literal>-Format
<literal>%d/%b/%Y:%H:%M:%S %z</literal> (Standard). Das
<literal>strftime(3)</literal>-Format muss in einem
<literal>%{&lt;strftime_format&gt;}T</literal>-Tag gekapselt sein.
Für eine Zeitangabe im ISO8601-Format würde &zb; folgendes
verwendet: <literal>%{%Y-%m-%dT%H:%M:%S%z}T</literal>
</entry>
</row>
<row>
<entry>
<literal>%u</literal>
</entry>
<entry>
Benutzer mit Basis-Zugangsauthentifizierung, falls im
<literal>Authorization</literal>-Header angegeben
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="access.suppress-path">
<term>
<parameter>access.suppress_path</parameter>
<type>array</type>
</term>
<listitem>
<para>
Eine Liste von request_uri-Werten, die aus dem Zugriffsprotokoll
herausgefiltert werden sollen.
Standardwert: nicht gesetzt. Seit PHP 8.2.0.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
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.
<example>
<title>Übergabe von Umgebungsvariablen und PHP-Einstellungen an einen Pool</title>
<programlisting role="ini">
<![CDATA[
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
]]>
</programlisting>
</example>
PHP-Einstellungen, die mit <literal>php_value</literal> oder
<literal>php_flag</literal> übergeben wurden, überschreiben vorherige
Werte. Es ist zu beachten, dass
<link linkend="ini.disable-functions">disable_functions</link> oder
<link linkend="ini.disable-classes">disable_classes</link> nicht dazu
führen, dass vorher definierte <filename>php.ini</filename>-Einstellungen
überschrieben werden, vielmehr werden die neuen Werte angehängt.
</para>
<para>
Einstellungen, die mit <literal>php_admin_value</literal> und
<literal>php_admin_flag</literal> gemacht wurden, können nicht mit
<function>ini_set</function> verändert werden.
</para>
<para>
PHP-Einstellungen können in der Konfiguration des Webservers vorgenommen
werden.
<example>
<title>Festlegen von PHP-Einstellungen in nginx.conf</title>
<programlisting role="ini">
<![CDATA[
set $php_value "pcre.backtrack_limit=424242";
set $php_value "$php_value \n pcre.recursion_limit=99999";
fastcgi_param PHP_VALUE $php_value;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
]]>
</programlisting>
</example>
<caution>
<para>
Weil diese Einstellungen an php-fpm als FastCGI-Header übergeben werden,
sollte php-fpm nicht an eine öffentlich zugängliche Adresse gebunden sein.
Andernfalls könnte jeder die PHP-Konfigurationsoptionen ändern. Siehe auch
<link linkend="listen-allowed-clients">listen.allowed_clients</link>.
</para>
</caution>
<note>
<simpara>
Pools sind kein Sicherheitsmechanismus, denn sie bieten keine vollständige
Trennung; &zb; würden alle Pools eine einzige OPcache-Instanz verwenden.
</simpara>
</note>
</para>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->