{"id":21778,"date":"2026-10-02T08:28:00","date_gmt":"2026-10-02T06:28:00","guid":{"rendered":"https:\/\/webhosting.de\/?p=21778"},"modified":"2026-10-02T06:02:46","modified_gmt":"2026-10-02T04:02:46","slug":"nginx-unit-%d0%b0%d0%bb%d1%8c%d1%82%d0%b5%d1%80%d0%bd%d0%b0%d1%82%d0%b8%d0%b2%d0%b0-php-fpm","status":"publish","type":"post","link":"https:\/\/webhosting.de\/ru\/nginx-unit-alternative-zu-php-fpm\/","title":{"rendered":"NGINX Unit \u043a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 PHP-FPM? \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0440\u0438\u0441\u043a\u0438 \u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f"},"content":{"rendered":"\n<div class=\"wh-article\" data-wh-layout=\"2.1.2\" style=\"width:100%;max-width:820px;margin:0 auto;color:#263b4b;font-family:inherit;font-size:18px;line-height:1.8;text-align:start;overflow-wrap:break-word;box-sizing:border-box\"><p class=\"wh-lead\" style=\"font-size:20px;line-height:1.7;color:#233746;margin:0 0 1.1em\">NGINX Unit war technisch mehr als PHP-FPM: Der Application Server konnte HTTP, Routing, statische Dateien und PHP-Ausf\u00fchrung verbinden. F\u00fcr neue PHP-Hosting-Plattformen ist Unit dennoch keine allgemeine Alternative, denn das Projekt ist seit Oktober 2025 archiviert und wird nicht mehr gepflegt. <strong style=\"font-weight:700;color:inherit\">NGINX mit PHP-FPM<\/strong> bleibt deshalb f\u00fcr neue Systeme die besser nachvollziehbare Standardwahl. Unit ist vor allem ein Thema f\u00fcr dokumentierte Bestandsinstallationen, Risikoanalysen und geplante Migrationen. <\/p>\n<nav class=\"wh-toc\" aria-label=\"Inhalt dieses Artikels\" style=\"display:block;margin:28px 0 38px;padding:22px;border:1px solid #d9e4e8;border-radius:14px;background:#f4f8f8\"><p class=\"wh-toc-title\" style=\"font-size:13px;font-weight:700;letter-spacing:.08em;color:#49656b;margin:0 0 14px\">Direkt zum Abschnitt<\/p><div class=\"wh-toc-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:10px\"><div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#projektstatus-und-kurzurteil\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Archivierter Status und klares Kurzurteil<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#architektur-und-php-ausfuehrung\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">NGINX, PHP-FPM und Unit unterscheiden<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#module-versionen-und-konfiguration\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">PHP-Module, Versionen und Konfigurationsgrenzen<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#php-routing-mit-unit\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">PHP-Routing und Front Controller konfigurieren<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#prozessmodelle-und-ram-budget\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Prozessmodelle und RAM-Budget vergleichen<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#vergleich-der-betriebsmodelle\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Betriebsmodelle f\u00fcr PHP-Hosting bewerten<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#bestandsbetrieb-und-absicherung\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Unit im Bestand sicher betreiben<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#timeouts-logs-und-fehlersuche\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Timeouts, Logs und h\u00e4ngende Prozesse<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#entscheidung-und-migrationspfad\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Entscheidung f\u00fcr neue und alte Systeme<\/a><\/div>\n<\/div><\/nav><section class=\"wh-section\" aria-labelledby=\"projektstatus-und-kurzurteil\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"projektstatus-und-kurzurteil\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Archivierter Status und klares Kurzurteil<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Stand 30. September 2026 lautet das klare Urteil: <strong style=\"font-weight:700;color:inherit\">NGINX Unit<\/strong> konnte PHP-Anwendungen direkt ausf\u00fchren und dabei HTTP-Verbindungen annehmen, TLS terminieren, statische Dateien ausliefern sowie Anfragen routen. Damit ging der Funktionsumfang deutlich \u00fcber PHP-FPM hinaus. F\u00fcr neue produktive PHP-Hosting-Plattformen ist Unit dennoch keine allgemeine Empfehlung, weil das offizielle Projekt seit Oktober 2025 archiviert und nicht mehr gepflegt wird. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Das bedeutet nicht, dass eine vorhandene Unit-Installation sofort funktionsunf\u00e4hig w\u00e4re. Sie kann weiterhin eine Anwendung bedienen, sofern ihre Abh\u00e4ngigkeiten, Sicherheitsvorkehrungen und ein Migrationsweg dokumentiert sind. Eine Neuinvestition muss aber anders bewertet werden: Ohne fortlaufende Projektpflege steigen Risiken bei Sicherheitsl\u00fccken, Paketverf\u00fcgbarkeit, neuen Betriebssystemversionen und k\u00fcnftigen PHP-Kompatibilit\u00e4ten. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Bei Versionsangaben ist eine saubere Trennung wichtig. Die weiterhin verf\u00fcgbare Installationsdokumentation nennt vielfach Unit 1.34.2, w\u00e4hrend der stabile Release-Tag 1.35.0 ver\u00f6ffentlicht wurde. Der Release belegt unter anderem PHP-8.5-Kompatibilit\u00e4t; daraus folgt jedoch keine fortgesetzte Wartung. Der Entwicklungszweig <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">master<\/code> ist wegen des archivierten Status keine ma\u00dfgebliche Produktversion f\u00fcr Betriebsentscheidungen.  <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"architektur-und-php-ausfuehrung\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"architektur-und-php-ausfuehrung\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">NGINX, PHP-FPM und Unit unterscheiden<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">F\u00fcr eine belastbare Entscheidung m\u00fcssen die Komponenten getrennt betrachtet werden. <strong style=\"font-weight:700;color:inherit\">NGINX<\/strong> ist Webserver und Reverse Proxy: Er nimmt HTTP-Anfragen entgegen, kann statische Inhalte ausliefern und leitet dynamische Anfragen weiter. PHP-FPM ist dagegen ein FastCGI Process Manager. Er stellt PHP-Worker bereit, verarbeitet aber nicht selbst die typische Webserver-Aufgabe der HTTP-Annahme und des Routings. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Im klassischen Aufbau erreicht eine Anfrage zun\u00e4chst NGINX. Handelt es sich um eine statische Datei, kann NGINX sie unmittelbar ausliefern. F\u00fcr ein PHP-Skript \u00fcbergibt NGINX die erforderlichen FastCGI-Parameter an einen PHP-FPM-Pool; ein freier Worker f\u00fchrt den Code aus und liefert die Antwort \u00fcber NGINX zur\u00fcck. Poolgr\u00f6\u00dfe und Prozessmodus werden bei PHP-FPM in Konfigurationsdateien im php.ini-Format gesteuert. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Unit war demgegen\u00fcber ein <strong style=\"font-weight:700;color:inherit\">Application Server<\/strong> mit Listenern, Routen, statischer Auslieferung und Sprachlaufzeiten in einem JSON-Konfigurationsmodell. Eine PHP-Anwendung wird dort als Anwendungstyp eingebunden; Unit kann somit den Request-Weg innerhalb derselben Plattform von der Annahme bis zur PHP-Ausf\u00fchrung abbilden. Das reduziert nicht automatisch das Betriebsrisiko, ver\u00e4ndert aber die Zust\u00e4ndigkeitsgrenzen. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Unit ist deshalb nicht \u201eNGINX mit eingebettetem PHP-FPM\u201c. Beim Bau des PHP-Moduls entsteht ein eigenes SAPI-Modul, das mit der PHP-Embed-Bibliothek verkn\u00fcpft ist. Bei Analyse und Migration m\u00fcssen Teams folglich nicht nur FastCGI-Einstellungen \u00fcbertragen, sondern Routing, Anwendungsdefinitionen, Modulbindung und Diagnosewege neu zuordnen. Fehler lassen sich nicht pauschal einem vorgeschalteten Webserver oder einem getrennten FPM-Pool zuschreiben. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"module-versionen-und-konfiguration\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"module-versionen-und-konfiguration\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">PHP-Module, Versionen und Konfigurationsgrenzen<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">F\u00fcr PHP ben\u00f6tigt eine Unit-Installation neben dem Kern ein passendes Sprachmodul. Dieses Modul ist an die verwendete PHP-Version und die Unit-Installation gebunden. Waren keine geeigneten Pakete f\u00fcr Betriebssystem und PHP-Version verf\u00fcgbar, beschrieb die Dokumentation den Eigenbau mit einer PHP-Installation, die die Embed-SAPI bereitstellt. Das erh\u00f6ht den Aufwand f\u00fcr Updates, reproduzierbare Builds und die Fehleranalyse erheblich.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Auch die Konfiguration folgt unterschiedlichen Modellen. Unit b\u00fcndelt Listener, Routen und Anwendungen als JSON-Daten \u00fcber ihre Konfigurationsschnittstelle. PHP-FPM verwaltet Pools dagegen in Dateien im php.ini-Format. Diese Differenz ist mehr als Syntax: In einem FPM-Stack liegen Webserver-Regeln und PHP-Pooldefinitionen getrennt, w\u00e4hrend Unit beides enger in einer Plattform verbindet. Migrationskonzepte m\u00fcssen diese Struktur ber\u00fccksichtigen.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">F\u00fcr PHP-Direktiven unterscheidet Unit die Bereiche <strong style=\"font-weight:700;color:inherit\">admin<\/strong> und <strong style=\"font-weight:700;color:inherit\">user<\/strong>. Admin-Optionen entsprechen PHP_INI_SYSTEM und sind durch die Anwendung nicht zur Laufzeit ver\u00e4nderbar; User-Optionen entsprechen PHP_INI_USER. Unit erweitert damit aber nicht den zul\u00e4ssigen Bereich einer PHP-Direktive. Ob eine Einstellung auf diesem Weg gesetzt oder durch Anwendungscode ge\u00e4ndert werden darf, bestimmt weiterhin ihr PHP-Konfigurationsmodus. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Warnung: Die in Unit 1.35.0 ausgewiesene PHP-8.5-Kompatibilit\u00e4t belegt nur die Unterst\u00fctzung dieses Stands im letzten stabilen Release. Sie ist kein Versprechen f\u00fcr k\u00fcnftige Sicherheitskorrekturen oder Anpassungen des Unit-PHP-Moduls. F\u00fcr Bestandsbetrieb sollten daher exakter Unit-Tag, PHP-Version, Modulherkunft und ein getesteter Abl\u00f6sepfad als zusammenh\u00e4ngende Abh\u00e4ngigkeit dokumentiert werden. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"php-routing-mit-unit\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"php-routing-mit-unit\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">PHP-Routing und Front Controller konfigurieren<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Eine Unit-Konfiguration verbindet einen Listener mit Routen und einer Anwendung. F\u00fcr eine lokale Demo kann der Listener ausschlie\u00dflich auf <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">127.0.0.1:8080<\/code> lauschen. Eine Route versucht zun\u00e4chst, die angeforderte Datei unter <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">\/srv\/example-app\/public<\/code> statisch auszuliefern. PHP-Dateien werden \u00fcber den MIME-Typ-Ausschluss von dieser Auslieferung ausgenommen und an die PHP-Anwendung weitergereicht; dasselbe gilt f\u00fcr nicht vorhandene Dateien. So bleiben \u00f6ffentliche Dateien und die Anwendungsausf\u00fchrung als getrennte Schritte nachvollziehbar. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">In der Anwendung legt <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">root<\/code> das Dokumentenverzeichnis fest, w\u00e4hrend <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">type: php<\/code> die PHP-Laufzeit ausw\u00e4hlt. Mit <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">script: index.php<\/code> wird jede an die Anwendung weitergereichte Anfrage an dieses Skript geleitet. Das entspricht dem <strong style=\"font-weight:700;color:inherit\">Front Controller<\/strong> vieler PHP-Frameworks: Die Anwendung wertet den urspr\u00fcnglichen Pfad selbst aus und entscheidet etwa \u00fcber Controller oder Fehlerseite. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Ohne die Einstellung <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">script<\/code> verarbeitet Unit URI-basierte Skriptpfade. Das kann f\u00fcr \u00e4ltere Anwendungen passend sein, deren PHP-Dateien direkt aufgerufen werden sollen, verlangt aber eine sorgf\u00e4ltige Begrenzung der erreichbaren Pfade. <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">targets<\/code> erlauben zus\u00e4tzlich Teilbereiche mit abweichendem root-, script- oder index-Verhalten. Sie sind daher kein Ersatz f\u00fcr Routing, sondern eine M\u00f6glichkeit, mehrere Anwendungsregeln gezielt zu definieren. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Das folgende Beispiel ist eine JSON-Dateikonfiguration f\u00fcr eine lokale Demo, nicht f\u00fcr einen \u00f6ffentlichen Dienst. Sie enth\u00e4lt weder Domainnamen noch TLS- oder Zugangsdaten. Vor einer \u00dcbernahme m\u00fcssen Dateirechte, der tats\u00e4chlich installierte PHP-Support und die f\u00fcr Unit vorgesehene Methode zum Einspielen der Konfiguration gepr\u00fcft werden.<\/p>\n<div class=\"wh-code-window\" data-wh-code style=\"margin:28px 0 34px;border:1px solid #2c4656;border-radius:12px;overflow:hidden;background:#132a3b;box-shadow:0 9px 25px -13px rgba(15,35,55,.2)\"><div class=\"wh-code-toolbar\" style=\"display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:11px 16px;background:#223e50;color:#edf5fa;font-size:13px;line-height:1.5;font-weight:600\"><span>Code<\/span><button type=\"button\" class=\"wh-code-copy\" data-wh-copy hidden style=\"padding:6px 11px;border:1px solid #7893a1;border-radius:6px;background:transparent;color:#fff;font-size:12px;line-height:1.5;font-weight:600;cursor:pointer\">Code kopieren<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success hidden>Kopiert<\/span><span data-wh-copy-fallback hidden>Code markiert \u2013 bitte kopieren<\/span><\/div><pre class=\"wh-code\" data-no-translation translate=\"no\" style=\"display:block;margin:0;padding:20px;max-width:100%;overflow-x:auto;color:#edf5fa;background:#132a3b;font:14px\/1.75 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;direction:ltr;text-align:left\"><code class=\"language-json\" style=\"font:inherit;color:inherit;background:transparent;padding:0;border:0;white-space:inherit\">{\n  &quot;listeners&quot;: {\n    &quot;127.0.0.1:8080&quot;: {\n      &quot;pass&quot;: &quot;routes\/example&quot;\n    }\n  },\n  &quot;routes&quot;: {\n    &quot;example&quot;: [\n      {\n        &quot;action&quot;: {\n          &quot;share&quot;: &quot;\/srv\/example-app\/public$uri&quot;,\n          &quot;types&quot;: [&quot;!application\/x-httpd-php&quot;],\n          &quot;fallback&quot;: {\n            &quot;pass&quot;: &quot;applications\/example-php&quot;\n          }\n        }\n      }\n    ]\n  },\n  &quot;applications&quot;: {\n    &quot;example-php&quot;: {\n      &quot;type&quot;: &quot;php&quot;,\n      &quot;root&quot;: &quot;\/srv\/example-app\/public&quot;,\n      &quot;script&quot;: &quot;index.php&quot;\n    }\n  }\n}<\/code><\/pre><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Die Reihenfolge ist entscheidend: Der <strong style=\"font-weight:700;color:inherit\">statische Auslieferung<\/strong> dienende share-Schritt wird vor dem Fallback versucht, schlie\u00dft aber PHP-Dateien ausdr\u00fccklich aus. Diese Anfragen und nicht vorhandene Dateien landen bei <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">index.php<\/code>; dadurch funktionieren auch sprechende URLs wie <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">\/artikel\/beispiel<\/code> ohne eine gleichnamige Datei. Ob zus\u00e4tzliche Regeln f\u00fcr Upload-Verzeichnisse, Verwaltungsbereiche oder direkt erreichbare PHP-Dateien n\u00f6tig sind, ergibt sich aus der jeweiligen Anwendung und sollte nicht pauschal aus dieser Demo abgeleitet werden. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"prozessmodelle-und-ram-budget\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"prozessmodelle-und-ram-budget\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Prozessmodelle und RAM-Budget vergleichen<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">PHP-FPM steuert Worker je Pool \u00fcber die Modi <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">static<\/code>, <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">dynamic<\/code> und <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">ondemand<\/code>. Bei Unit wird die Prozesszahl dagegen innerhalb der Anwendung modelliert. Eine dynamische Unit-Konfiguration begrenzt mit <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">processes.max<\/code> die Gesamtzahl und h\u00e4lt mit <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">processes.spare<\/code> Leerlaufprozesse vor; <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">idle_timeout<\/code> r\u00e4umt \u00fcberz\u00e4hlige inaktive Prozesse ab.  <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Prozesssteuerung: \u00e4hnliche Ziele, unterschiedliche Konfigurationsmodelle\" style=\"width:100%;max-width:100%;overflow-x:auto;margin:28px 0;border:1px solid #dce5e9;border-radius:14px;background:#fff;box-shadow:0 10px 28px -16px rgba(24,47,60,.32);box-sizing:border-box\"><table style=\"width:100%;min-width:580px;border-collapse:separate;border-spacing:0;border:0;margin:0;font-size:15px;line-height:1.6;background:#fff\"><caption style=\"padding:20px;text-align:start;font-size:17px;line-height:1.5;font-weight:700;color:#173246;background:#fff\">Prozesssteuerung: \u00e4hnliche Ziele, unterschiedliche Konfigurationsmodelle<\/caption><thead><tr><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Mechanismus<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">PHP-FPM<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Unit<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Betriebswirkung<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Grenze<\/th><\/tr><\/thead><tbody><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Feste Workerzahl<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">pm = static<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">processes mit fester Zahl<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Kapazit\u00e4t bleibt vorab definiert.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Leerlauf verbraucht weiterhin Speicher.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Dynamische Worker<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">pm = dynamic; Obergrenze \u00fcber pm.max_children<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">processes.max und processes.spare<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Kapazit\u00e4t kann sich am Bedarf orientieren.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Die Obergrenze muss zum verf\u00fcgbaren RAM passen.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Start bei Bedarf<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">pm = ondemand<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Kein direkt gleich benannter Modus; Prozesseinstellungen bestimmen das Unit-Verhalten<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Kann Leerlaufprozesse reduzieren.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Startverhalten und Lastprofil m\u00fcssen beobachtet werden.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Abbau von Leerlauf<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Pool-Parameter des gew\u00e4hlten FPM-Modus<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">idle_timeout<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Nicht ben\u00f6tigte Prozesse k\u00f6nnen beendet werden.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Kein Ersatz f\u00fcr eine Kapazit\u00e4tsplanung.<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Die Begriffe sind deshalb nicht eins zu eins austauschbar. Insbesondere ist eine dokumentierte Voreinstellung kein geeigneter Wert f\u00fcr eine Website. Sowohl <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">pm.max_children<\/code> als auch <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">processes.max<\/code> begrenzen parallele PHP-Arbeit und k\u00f6nnen bei zu niedrigen Werten Warteschlangen erzeugen. Zu hohe Werte konkurrieren dagegen mit Betriebssystem, Datenbank, Cache und weiteren Diensten um Arbeitsspeicher.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Ein <strong style=\"font-weight:700;color:inherit\">RAM-Budget<\/strong> ist zun\u00e4chst nur ein Planungsmodell: Vom Gesamtspeicher werden Reserven f\u00fcr Betriebssystem, Datenbank, Cache und weitere Prozesse abgezogen. Der verbleibende Wert wird durch einen konservativ angesetzten Speicherbedarf je PHP-Worker geteilt. Beispielhaft ergeben 1.200 MiB f\u00fcr PHP geteilt durch 120 MiB je Worker rechnerisch zehn Worker; beide Werte sind bewusst gew\u00e4hlte Platzhalter, keine Messung oder Konfigurationsempfehlung.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Das Ergebnis ist eine <strong style=\"font-weight:700;color:inherit\">Obergrenze<\/strong> und ein Startpunkt f\u00fcr Beobachtung, nicht die richtige Einstellung. Entscheidend sind reale Spitzenwerte, Warteschlangen, Antwortfehler und der Speicherbedarf unter typischer sowie hoher Last. F\u00fcr die methodische Herleitung und das Nachjustieren von <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">pm.max_children<\/code> hilft der interne Beitrag <a href=\"https:\/\/webhosting.de\/wordpress-php-fpm-children-blockieren-optimierungstuning-serverperf\/\">PHP-FPM-Children passend berechnen<\/a>. Bei Unit gilt derselbe Grundsatz, auch wenn die Parameter anders hei\u00dfen.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Warnung: Prozessgrenzen durch blo\u00dfes \u00dcbernehmen fremder Zahlen zu setzen, verschiebt Probleme h\u00e4ufig nur. Erst ein abgegrenztes Speicherbudget und wiederholtes Monitoring zeigen, ob eine Worker-Obergrenze zur Anwendung, ihren Erweiterungen und den gleichzeitig betriebenen Diensten passt.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"vergleich-der-betriebsmodelle\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"vergleich-der-betriebsmodelle\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Betriebsmodelle f\u00fcr PHP-Hosting bewerten<\/h2><div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Betriebsmodelle f\u00fcr PHP-Anwendungen im Vergleich\" style=\"width:100%;max-width:100%;overflow-x:auto;margin:28px 0;border:1px solid #dce5e9;border-radius:14px;background:#fff;box-shadow:0 10px 28px -16px rgba(24,47,60,.32);box-sizing:border-box\"><table style=\"width:100%;min-width:580px;border-collapse:separate;border-spacing:0;border:0;margin:0;font-size:15px;line-height:1.6;background:#fff\"><caption style=\"padding:20px;text-align:start;font-size:17px;line-height:1.5;font-weight:700;color:#173246;background:#fff\">Betriebsmodelle f\u00fcr PHP-Anwendungen im Vergleich<\/caption><thead><tr><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Modell und Architektur<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">PHP-Ausf\u00fchrung und Prozesse<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Konfiguration und Laufzeiten<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Wartungsstatus<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Geeigneter Einsatzfall<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Zentrale Einschr\u00e4nkung<\/th><\/tr><\/thead><tbody><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">NGINX plus PHP-FPM; getrennte Web- und PHP-Schicht<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">NGINX leitet PHP per FastCGI an FPM-Pools weiter; FPM bietet static, dynamic und ondemand.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Webserver-Konfiguration plus Pooldateien im php.ini-Format; auf PHP ausgerichtet.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">PHP-FPM ist Teil der PHP-Distribution.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Standard f\u00fcr neue PHP-Hosting-Umgebungen.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Zwei Komponenten und ihre Schnittstelle m\u00fcssen betrieben werden.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">NGINX Unit 1.35.0; Application Server mit Listenern und Anwendungen<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Unit f\u00fchrt PHP \u00fcber sein Sprachmodul aus und verwaltet Anwendungsprozesse.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Zentrale JSON-Konfiguration; Plattform f\u00fcr mehrere Laufzeiten.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Letzter stabiler Release-Tag 1.35.0; Projekt ist archiviert.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Bestand oder bewusst isolierte Sonderumgebung.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Keine fortlaufende Projektpflege; Modul- und Versionsbindung beachten.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Apache HTTP Server mit PHP-FPM; Webserver und externe PHP-Schicht<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Apache \u00fcbergibt PHP an FPM-Pools.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Apache-Konfiguration plus FPM-Pooldateien; auf PHP ausgerichtet.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">PHP-FPM ist Teil der PHP-Distribution.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Umgebungen mit Apache-spezifischen Anforderungen.<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Zwei Komponenten und ihre Schnittstelle m\u00fcssen betrieben werden.<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Die Tabelle ordnet Architekturen, nicht Geschwindigkeit oder Speicherverbrauch. F\u00fcr neues PHP-Hosting spricht beim NGINX-PHP-FPM-Aufbau vor allem die klare Trennung: Der Webserver behandelt HTTP, Proxying und statische Inhalte, w\u00e4hrend PHP-FPM die PHP-Worker pro Pool verwaltet. Diese Zust\u00e4ndigkeiten erleichtern es, Konfigurationen, Fehlerbilder und Updates getrennt zu beurteilen. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Unit konnte Listener, Routing, statische Dateien und Anwendungen in einer Plattform b\u00fcndeln und neben PHP weitere Laufzeiten unterst\u00fctzen. Dieser Mehrsprachenansatz kann erkl\u00e4ren, weshalb eine bestehende Umgebung Unit gew\u00e4hlt hat. F\u00fcr ausschlie\u00dflich PHP-basierte Angebote ist er jedoch kein automatischer Vorteil: Er ersetzt weder die Bewertung der ben\u00f6tigten Funktionen noch die Pr\u00fcfung, ob das Team die andere Konfigurations- und Betriebslogik dauerhaft beherrschen kann. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Bei Unit 1.35.0 muss der technische Funktionsumfang vom <strong style=\"font-weight:700;color:inherit\">Wartungsstatus<\/strong> getrennt werden. Der Release-Tag belegt die ver\u00f6ffentlichte Version und deren \u00c4nderungen; daraus folgt keine weitere Pflege des inzwischen archivierten Projekts. F\u00fcr eine Neuentscheidung wiegt diese Grenze schwerer als eine geringere Zahl sichtbarer Komponenten. F\u00fcr eine vorhandene Installation ist sie dagegen Anlass, Abh\u00e4ngigkeiten und einen Migrationsweg zu dokumentieren.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Apache mit PHP-FPM ist keine pauschal bessere oder schlechtere Alternative, sondern eine Option bei vorhandenen Apache-Anforderungen. Die Auswahl sollte sich an Wartbarkeit, verf\u00fcgbaren PHP-Versionen, Patchprozessen, Teamwissen und dem R\u00fcckfallplan orientieren. Ohne vergleichbare Lastprofile und dokumentierte Messmethodik l\u00e4sst sich aus dieser Architektur\u00fcbersicht keine belastbare Leistungsrangfolge ableiten.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"bestandsbetrieb-und-absicherung\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"bestandsbetrieb-und-absicherung\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Unit im Bestand sicher betreiben<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Eine vorhandene Unit-Installation sollte zun\u00e4chst als Bestandssystem erfasst werden, nicht als Vorlage f\u00fcr eine neue Plattform. Entscheidend sind die tats\u00e4chlich eingesetzte Version, die angebundenen Anwendungen und ihre Abh\u00e4ngigkeiten. Dass Unit weiterhin technisch ausf\u00fchrbar ist, \u00e4ndert nichts daran, dass das Projekt archiviert wurde; Betrieb und Abl\u00f6sung m\u00fcssen daher gemeinsam geplant werden. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Bei WordPress, Joomla oder Drupal ist der <strong style=\"font-weight:700;color:inherit\">Front Controller<\/strong> der zentrale Punkt: Nicht als Datei vorhandene Pfade m\u00fcssen an die zentrale PHP-Einstiegsdatei gehen, w\u00e4hrend vorhandene Dateien direkt ausgeliefert werden k\u00f6nnen. Die WordPress-Anleitung f\u00fcr Unit zeigt dieses Routing-Prinzip einschlie\u00dflich der Behandlung von PHP-Dateien und <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">\/wp-admin\/<\/code>. F\u00fcr ein bestehendes CMS kann das eine nachvollziehbare Konfiguration sein; f\u00fcr eine Neuinstallation folgt daraus keine Empfehlung f\u00fcr Unit. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Mehrere kleine Anwendungen mit PHP, Python, Ruby oder Node.js konnten unter Unit Listener, Routen und Laufzeiten in einer gemeinsamen Plattform b\u00fcndeln. Das kann erkl\u00e4ren, warum sich eine bestehende Architektur seinerzeit f\u00fcr Unit entschieden hat. Bei reinem PHP-Hosting ist diese Mehrsprachenf\u00e4higkeit jedoch kein Selbstzweck: Separate, gepflegte Komponenten k\u00f6nnen trotz zus\u00e4tzlicher Schnittstellen langfristig besser wartbar sein. <\/p>\n<figure class=\"wp-block-image size-large wh-figure\" aria-describedby=\"wh-caption-detail1\" style=\"display:block;float:none;clear:both;width:100%;max-width:760px;margin:34px auto 40px;border:1px solid #dae5e9;border-radius:14px;overflow:hidden;background:#f5f8fa;box-shadow:0 10px 28px -17px rgba(24,47,60,.28);box-sizing:border-box\"><div class=\"wh-figure-media\" style=\"display:block;background:#eef3f5;line-height:0\"><img loading=\"lazy\" width=\"800\" height=\"534\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-bestand-migration-pruefung-05837d81-detail1-d6f2c02b3d-1024x683.webp\" class=\"wp-image-21781\" alt=\"Zwei IT-Fachleute pr\u00fcfen im Stagingraum gemeinsam eine Bestandsplattform f\u00fcr PHP-Anwendungen.\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-bestand-migration-pruefung-05837d81-detail1-d6f2c02b3d-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-bestand-migration-pruefung-05837d81-detail1-d6f2c02b3d-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-bestand-migration-pruefung-05837d81-detail1-d6f2c02b3d-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-bestand-migration-pruefung-05837d81-detail1-d6f2c02b3d-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-bestand-migration-pruefung-05837d81-detail1-d6f2c02b3d.webp 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/ style=\"display:block;width:100%;max-width:100%;height:auto;margin:0;float:none\"><\/div><figcaption class=\"wh-caption\" id=\"wh-caption-detail1\" style=\"display:block;margin:0;padding:12px 18px 15px;border-top:1px solid #dce5e9;color:#506575;background:#f5f8fa;font-size:14px;line-height:1.55;text-align:start\">KI-generiertes Symbolbild: Bestandsumgebungen ben\u00f6tigen eine dokumentierte Pr\u00fcfung von Versionen, Modulen und Migrationspfaden.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Ein eingefrorenes Container-Deployment verlangt eine besonders genaue Inventarisierung. Dokumentiere daf\u00fcr den exakten Unit-Tag, die PHP-Version, das installierte Sprachmodul, das Basisimage und die vollst\u00e4ndige Konfiguration. Erg\u00e4nze au\u00dferdem Quellen f\u00fcr Images und Pakete, den Patchprozess sowie einen getesteten Migrations- und R\u00fcckfallpfad. PHP-Kompatibilit\u00e4t eines bestimmten Unit-Releases ist dabei keine Zusage, dass das zugeh\u00f6rige Modul k\u00fcnftig Sicherheitskorrekturen erh\u00e4lt. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">NGINX kann vor Unit stehen, etwa wenn eine bestehende NGINX-Schicht erhalten bleiben soll oder Zugriffe gezielt vorgelagert werden. Die Unit-Dokumentation nennt diese Integration auch im Zusammenhang mit der Absicherung des Control Socket. Sie behebt den archivierten Status aber nicht und schafft einen weiteren Dienst mit eigener Konfiguration, Protokollierung und Updateverantwortung. Der Nutzen muss deshalb konkret gegen diesen Betriebsaufwand abgewogen werden. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"timeouts-logs-und-fehlersuche\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"timeouts-logs-und-fehlersuche\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Timeouts, Logs und h\u00e4ngende Prozesse<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Prozessgrenzen sind keine Fehlerdiagnose. Mit <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">limits.requests<\/code> kann Unit einen Anwendungsprozess nach einer festgelegten Zahl bearbeiteter Anfragen ersetzen. Das kann kumulierte Speicherbelegung zeitlich begrenzen, beseitigt aber weder Speicherlecks noch \u00fcbergro\u00dfe Datenstrukturen oder blockierende externe Aufrufe. Ein regelm\u00e4\u00dfiger Neustart darf daher nicht als Nachweis f\u00fcr einen stabilen Anwendungscode gelten. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Mit <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">limits.timeout<\/code> beendet Unit eine Anfrage nach Ablauf der konfigurierten Zeit mit HTTP 503. Das ist eine sichtbare Schutzgrenze f\u00fcr einzelne Requests, jedoch kein vollst\u00e4ndiger Schutz gegen festgefahrene Worker: Laut Dokumentation erkennt Unit eingefrorene Prozesse nicht; sie k\u00f6nnen im Prozesspool verbleiben. Ein h\u00f6herer Timeout verschiebt dieses Problem nur, ein niedrigerer kann regul\u00e4r langsame Vorg\u00e4nge abbrechen. <\/p>\n<figure class=\"wp-block-image size-large wh-figure\" aria-describedby=\"wh-caption-detail2\" style=\"display:block;float:none;clear:both;width:100%;max-width:760px;margin:34px auto 40px;border:1px solid #dae5e9;border-radius:14px;overflow:hidden;background:#f5f8fa;box-shadow:0 10px 28px -17px rgba(24,47,60,.28);box-sizing:border-box\"><div class=\"wh-figure-media\" style=\"display:block;background:#eef3f5;line-height:0\"><img loading=\"lazy\" width=\"800\" height=\"534\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-prozesse-timeouts-serverdetail-05837d81-detail2-02b487c165-1024x683.webp\" class=\"wp-image-21782\" alt=\"Nahaufnahme eines kompakten Servers bei der Kontrolle einer bestehenden PHP-Hosting-Umgebung.\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-prozesse-timeouts-serverdetail-05837d81-detail2-02b487c165-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-prozesse-timeouts-serverdetail-05837d81-detail2-02b487c165-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-prozesse-timeouts-serverdetail-05837d81-detail2-02b487c165-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-prozesse-timeouts-serverdetail-05837d81-detail2-02b487c165-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/09\/nginx-unit-prozesse-timeouts-serverdetail-05837d81-detail2-02b487c165.webp 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/ style=\"display:block;width:100%;max-width:100%;height:auto;margin:0;float:none\"><\/div><figcaption class=\"wh-caption\" id=\"wh-caption-detail2\" style=\"display:block;margin:0;padding:12px 18px 15px;border-top:1px solid #dce5e9;color:#506575;background:#f5f8fa;font-size:14px;line-height:1.55;text-align:start\">KI-generiertes Symbolbild: Prozessgrenzen und Timeouts ersetzen keine Ursachenanalyse h\u00e4ngender Anwendungen.<\/figcaption><\/figure><ul class=\"wh-list\" role=\"list\" style=\"list-style:none;margin:24px 0;padding:0\"><li style=\"margin:8px 0;padding:12px 17px;background:#f5f8fa;border:1px solid #e0e8ec;border-radius:9px\">HTTP-Status, betroffene Pfade, Zeitfenster und H\u00e4ufigkeit erfassen, bevor Grenzwerte ge\u00e4ndert werden.<\/li><li style=\"margin:8px 0;padding:12px 17px;background:#f5f8fa;border:1px solid #e0e8ec;border-radius:9px\">Zugriffs-, Fehler- und Anwendungslogs anhand von Zeitstempeln zusammenf\u00fchren; bei PHP-FPM kann ein Slowlog zus\u00e4tzliche Stack-Hinweise liefern.<\/li><li style=\"margin:8px 0;padding:12px 17px;background:#f5f8fa;border:1px solid #e0e8ec;border-radius:9px\">CPU, Arbeitsspeicher, I\/O, Netzwerkverbindungen sowie Zustand und Anzahl der Prozesse pr\u00fcfen.<\/li><li style=\"margin:8px 0;padding:12px 17px;background:#f5f8fa;border:1px solid #e0e8ec;border-radius:9px\">Danach Code, Datenbankabfragen, Dateisystemzugriffe und externe Dienste als m\u00f6gliche Ursache untersuchen.<\/li><li style=\"margin:8px 0;padding:12px 17px;background:#f5f8fa;border:1px solid #e0e8ec;border-radius:9px\">Erst wenn Ursache und Lastprofil bekannt sind, Timeouts, Prozessgrenzen oder Neustartregeln gezielt anpassen.<\/li><\/ul><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Ein HTTP 503 kann somit auf ein abgelaufenes Zeitlimit hinweisen, aber auch durch vorgelagerte Komponenten oder andere Fehler entstehen. Wiederkehrende lange PHP-Anfragen solltest du nicht allein \u00fcber Worker-Zahlen behandeln. Die Anleitung zum <a href=\"https:\/\/webhosting.de\/php-fpm-slowlog-richtig-auswerten-performance-optimierung-debugging-analyse\/\">PHP-FPM-Slowlog und zur Ursachenanalyse langsamer Requests<\/a> zeigt, wie Stack-Spuren mit Request-Daten verbunden werden k\u00f6nnen; die gleiche Ursache-Wirkung-Logik ist auch bei einer Unit-Bestandsanalyse sinnvoll.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Besonders kritisch sind Symptome ohne eindeutigen Abschluss: steigende Wartezeiten, dauerhaft belegte Prozesse oder ausbleibende Logfortschritte. Dann sind Prozesszustand und Abh\u00e4ngigkeiten wichtiger als eine pauschale Timeout-Erh\u00f6hung. Pr\u00fcfe beispielsweise, ob ein PHP-Worker auf Datenbank-, DNS-, Dateisystem- oder Netzwerk-I\/O wartet. Erst die konkrete Blockade entscheidet, ob ein Code-Fix, eine Ressourcenanpassung oder ein kontrollierter Neustart angemessen ist.<\/p>\n<aside class=\"wh-callout wh-callout-warning\" style=\"display:block;margin:28px 0;padding:20px 23px;border:1px solid #d1e4dd;border-left:4px solid #187065;border-radius:11px;background:#f0f7f4\"><p class=\"wh-callout-title\" style=\"margin:0 0 8px;color:#1c5c53;font-size:16px;font-weight:700;line-height:1.5\">Timeouts richtig einordnen<\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Ein Timeout begrenzt die Dauer einer Anfrage, ersetzt aber weder Monitoring noch die Analyse h\u00e4ngender Prozesse und externer Abh\u00e4ngigkeiten. <\/p>\n<\/aside><\/section><section class=\"wh-section\" aria-labelledby=\"entscheidung-und-migrationspfad\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"entscheidung-und-migrationspfad\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Entscheidung f\u00fcr neue und alte Systeme<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">F\u00fcr neue PHP-Hosting-Umgebungen ist ein gepflegter Webserver mit PHP-FPM die nachvollziehbarere Standardentscheidung. PHP-FPM geh\u00f6rt zur regul\u00e4ren PHP-Distribution und stellt dokumentierte Pool- und Prozessmanager-Optionen bereit. Bei Unit verschiebt sich die Frage dagegen von der reinen Funktionsf\u00e4higkeit zur Wartbarkeit: Die Installation kann weiterlaufen, doch der archivierte Projektstatus erh\u00f6ht das Risiko einer langfristigen Abh\u00e4ngigkeit. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">F\u00fcr vorhandene Unit-Systeme beginnt eine sachliche Entscheidung mit einer Inventarisierung. Pr\u00fcfe Wartungsstatus und Patchf\u00e4higkeit von Betriebssystem, PHP und Basisimage, die Kompatibilit\u00e4t des installierten Sprachmoduls, vorhandenes Betriebswissen sowie gekoppelte Dienste. Ebenso wichtig sind exportierbare Konfigurationen, ein reproduzierbarer Rollback und ein Zielsystem, auf das sich Routing, PHP-Einstellungen und Deployments schrittweise \u00fcbertragen lassen. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Eine Migration ben\u00f6tigt keine erfundene allgemeing\u00fcltige Frist, aber eine priorisierte Reihenfolge. Internet-exponierte Anwendungen, nicht aktualisierbare Images, unklare Modulherkunft und gesch\u00e4ftskritische Anwendungen ohne R\u00fcckfallplan verdienen zuerst Aufmerksamkeit. Danach lassen sich Anwendungen nach Komplexit\u00e4t und Abh\u00e4ngigkeiten gruppieren. Ein Parallelbetrieb w\u00e4hrend einer kontrollierten Umstellung kann Risiken reduzieren, sofern Datenhaltung, Sessions und R\u00fcckweg vorher definiert sind.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Die <strong style=\"font-weight:700;color:inherit\">Control API<\/strong> ist ein administrativer Zugriff und kein gew\u00f6hnlicher Endpunkt einer Website. Unit dokumentiert f\u00fcr sie einen Unix-Domain-Socket und begr\u00fcndet dessen Einsatz mit Sicherheitsaspekten. Lege restriktive Dateirechte und klar abgegrenzte administrative Zugriffe fest; eine \u00f6ffentliche Erreichbarkeit w\u00fcrde Angreifern bei erfolgreichem Zugriff weitreichende M\u00f6glichkeiten zur \u00c4nderung der Konfiguration er\u00f6ffnen. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Der praktische Migrationspfad endet nicht mit einer neuen Prozesskonfiguration. \u00dcbernimm Anwendung f\u00fcr Anwendung die PHP-Version, Erweiterungen, Umgebungswerte, Dateirechte, Routingregeln und Beobachtbarkeit in das Zielsystem. Vergleiche dabei erwartete Antworten und Fehlerf\u00e4lle statt pauschale Geschwindigkeitsurteile abzuleiten. So wird aus einer ungeplanten Altlast eine dokumentierte <strong style=\"font-weight:700;color:inherit\">Abl\u00f6sestrategie<\/strong> mit nachvollziehbaren technischen Entscheidungen.<\/p>\n<\/section><section class=\"wh-sources\" style=\"margin:40px 0 0;padding:24px 0 0;border-top:1px solid #dce5e9;color:#596b7b;font-size:14px;line-height:1.65\"><h2 style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Quellen und fachlicher Stand<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Recherche-Stand: <time datetime=\"2026-09-30\">2026-09-30<\/time><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Recherche-Stichtag: 30. September 2026. NGINX Unit ist seit Oktober 2025 archiviert. Die weiterhin verf\u00fcgbare Installationsdokumentation referenziert teils 1.34.2; Aussagen zur PHP-8.5-Kompatibilit\u00e4t beziehen sich ausschlie\u00dflich auf den stabilen Release-Tag 1.35.0.<\/p><div class=\"wh-source-urls\"><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/github.com\/nginx\/unit\/releases<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/unit.nginx.org\/installation\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/www.php.net\/manual\/en\/install.fpm.configuration.php<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/unit.nginx.org\/configuration\/?platform=docker<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/unit.nginx.org\/howto\/source\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/unit.nginx.org\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/github.com\/nginx\/unit\/blob\/master\/CHANGES<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/unit.nginx.org\/howto\/wordpress\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/unit.nginx.org\/howto\/integration\/<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/unit.nginx.org\/controlapi\/<\/span><\/p><\/div><\/section><\/div>\n","protected":false},"excerpt":{"rendered":"<p>NGINX Unit \u043c\u043e\u0433 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c PHP, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435, \u0435\u0433\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 PHP. \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a.<\/p>","protected":false},"author":1,"featured_media":21780,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[834],"tags":[],"class_list":["post-21778","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plesk-webserver-plesk-administration-anleitungen"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"surfer_file_name":null,"surfer_file_original_url":null,"_wp_attachment_image_alt":null,"litespeed-optimize-set":null,"litespeed-optimize-size":null,"_oembed_b5e1eb923ad3b086e579b1befcd4075c":null,"_elementor_source_image_hash":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"_source_url":null,"_elementor_migrations_state_8b2d":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":"834","_wh_make_key":"wh_05837d81212dc7b7f615d76347436866","rank_math_internal_links_processed":"1","_wh_make_topic":"NGINX Unit als Alternative zu PHP-FPM?","_wh_make_input_keywords":["nginx unit","php hosting","application server"],"_wh_make_config":{"research_model":"gpt-5.6-terra","writer_model":"gpt-5.6-terra","review_model":"gpt-5.6-sol","image_model":"gpt-image-2.5-flare","image_quality":"high","image_format":"webp","final_status":"draft","charts_enabled":true},"_wh_make_links":{"I1":{"id":"I1","post_id":17358,"url":"https:\/\/webhosting.de\/wordpress-php-fpm-children-blockieren-optimierungstuning-serverperf\/","title":"WordPress PHP-FPM Children: \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b","excerpt":"\u0412 WordPress \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b PHP-FPM \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442, \u0431\u0443\u0434\u0443\u0442 \u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043b\u0430\u0432\u043d\u043e \u0438\u043b\u0438 \u0437\u0430\u0441\u0442\u0440\u044f\u043d\u0443\u0442 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438. \u042f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f pm.max_children \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u043f\u043e\u0436\u0438\u0440\u0430\u044e\u0442 \u041e\u0417\u0423 \u0438 \u043a\u0430\u043a \u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u0443, \u044f \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u043e\u0431\u0449\u0443 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b: pm.max_children \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 PHP \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f. \u0421\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0430\u043b\u043e \u00ab\u0434\u0435\u0442\u0435\u0439\u00bb \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439, \u043e\u0448\u0438\u0431\u043a\u0430\u043c 502\/504 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043c\u0443 TTFB. \u0421\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u2014 \u043a \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0435 \u041e\u0417\u0423, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0444\u0430\u0439\u043b\u0430 \u043f\u043e\u0434\u043a\u0430\u0447\u043a\u0438 \u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 (OOM). \u0424\u043e\u0440\u043c\u0443\u043b\u0430: \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u0434\u043b\u044f PHP \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c \/ \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u00d7 0,7\u20130,8. \u0418\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432 \u0434\u043e\u043b\u0433\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0439 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u0435. \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 PHP-FPM \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u041a\u0430\u0436\u0434\u044b\u0439 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 WordPress \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0443\u043b\u043e\u043c \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 pm.max_children. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043d\u0438\u0437\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438, \u0438 TTFB \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u043f\u043e\u0434\u043a\u0430\u0447\u043a\u0438. \u0412 \u0440\u0435\u0436\u0438\u043c\u0435 \u0441\u0432\u043e\u043f\u0430 \u0432\u0441\u0451 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442\u0441\u044f, \u043f\u043e\u043a\u0430 Apache \u0438\u043b\u0438 Nginx \u043d\u0435 \u043d\u0430\u0447\u043d\u0443\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 502\/504 \u0438\u043b\u0438 \u043f\u043e\u043a\u0430 OOM-killer \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b. \u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0433\u0434\u0430, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043c\u0443 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0434\u043b\u044f pm.max_children \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u042f \u043d\u0430\u0447\u0438\u043d\u0430\u044e \u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u044b: \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043c \u041e\u0417\u0423 \u0434\u043b\u044f PHP, \u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043e\u0442 0,7 \u0434\u043e 0,8. \u041e\u0431\u044a\u0451\u043c \u041e\u0417\u0423 \u043d\u0430 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b `ps` \u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 RSS; \u0434\u043b\u044f \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u0435\u043a\u043e\u0432 WordPress \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 50\u2013250 \u041c\u0411. \u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441 4 \u0413\u0411 \u041e\u0417\u0423 \u044f \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u0434\u043b\u044f Linux, \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043a\u044d\u0448-\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430 PHP \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043e\u043a\u043e\u043b\u043e 1,5\u20132 \u0413\u0411. \u0415\u0441\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u043e\u0431\u044a\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 100 \u041c\u0411, \u0442\u043e 2 000 \/ 100 \u00d7 0,75 = 15 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432. \u042d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0441\u043b\u0443\u0436\u0438\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u0443\u044e \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0431\u043e\u0440\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432. \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a WordPress \u0414\u043b\u044f \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0431\u043b\u043e\u0433\u043e\u0432 \u0441 2 \u0413\u0411 \u041e\u0417\u0423 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 8 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, pm = dynamic \u0438 pm.max_requests \u043e\u043a\u043e\u043b\u043e 800. \u0414\u043b\u044f \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0441 4 \u0413\u0411 \u041e\u0417\u0423 \u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e 12 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, start_servers = 4, min_spare_servers = 4. \u041a\u0440\u0443\u043f\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u044b \u0441 \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u041e\u0417\u0423 \u043e\u0442 8 \u0413\u0411 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 21\u20134"},"I2":{"id":"I2","post_id":21283,"url":"https:\/\/webhosting.de\/linux-hugepages-hosting-mariadb-redis-php-fpm-optimierung-nebula\/","title":"HugePages \u0432 Linux \u043d\u0430 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0435: \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 MariaDB, Redis \u0438 PHP-FPM","excerpt":"\u042f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a hugepages \u0432 Linux \u0443\u0441\u043a\u043e\u0440\u044f\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 MariaDB, Redis \u0438 PHP-FPM \u0432 \u0445\u043e\u0441\u0442\u0438\u043d\u0433-\u0441\u0442\u0435\u043a\u0435, \u0433\u0434\u0435 \u043e\u043d\u0438 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u043a\u0430\u043a \u044f \u0438\u0445 \u0446\u0435\u043b\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044f \u0441\u043d\u0438\u0436\u0430\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443, \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u043c\u0430\u0445\u043e\u0432 TLB \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u043e\u0431\u043e\u0431\u0449\u0430\u044e\u0449\u0438\u0435 \u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f. \u041e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u0440\u0435\u0436\u0438\u043c THP: \u201emadvise\u201c \u0434\u043b\u044f \u0448\u0438\u0440\u043e\u043a\u0438\u0445 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a, \u201enever\u201c \u0434\u043b\u044f \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Redis. \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 hugepages \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0431\u0443\u0444\u0435\u0440\u043d\u044b\u0445 \u043f\u0443\u043b\u043e\u0432 MariaDB, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u043c\u0430\u0445\u043e\u0432 TLB. \u0417\u0430\u0449\u0438\u0442\u0430 Redis \u043e\u0442 \u043f\u0438\u043a\u043e\u0432 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438: \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c THP \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u043e\u0440\u043a\u043e\u0432. PHP-FPM \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043a\u043e\u0441\u0432\u0435\u043d\u043d\u0443\u044e \u0432\u044b\u0433\u043e\u0434\u0443 \u0437\u0430 \u0441\u0447\u0451\u0442 \u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432 \u044f\u0434\u0440\u0430 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u0431\u044d\u043a\u044d\u043d\u0434\u043e\u0432. \u041f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0441\u0440\u0435\u0434\u0443, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438\u0437\u043c\u0435\u0440\u0438\u043c\u044b\u043c\u0438. \u041a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 HugePages \u0438 THP \u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e HugePages, \u0447\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u0430\u043c\u044f\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c. \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u043c\u0435\u044e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 4 \u041a\u0411, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 2 \u041c\u0411. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u043c\u0430\u0445\u043e\u0432 TLB, \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0442\u0440\u0430\u0442\u0438\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0441 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u041e\u0417\u0423 \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u044e\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435. Transparent Huge Pages (THP) \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0435\u0437 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0442\u0447\u0451\u0442\u044b \u0447\u0430\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430 20\u201340 %, \u0435\u0441\u043b\u0438 \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 THP \u042f \u0447\u0451\u0442\u043a\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e \u0440\u0435\u0436\u0438\u043c\u044b \u201ealways\u201c, \u201emadvise\u201c \u0438 \u201enever\u201c, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0438 \u043f\u043e-\u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u0420\u0435\u0436\u0438\u043c \u201ealways\u201c \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u041e\u0417\u0423 \u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0444\u043e\u0440\u043a\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u0420\u0435\u0436\u0438\u043c \u201emadvise\u201c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c: \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0442\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u044f\u0432\u043d\u043e \u043f\u043e\u043c\u0435\u0447\u0430\u0435\u0442. \u0420\u0435\u0436\u0438\u043c \u201enever\u201c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u044c, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0441 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u044b\u043c \u0444\u043e\u0440\u043a\u0438\u043d\u0433\u043e\u043c, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Redis. \u0422\u0435, \u043a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u043c\u0443, \u043d\u0430\u0439\u0434\u0443\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u0445 \u0438 \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0445 \u043a\u0430\u043c\u043d\u044f\u0445 \u0437\u0434\u0435\u0441\u044c: THP: \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u0435\u043b\u044c \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u042f \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u044e \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u0434 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439, \u0438\u0437\u043c\u0435\u0440\u044f\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443, \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 RSS, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u043d\u0430 \u0444\u0430\u043a\u0442\u0430\u0445. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u044b, \u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0445\u043e\u0441\u0442\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u043f\u043b\u0430\u043d \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0426\u0435\u043b\u0435\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 THP (\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u043b\u0438 systemd) \u041f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u044f\u0434\u0440\u0430: \u0432 GRUB \u201etransparent_hu"},"I3":{"id":"I3","post_id":20986,"url":"https:\/\/webhosting.de\/php-fpm-slowlog-richtig-auswerten-performance-optimierung-debugging-analyse\/","title":"\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b Slowlog PHP-FPM: \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0435 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0437\u043a\u0438\u0445 \u043c\u0435\u0441\u0442 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438","excerpt":"\u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u0442\u0435\u0431\u0435, \u043a\u0430\u043a \u0446\u0435\u043b\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0436\u0443\u0440\u043d\u0430\u043b Slowlog PHP-FPM, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0438 \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0447\u0435\u0442\u043a\u0438\u0435 \u0448\u0430\u0433\u0438 \u043f\u043e \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. \u0422\u0430\u043a \u0442\u044b \u0441\u043c\u043e\u0436\u0435\u0448\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u043e \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0443\u0437\u043a\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b \u043c\u0435\u0440 \u0438 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0447\u0442\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438: \u0444\u0440\u0435\u0439\u043c #0 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043c\u0435\u0441\u0442\u043e, \u0442\u043e\u0440\u043c\u043e\u0437\u044f\u0449\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0443. \u0412\u044b\u0431\u043e\u0440 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0441\u043d\u0438\u0436\u0430\u0439\u0442\u0435 \u0435\u0433\u043e. \u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f \u0441 \u043b\u043e\u0433\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430: \u0442\u043e\u0447\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0439\u0442\u0435 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0435 URL-\u0430\u0434\u0440\u0435\u0441\u0430. \u041f\u043e\u0434\u0441\u0447\u0435\u0442 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432: \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b \u043f\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c. \u0412\u044b\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u043a\u043e\u0434\u0430: \u0446\u0435\u043b\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u0411\u0414, API, \u0446\u0438\u043a\u043b\u0430\u0445 \u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u0445. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Slowlog PHP-FPM? Slowlog \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0431\u044d\u043a\u0442\u0440\u0435\u0439\u0441 \u0434\u043b\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0444\u0430\u0439\u043b \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043d\u0435 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u044f \u0437\u0430\u043f\u0440\u043e\u0441. \u041f\u043e \u044d\u0442\u043e\u043c\u0443 \u044f \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0436\u0443, \u043a\u0430\u043a\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u0430\u043a\u043e\u0439 URL \u0438 \u043a\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441. \u0417\u0430\u043f\u0438\u0441\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043c\u0435\u0442\u043a\u0443, \u043f\u0443\u043b, \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430, URI \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 Slowlog \u044f\u0432\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 \u043e\u0448\u0438\u0431\u043e\u043a, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0430 \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. \u0414\u043b\u044f \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u0431\u044d\u043a\u044d\u043d\u0434\u044b WordPress, \u043e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043d\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0435\u043c\u043a\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0440\u0438\u0441\u043e\u0432\u043a\u0443 \u0438\u043b\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430. \u0422\u043e\u0442, \u043a\u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u044d\u0442\u0438 \u201e\u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u043d\u0438\u043c\u043a\u0438\u201c, \u043c\u043e\u0436\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u0443\u0437\u0438\u0442\u044c \u043a\u0440\u0443\u0433 \u043f\u043e\u0438\u0441\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u0438 \u0441\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0440\u044b. \u041a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u00abSlowlog\u00bb \u0432 \u043f\u043e\u0432\u0441\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435. \u041f\u043e\u0441\u043b\u0435 \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 PHP-FPM \u043f\u0440\u0438 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0438 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u043e\u0433\u0430 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043d\u0438\u043c\u043e\u043a \u0441\u0442\u0435\u043a\u0430, \u043f\u043e\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f. \u041a\u0430\u0436\u0434\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u00ab#0\u00bb, \u0442\u043e \u0435\u0441\u0442\u044c \u0441 \u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0442\u0435\u0440\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u041c\u0435\u0436\u0434\u0443 \u0431\u043b\u043e\u043a\u0430\u043c\u0438 \u044f \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u043c\u0435\u0447\u0430\u044e \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u043b\u043d\u044b\u0445 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439, \u043d\u043e \u0437\u0430\u0442\u043e \u0434\u0430\u0451\u0442 \u0442\u043e\u0447\u043d\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u044f, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u043a \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c, \u0437\u0430\u0431\u0440\u043e\u0448\u0435\u043d\u043d\u044b\u0435 \u0445\u0443\u043a\u0438 \u0438\u043b\u0438 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b. \u0412 \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u044d\u0442\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0441 \u043f\u0438\u043a\u0430\u043c\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0447\u0435\u0442\u043a\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u044e \u0443\u0447\u0430\u0441\u0442\u043a\u0438 \u043a\u043e\u0434\u0430. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u044f \u0437\u0430\u043c\u0435\u0447\u0430\u044e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 pm.max_children, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438 \u00ab\u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 pm.max_children\u00bb. Slowlog ak"}},"_wh_make_stage":"entwurf","_wh_make_research_date":"2026-09-30","_wh_make_sitemap_info":{"index":"https:\/\/webhosting.de\/sitemap_index.xml","sitemaps":["https:\/\/webhosting.de\/post-sitemap1.xml","https:\/\/webhosting.de\/post-sitemap2.xml","https:\/\/webhosting.de\/post-sitemap3.xml","https:\/\/webhosting.de\/post-sitemap4.xml"],"url_count":3102,"fetched_at":"2026-09-30T19:47:42+00:00","selected_ids":[17358,21283,20986]},"_wh_make_draft_hash":"1e7488cdc1f290e438d179b507f0d86d99594697d2ad0be3f04ad3a8fe2aca10","_wh_make_work":{"version":"2.1","identity":{"sheet_ref":"1VMjxV8Q73i0Q1HO6s-u4jNHVRF0snliGCeg97intLPs","sheet_name":"Tabellenblatt1","external_id":"1399","topic":"NGINX Unit als Alternative zu PHP-FPM?","keywords":["nginx unit","php hosting","application server"],"category_input":"834"},"config":{"research_model":"gpt-5.6-terra","writer_model":"gpt-5.6-terra","review_model":"gpt-5.6-sol","image_model":"gpt-image-2.5-flare","image_quality":"high","image_format":"webp","final_status":"draft","charts_enabled":true},"phase":"done","pending":null,"receipts":{"2d37907f6992bb41b15b5f7f51a16652":"b35ffedf2dbc7619842d46d214941d30de303b8cd10282bff233125b5b27b0a6","9b5df61c8ca6cf7a0a7723c4c709ee5a":"f3df0f0991e45a0683112ae7396f624728e1ce837f432c9c67ac0670a71bbb72","a2727bf1dad55545b19defa65ccb552e":"4b409459f726db360bb43bb52931790e74b63c32e3b57aa3ad3c87b36320126c","2b98c26cdd7c4974f1d37f6f056b22ff":"d2a963e425da1931e0beac12c72e49926a21ac60994f15f46406df3ba7ad19d3","1961b57c48853e7fb6a0014e2beaf421":"3af233f3d4d4f6ebbe328968c71490e3bfe29f2e9536e341ff75be1f94582b90","d87a1cf934f161a9a60aabc2de826584":"61ffd9868dd675e9d71548057aedd14fe9d1a35b716299b32c6b4da627462a0b","e6a2141f6a66002764db43b9978732aa":"2c87c88eda4564cf470373bbc23a3d2a38bcedb17b01e9fdf66dbbd52ebfc6eb","9b9d80187d1492979060b20bb77d352c":"a899663baf8f28290afb582a4491b29893de0b2f19cc8ef08a679949f2e5bd1b","109ee912a845196c8f47af2780b0885c":"b2c633a468e2a8367c9734acb2e61f51e0ca49fdffe519e44b51fa5b031ca2aa","ada50e5f90423767a9dbdeb5de851ba4":"429754d5a4f9407f88474066db05c1786834438231583b49d62ffd3f80ab5079","d08e43d602a13a7c6245b826152717bf":"224e6cb61cc5432e811275a5c0c9a68af76313dce4a2b8e1cb0bf2044456803e"},"parts":{"1":[{"id":"projektstatus-und-kurzurteil","heading":"Archivierter Status und klares Kurzurteil","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Stand 30. September 2026 lautet das klare Urteil: NGINX Unit konnte PHP-Anwendungen direkt ausf\u00fchren und dabei HTTP-Verbindungen annehmen, TLS terminieren, statische Dateien ausliefern sowie Anfragen routen. Damit ging der Funktionsumfang deutlich \u00fcber PHP-FPM hinaus. F\u00fcr neue produktive PHP-Hosting-Plattformen ist Unit dennoch keine allgemeine Empfehlung, weil das offizielle Projekt seit Oktober 2025 archiviert und nicht mehr gepflegt wird.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Das bedeutet nicht, dass eine vorhandene Unit-Installation sofort funktionsunf\u00e4hig w\u00e4re. Sie kann weiterhin eine Anwendung bedienen, sofern ihre Abh\u00e4ngigkeiten, Sicherheitsvorkehrungen und ein Migrationsweg dokumentiert sind. Eine Neuinvestition muss aber anders bewertet werden: Ohne fortlaufende Projektpflege steigen Risiken bei Sicherheitsl\u00fccken, Paketverf\u00fcgbarkeit, neuen Betriebssystemversionen und k\u00fcnftigen PHP-Kompatibilit\u00e4ten.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei Versionsangaben ist eine saubere Trennung wichtig. Die weiterhin verf\u00fcgbare Installationsdokumentation nennt vielfach Unit 1.34.2, w\u00e4hrend der stabile Release-Tag 1.35.0 ver\u00f6ffentlicht wurde. Der Release belegt unter anderem PHP-8.5-Kompatibilit\u00e4t; daraus folgt jedoch keine fortgesetzte Wartung. Der Entwicklungszweig ","ref":""},{"kind":"code","text":"master","ref":""},{"kind":"text","text":" ist wegen des archivierten Status keine ma\u00dfgebliche Produktversion f\u00fcr Betriebsentscheidungen.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S4"}]}]},{"id":"architektur-und-php-ausfuehrung","heading":"NGINX, PHP-FPM und Unit unterscheiden","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr eine belastbare Entscheidung m\u00fcssen die Komponenten getrennt betrachtet werden. ","ref":""},{"kind":"strong","text":"NGINX","ref":""},{"kind":"text","text":" ist Webserver und Reverse Proxy: Er nimmt HTTP-Anfragen entgegen, kann statische Inhalte ausliefern und leitet dynamische Anfragen weiter. PHP-FPM ist dagegen ein FastCGI Process Manager. Er stellt PHP-Worker bereit, verarbeitet aber nicht selbst die typische Webserver-Aufgabe der HTTP-Annahme und des Routings.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Im klassischen Aufbau erreicht eine Anfrage zun\u00e4chst NGINX. Handelt es sich um eine statische Datei, kann NGINX sie unmittelbar ausliefern. F\u00fcr ein PHP-Skript \u00fcbergibt NGINX die erforderlichen FastCGI-Parameter an einen PHP-FPM-Pool; ein freier Worker f\u00fchrt den Code aus und liefert die Antwort \u00fcber NGINX zur\u00fcck. Poolgr\u00f6\u00dfe und Prozessmodus werden bei PHP-FPM in Konfigurationsdateien im php.ini-Format gesteuert.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Unit war demgegen\u00fcber ein ","ref":""},{"kind":"strong","text":"Application Server","ref":""},{"kind":"text","text":" mit Listenern, Routen, statischer Auslieferung und Sprachlaufzeiten in einem JSON-Konfigurationsmodell. Eine PHP-Anwendung wird dort als Anwendungstyp eingebunden; Unit kann somit den Request-Weg innerhalb derselben Plattform von der Annahme bis zur PHP-Ausf\u00fchrung abbilden. Das reduziert nicht automatisch das Betriebsrisiko, ver\u00e4ndert aber die Zust\u00e4ndigkeitsgrenzen.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Unit ist deshalb nicht \u201eNGINX mit eingebettetem PHP-FPM\u201c. Beim Bau des PHP-Moduls entsteht ein eigenes SAPI-Modul, das mit der PHP-Embed-Bibliothek verkn\u00fcpft ist. Bei Analyse und Migration m\u00fcssen Teams folglich nicht nur FastCGI-Einstellungen \u00fcbertragen, sondern Routing, Anwendungsdefinitionen, Modulbindung und Diagnosewege neu zuordnen. Fehler lassen sich nicht pauschal einem vorgeschalteten Webserver oder einem getrennten FPM-Pool zuschreiben.","ref":""},{"kind":"citation","text":"","ref":"S3"}]}]},{"id":"module-versionen-und-konfiguration","heading":"PHP-Module, Versionen und Konfigurationsgrenzen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr PHP ben\u00f6tigt eine Unit-Installation neben dem Kern ein passendes Sprachmodul. Dieses Modul ist an die verwendete PHP-Version und die Unit-Installation gebunden. Waren keine geeigneten Pakete f\u00fcr Betriebssystem und PHP-Version verf\u00fcgbar, beschrieb die Dokumentation den Eigenbau mit einer PHP-Installation, die die Embed-SAPI bereitstellt. Das erh\u00f6ht den Aufwand f\u00fcr Updates, reproduzierbare Builds und die Fehleranalyse erheblich.","ref":""},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch die Konfiguration folgt unterschiedlichen Modellen. Unit b\u00fcndelt Listener, Routen und Anwendungen als JSON-Daten \u00fcber ihre Konfigurationsschnittstelle. PHP-FPM verwaltet Pools dagegen in Dateien im php.ini-Format. Diese Differenz ist mehr als Syntax: In einem FPM-Stack liegen Webserver-Regeln und PHP-Pooldefinitionen getrennt, w\u00e4hrend Unit beides enger in einer Plattform verbindet. Migrationskonzepte m\u00fcssen diese Struktur ber\u00fccksichtigen.","ref":""},{"kind":"citation","text":"","ref":"S5"},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr PHP-Direktiven unterscheidet Unit die Bereiche ","ref":""},{"kind":"strong","text":"admin","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"strong","text":"user","ref":""},{"kind":"text","text":". Admin-Optionen entsprechen PHP_INI_SYSTEM und sind durch die Anwendung nicht zur Laufzeit ver\u00e4nderbar; User-Optionen entsprechen PHP_INI_USER. Unit erweitert damit aber nicht den zul\u00e4ssigen Bereich einer PHP-Direktive. Ob eine Einstellung auf diesem Weg gesetzt oder durch Anwendungscode ge\u00e4ndert werden darf, bestimmt weiterhin ihr PHP-Konfigurationsmodus.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Warnung: Die in Unit 1.35.0 ausgewiesene PHP-8.5-Kompatibilit\u00e4t belegt nur die Unterst\u00fctzung dieses Stands im letzten stabilen Release. Sie ist kein Versprechen f\u00fcr k\u00fcnftige Sicherheitskorrekturen oder Anpassungen des Unit-PHP-Moduls. F\u00fcr Bestandsbetrieb sollten daher exakter Unit-Tag, PHP-Version, Modulherkunft und ein getesteter Abl\u00f6sepfad als zusammenh\u00e4ngende Abh\u00e4ngigkeit dokumentiert werden.","ref":""},{"kind":"citation","text":"","ref":"S2"}]}]}],"2":[{"id":"php-routing-mit-unit","heading":"PHP-Routing und Front Controller konfigurieren","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Eine Unit-Konfiguration verbindet einen Listener mit Routen und einer Anwendung. F\u00fcr eine lokale Demo kann der Listener ausschlie\u00dflich auf ","ref":""},{"kind":"code","text":"127.0.0.1:8080","ref":""},{"kind":"text","text":" lauschen. Eine Route versucht zun\u00e4chst, die angeforderte Datei unter ","ref":""},{"kind":"code","text":"\/srv\/example-app\/public","ref":""},{"kind":"text","text":" auszuliefern; existiert sie nicht, \u00fcbergibt der Fallback die Anfrage an die PHP-Anwendung. So bleiben \u00f6ffentliche Dateien und die Anwendungsausf\u00fchrung als getrennte Schritte nachvollziehbar.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"In der Anwendung legt ","ref":""},{"kind":"code","text":"root","ref":""},{"kind":"text","text":" das Dokumentenverzeichnis fest, w\u00e4hrend ","ref":""},{"kind":"code","text":"type: php","ref":""},{"kind":"text","text":" die PHP-Laufzeit ausw\u00e4hlt. Mit ","ref":""},{"kind":"code","text":"script: index.php","ref":""},{"kind":"text","text":" wird jede an die Anwendung weitergereichte Anfrage an dieses Skript geleitet. Das entspricht dem ","ref":""},{"kind":"strong","text":"Front Controller","ref":""},{"kind":"text","text":" vieler PHP-Frameworks: Die Anwendung wertet den urspr\u00fcnglichen Pfad selbst aus und entscheidet etwa \u00fcber Controller oder Fehlerseite.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ohne die Einstellung ","ref":""},{"kind":"code","text":"script","ref":""},{"kind":"text","text":" verarbeitet Unit URI-basierte Skriptpfade. Das kann f\u00fcr \u00e4ltere Anwendungen passend sein, deren PHP-Dateien direkt aufgerufen werden sollen, verlangt aber eine sorgf\u00e4ltige Begrenzung der erreichbaren Pfade. ","ref":""},{"kind":"code","text":"targets","ref":""},{"kind":"text","text":" erlauben zus\u00e4tzlich Teilbereiche mit abweichendem root-, script- oder index-Verhalten. Sie sind daher kein Ersatz f\u00fcr Routing, sondern eine M\u00f6glichkeit, mehrere Anwendungsregeln gezielt zu definieren.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Das folgende Beispiel ist eine JSON-Dateikonfiguration f\u00fcr eine lokale Demo, nicht f\u00fcr einen \u00f6ffentlichen Dienst. Sie enth\u00e4lt weder Domainnamen noch TLS- oder Zugangsdaten. Vor einer \u00dcbernahme m\u00fcssen Dateirechte, der tats\u00e4chlich installierte PHP-Support und die f\u00fcr Unit vorgesehene Methode zum Einspielen der Konfiguration gepr\u00fcft werden.","ref":""}]},{"type":"code","language":"json","code":"{\n  \"listeners\": {\n    \"127.0.0.1:8080\": {\n      \"pass\": \"routes\/example\"\n    }\n  },\n  \"routes\": {\n    \"example\": [\n      {\n        \"action\": {\n          \"share\": \"\/srv\/example-app\/public$uri\",\n          \"fallback\": {\n            \"pass\": \"applications\/example-php\"\n          }\n        }\n      }\n    ]\n  },\n  \"applications\": {\n    \"example-php\": {\n      \"type\": \"php\",\n      \"root\": \"\/srv\/example-app\/public\",\n      \"script\": \"index.php\"\n    }\n  }\n}","source_ids":["S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Reihenfolge ist entscheidend: Der ","ref":""},{"kind":"strong","text":"statische Auslieferung","ref":""},{"kind":"text","text":" dienende share-Schritt wird vor dem Fallback versucht. Nicht vorhandene Dateien landen bei ","ref":""},{"kind":"code","text":"index.php","ref":""},{"kind":"text","text":"; dadurch funktionieren auch sprechende URLs wie ","ref":""},{"kind":"code","text":"\/artikel\/beispiel","ref":""},{"kind":"text","text":" ohne eine gleichnamige Datei. Ob zus\u00e4tzliche Regeln f\u00fcr Upload-Verzeichnisse, Verwaltungsbereiche oder direkt erreichbare PHP-Dateien n\u00f6tig sind, ergibt sich aus der jeweiligen Anwendung und sollte nicht pauschal aus dieser Demo abgeleitet werden.","ref":""},{"kind":"citation","text":"","ref":"S6"}]}]},{"id":"prozessmodelle-und-ram-budget","heading":"Prozessmodelle und RAM-Budget vergleichen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"PHP-FPM steuert Worker je Pool \u00fcber die Modi ","ref":""},{"kind":"code","text":"static","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"dynamic","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"code","text":"ondemand","ref":""},{"kind":"text","text":". Bei Unit wird die Prozesszahl dagegen innerhalb der Anwendung modelliert. Eine dynamische Unit-Konfiguration begrenzt mit ","ref":""},{"kind":"code","text":"processes.max","ref":""},{"kind":"text","text":" die Gesamtzahl und h\u00e4lt mit ","ref":""},{"kind":"code","text":"processes.spare","ref":""},{"kind":"text","text":" Leerlaufprozesse vor; ","ref":""},{"kind":"code","text":"idle_timeout","ref":""},{"kind":"text","text":" r\u00e4umt \u00fcberz\u00e4hlige inaktive Prozesse ab.","ref":""},{"kind":"citation","text":"","ref":"S5"},{"kind":"citation","text":"","ref":"S6"}]},{"type":"table","caption":"Prozesssteuerung: \u00e4hnliche Ziele, unterschiedliche Konfigurationsmodelle","headers":["Mechanismus","PHP-FPM","Unit","Betriebswirkung","Grenze"],"rows":[["Feste Workerzahl","pm = static","processes mit fester Zahl","Kapazit\u00e4t bleibt vorab definiert.","Leerlauf verbraucht weiterhin Speicher."],["Dynamische Worker","pm = dynamic; Obergrenze \u00fcber pm.max_children","processes.max und processes.spare","Kapazit\u00e4t kann sich am Bedarf orientieren.","Die Obergrenze muss zum verf\u00fcgbaren RAM passen."],["Start bei Bedarf","pm = ondemand","Kein direkt gleich benannter Modus; Prozesseinstellungen bestimmen das Unit-Verhalten","Kann Leerlaufprozesse reduzieren.","Startverhalten und Lastprofil m\u00fcssen beobachtet werden."],["Abbau von Leerlauf","Pool-Parameter des gew\u00e4hlten FPM-Modus","idle_timeout","Nicht ben\u00f6tigte Prozesse k\u00f6nnen beendet werden.","Kein Ersatz f\u00fcr eine Kapazit\u00e4tsplanung."]],"source_ids":["S5","S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Begriffe sind deshalb nicht eins zu eins austauschbar. Insbesondere ist eine dokumentierte Voreinstellung kein geeigneter Wert f\u00fcr eine Website. Sowohl ","ref":""},{"kind":"code","text":"pm.max_children","ref":""},{"kind":"text","text":" als auch ","ref":""},{"kind":"code","text":"processes.max","ref":""},{"kind":"text","text":" begrenzen parallele PHP-Arbeit und k\u00f6nnen bei zu niedrigen Werten Warteschlangen erzeugen. Zu hohe Werte konkurrieren dagegen mit Betriebssystem, Datenbank, Cache und weiteren Diensten um Arbeitsspeicher.","ref":""},{"kind":"citation","text":"","ref":"S5"},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein ","ref":""},{"kind":"strong","text":"RAM-Budget","ref":""},{"kind":"text","text":" ist zun\u00e4chst nur ein Planungsmodell: Vom Gesamtspeicher werden Reserven f\u00fcr Betriebssystem, Datenbank, Cache und weitere Prozesse abgezogen. Der verbleibende Wert wird durch einen konservativ angesetzten Speicherbedarf je PHP-Worker geteilt. Beispielhaft ergeben 1.200 MiB f\u00fcr PHP geteilt durch 120 MiB je Worker rechnerisch zehn Worker; beide Werte sind bewusst gew\u00e4hlte Platzhalter, keine Messung oder Konfigurationsempfehlung.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Das Ergebnis ist eine ","ref":""},{"kind":"strong","text":"Obergrenze","ref":""},{"kind":"text","text":" und ein Startpunkt f\u00fcr Beobachtung, nicht die richtige Einstellung. Entscheidend sind reale Spitzenwerte, Warteschlangen, Antwortfehler und der Speicherbedarf unter typischer sowie hoher Last. F\u00fcr die methodische Herleitung und das Nachjustieren von ","ref":""},{"kind":"code","text":"pm.max_children","ref":""},{"kind":"text","text":" hilft der interne Beitrag ","ref":""},{"kind":"internal_link","text":"PHP-FPM-Children passend berechnen","ref":"I1"},{"kind":"text","text":". Bei Unit gilt derselbe Grundsatz, auch wenn die Parameter anders hei\u00dfen.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Warnung: Prozessgrenzen durch blo\u00dfes \u00dcbernehmen fremder Zahlen zu setzen, verschiebt Probleme h\u00e4ufig nur. Erst ein abgegrenztes Speicherbudget und wiederholtes Monitoring zeigen, ob eine Worker-Obergrenze zur Anwendung, ihren Erweiterungen und den gleichzeitig betriebenen Diensten passt.","ref":""}]}]},{"id":"vergleich-der-betriebsmodelle","heading":"Betriebsmodelle f\u00fcr PHP-Hosting bewerten","blocks":[{"type":"table","caption":"Betriebsmodelle f\u00fcr PHP-Anwendungen im Vergleich","headers":["Modell und Architektur","PHP-Ausf\u00fchrung und Prozesse","Konfiguration und Laufzeiten","Wartungsstatus","Geeigneter Einsatzfall","Zentrale Einschr\u00e4nkung"],"rows":[["NGINX plus PHP-FPM; getrennte Web- und PHP-Schicht","NGINX leitet PHP per FastCGI an FPM-Pools weiter; FPM bietet static, dynamic und ondemand.","Webserver-Konfiguration plus Pooldateien im php.ini-Format; auf PHP ausgerichtet.","PHP-FPM ist Teil der PHP-Distribution.","Standard f\u00fcr neue PHP-Hosting-Umgebungen.","Zwei Komponenten und ihre Schnittstelle m\u00fcssen betrieben werden."],["NGINX Unit 1.35.0; Application Server mit Listenern und Anwendungen","Unit f\u00fchrt PHP \u00fcber sein Sprachmodul aus und verwaltet Anwendungsprozesse.","Zentrale JSON-Konfiguration; Plattform f\u00fcr mehrere Laufzeiten.","Letzter stabiler Release-Tag 1.35.0; Projekt ist archiviert.","Bestand oder bewusst isolierte Sonderumgebung.","Keine fortlaufende Projektpflege; Modul- und Versionsbindung beachten."],["Apache HTTP Server mit PHP-FPM; Webserver und externe PHP-Schicht","Apache \u00fcbergibt PHP an FPM-Pools.","Apache-Konfiguration plus FPM-Pooldateien; auf PHP ausgerichtet.","PHP-FPM ist Teil der PHP-Distribution.","Umgebungen mit Apache-spezifischen Anforderungen.","Zwei Komponenten und ihre Schnittstelle m\u00fcssen betrieben werden."]],"source_ids":["S2","S5","S8","S9"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Tabelle ordnet Architekturen, nicht Geschwindigkeit oder Speicherverbrauch. F\u00fcr neues PHP-Hosting spricht beim NGINX-PHP-FPM-Aufbau vor allem die klare Trennung: Der Webserver behandelt HTTP, Proxying und statische Inhalte, w\u00e4hrend PHP-FPM die PHP-Worker pro Pool verwaltet. Diese Zust\u00e4ndigkeiten erleichtern es, Konfigurationen, Fehlerbilder und Updates getrennt zu beurteilen.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Unit konnte Listener, Routing, statische Dateien und Anwendungen in einer Plattform b\u00fcndeln und neben PHP weitere Laufzeiten unterst\u00fctzen. Dieser Mehrsprachenansatz kann erkl\u00e4ren, weshalb eine bestehende Umgebung Unit gew\u00e4hlt hat. F\u00fcr ausschlie\u00dflich PHP-basierte Angebote ist er jedoch kein automatischer Vorteil: Er ersetzt weder die Bewertung der ben\u00f6tigten Funktionen noch die Pr\u00fcfung, ob das Team die andere Konfigurations- und Betriebslogik dauerhaft beherrschen kann.","ref":""},{"kind":"citation","text":"","ref":"S8"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei Unit 1.35.0 muss der technische Funktionsumfang vom ","ref":""},{"kind":"strong","text":"Wartungsstatus","ref":""},{"kind":"text","text":" getrennt werden. Der Release-Tag belegt die ver\u00f6ffentlichte Version und deren \u00c4nderungen; daraus folgt keine weitere Pflege des inzwischen archivierten Projekts. F\u00fcr eine Neuentscheidung wiegt diese Grenze schwerer als eine geringere Zahl sichtbarer Komponenten. F\u00fcr eine vorhandene Installation ist sie dagegen Anlass, Abh\u00e4ngigkeiten und einen Migrationsweg zu dokumentieren.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S9"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Apache mit PHP-FPM ist keine pauschal bessere oder schlechtere Alternative, sondern eine Option bei vorhandenen Apache-Anforderungen. Die Auswahl sollte sich an Wartbarkeit, verf\u00fcgbaren PHP-Versionen, Patchprozessen, Teamwissen und dem R\u00fcckfallplan orientieren. Ohne vergleichbare Lastprofile und dokumentierte Messmethodik l\u00e4sst sich aus dieser Architektur\u00fcbersicht keine belastbare Leistungsrangfolge ableiten.","ref":""}]}]}],"3":[{"id":"bestandsbetrieb-und-absicherung","heading":"Unit im Bestand sicher betreiben","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Eine vorhandene Unit-Installation sollte zun\u00e4chst als Bestandssystem erfasst werden, nicht als Vorlage f\u00fcr eine neue Plattform. Entscheidend sind die tats\u00e4chlich eingesetzte Version, die angebundenen Anwendungen und ihre Abh\u00e4ngigkeiten. Dass Unit weiterhin technisch ausf\u00fchrbar ist, \u00e4ndert nichts daran, dass das Projekt archiviert wurde; Betrieb und Abl\u00f6sung m\u00fcssen daher gemeinsam geplant werden.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei WordPress, Joomla oder Drupal ist der ","ref":""},{"kind":"strong","text":"Front Controller","ref":""},{"kind":"text","text":" der zentrale Punkt: Nicht als Datei vorhandene Pfade m\u00fcssen an die zentrale PHP-Einstiegsdatei gehen, w\u00e4hrend vorhandene Dateien direkt ausgeliefert werden k\u00f6nnen. Die WordPress-Anleitung f\u00fcr Unit zeigt dieses Routing-Prinzip einschlie\u00dflich der Behandlung von PHP-Dateien und ","ref":""},{"kind":"code","text":"\/wp-admin\/","ref":""},{"kind":"text","text":". F\u00fcr ein bestehendes CMS kann das eine nachvollziehbare Konfiguration sein; f\u00fcr eine Neuinstallation folgt daraus keine Empfehlung f\u00fcr Unit.","ref":""},{"kind":"citation","text":"","ref":"S7"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Mehrere kleine Anwendungen mit PHP, Python, Ruby oder Node.js konnten unter Unit Listener, Routen und Laufzeiten in einer gemeinsamen Plattform b\u00fcndeln. Das kann erkl\u00e4ren, warum sich eine bestehende Architektur seinerzeit f\u00fcr Unit entschieden hat. Bei reinem PHP-Hosting ist diese Mehrsprachenf\u00e4higkeit jedoch kein Selbstzweck: Separate, gepflegte Komponenten k\u00f6nnen trotz zus\u00e4tzlicher Schnittstellen langfristig besser wartbar sein.","ref":""},{"kind":"citation","text":"","ref":"S8"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein eingefrorenes Container-Deployment verlangt eine besonders genaue Inventarisierung. Dokumentiere daf\u00fcr den exakten Unit-Tag, die PHP-Version, das installierte Sprachmodul, das Basisimage und die vollst\u00e4ndige Konfiguration. Erg\u00e4nze au\u00dferdem Quellen f\u00fcr Images und Pakete, den Patchprozess sowie einen getesteten Migrations- und R\u00fcckfallpfad. PHP-Kompatibilit\u00e4t eines bestimmten Unit-Releases ist dabei keine Zusage, dass das zugeh\u00f6rige Modul k\u00fcnftig Sicherheitskorrekturen erh\u00e4lt.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"NGINX kann vor Unit stehen, etwa wenn eine bestehende NGINX-Schicht erhalten bleiben soll oder Zugriffe gezielt vorgelagert werden. Die Unit-Dokumentation nennt diese Integration auch im Zusammenhang mit der Absicherung des Control Socket. Sie behebt den archivierten Status aber nicht und schafft einen weiteren Dienst mit eigener Konfiguration, Protokollierung und Updateverantwortung. Der Nutzen muss deshalb konkret gegen diesen Betriebsaufwand abgewogen werden.","ref":""},{"kind":"citation","text":"","ref":"S10"}]}]},{"id":"timeouts-logs-und-fehlersuche","heading":"Timeouts, Logs und h\u00e4ngende Prozesse","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Prozessgrenzen sind keine Fehlerdiagnose. Mit ","ref":""},{"kind":"code","text":"limits.requests","ref":""},{"kind":"text","text":" kann Unit einen Anwendungsprozess nach einer festgelegten Zahl bearbeiteter Anfragen ersetzen. Das kann kumulierte Speicherbelegung zeitlich begrenzen, beseitigt aber weder Speicherlecks noch \u00fcbergro\u00dfe Datenstrukturen oder blockierende externe Aufrufe. Ein regelm\u00e4\u00dfiger Neustart darf daher nicht als Nachweis f\u00fcr einen stabilen Anwendungscode gelten.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Mit ","ref":""},{"kind":"code","text":"limits.timeout","ref":""},{"kind":"text","text":" beendet Unit eine Anfrage nach Ablauf der konfigurierten Zeit mit HTTP 503. Das ist eine sichtbare Schutzgrenze f\u00fcr einzelne Requests, jedoch kein vollst\u00e4ndiger Schutz gegen festgefahrene Worker: Laut Dokumentation erkennt Unit eingefrorene Prozesse nicht; sie k\u00f6nnen im Prozesspool verbleiben. Ein h\u00f6herer Timeout verschiebt dieses Problem nur, ein niedrigerer kann regul\u00e4r langsame Vorg\u00e4nge abbrechen.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"list","ordered":false,"items":["HTTP-Status, betroffene Pfade, Zeitfenster und H\u00e4ufigkeit erfassen, bevor Grenzwerte ge\u00e4ndert werden.","Zugriffs-, Fehler- und Anwendungslogs anhand von Zeitstempeln zusammenf\u00fchren; bei PHP-FPM kann ein Slowlog zus\u00e4tzliche Stack-Hinweise liefern.","CPU, Arbeitsspeicher, I\/O, Netzwerkverbindungen sowie Zustand und Anzahl der Prozesse pr\u00fcfen.","Danach Code, Datenbankabfragen, Dateisystemzugriffe und externe Dienste als m\u00f6gliche Ursache untersuchen.","Erst wenn Ursache und Lastprofil bekannt sind, Timeouts, Prozessgrenzen oder Neustartregeln gezielt anpassen."],"source_ids":["S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein HTTP 503 kann somit auf ein abgelaufenes Zeitlimit hinweisen, aber auch durch vorgelagerte Komponenten oder andere Fehler entstehen. Wiederkehrende lange PHP-Anfragen solltest du nicht allein \u00fcber Worker-Zahlen behandeln. Die Anleitung zum ","ref":""},{"kind":"internal_link","text":"PHP-FPM-Slowlog und zur Ursachenanalyse langsamer Requests","ref":"I3"},{"kind":"text","text":" zeigt, wie Stack-Spuren mit Request-Daten verbunden werden k\u00f6nnen; die gleiche Ursache-Wirkung-Logik ist auch bei einer Unit-Bestandsanalyse sinnvoll.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Besonders kritisch sind Symptome ohne eindeutigen Abschluss: steigende Wartezeiten, dauerhaft belegte Prozesse oder ausbleibende Logfortschritte. Dann sind Prozesszustand und Abh\u00e4ngigkeiten wichtiger als eine pauschale Timeout-Erh\u00f6hung. Pr\u00fcfe beispielsweise, ob ein PHP-Worker auf Datenbank-, DNS-, Dateisystem- oder Netzwerk-I\/O wartet. Erst die konkrete Blockade entscheidet, ob ein Code-Fix, eine Ressourcenanpassung oder ein kontrollierter Neustart angemessen ist.","ref":""}]},{"type":"callout","variant":"warning","title":"Timeouts richtig einordnen","runs":[{"kind":"text","text":"Ein Timeout begrenzt die Dauer einer Anfrage, ersetzt aber weder Monitoring noch die Analyse h\u00e4ngender Prozesse und externer Abh\u00e4ngigkeiten.","ref":""},{"kind":"citation","text":"","ref":"S6"}]}]},{"id":"entscheidung-und-migrationspfad","heading":"Entscheidung f\u00fcr neue und alte Systeme","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr neue PHP-Hosting-Umgebungen ist ein gepflegter Webserver mit PHP-FPM die nachvollziehbarere Standardentscheidung. PHP-FPM geh\u00f6rt zur regul\u00e4ren PHP-Distribution und stellt dokumentierte Pool- und Prozessmanager-Optionen bereit. Bei Unit verschiebt sich die Frage dagegen von der reinen Funktionsf\u00e4higkeit zur Wartbarkeit: Die Installation kann weiterlaufen, doch der archivierte Projektstatus erh\u00f6ht das Risiko einer langfristigen Abh\u00e4ngigkeit.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr vorhandene Unit-Systeme beginnt eine sachliche Entscheidung mit einer Inventarisierung. Pr\u00fcfe Wartungsstatus und Patchf\u00e4higkeit von Betriebssystem, PHP und Basisimage, die Kompatibilit\u00e4t des installierten Sprachmoduls, vorhandenes Betriebswissen sowie gekoppelte Dienste. Ebenso wichtig sind exportierbare Konfigurationen, ein reproduzierbarer Rollback und ein Zielsystem, auf das sich Routing, PHP-Einstellungen und Deployments schrittweise \u00fcbertragen lassen.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Eine Migration ben\u00f6tigt keine erfundene allgemeing\u00fcltige Frist, aber eine priorisierte Reihenfolge. Internet-exponierte Anwendungen, nicht aktualisierbare Images, unklare Modulherkunft und gesch\u00e4ftskritische Anwendungen ohne R\u00fcckfallplan verdienen zuerst Aufmerksamkeit. Danach lassen sich Anwendungen nach Komplexit\u00e4t und Abh\u00e4ngigkeiten gruppieren. Ein Parallelbetrieb w\u00e4hrend einer kontrollierten Umstellung kann Risiken reduzieren, sofern Datenhaltung, Sessions und R\u00fcckweg vorher definiert sind.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die ","ref":""},{"kind":"strong","text":"Control API","ref":""},{"kind":"text","text":" ist ein administrativer Zugriff und kein gew\u00f6hnlicher Endpunkt einer Website. Unit dokumentiert f\u00fcr sie einen Unix-Domain-Socket und begr\u00fcndet dessen Einsatz mit Sicherheitsaspekten. Lege restriktive Dateirechte und klar abgegrenzte administrative Zugriffe fest; eine \u00f6ffentliche Erreichbarkeit w\u00fcrde Angreifern bei erfolgreichem Zugriff weitreichende M\u00f6glichkeiten zur \u00c4nderung der Konfiguration er\u00f6ffnen.","ref":""},{"kind":"citation","text":"","ref":"S11"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Der praktische Migrationspfad endet nicht mit einer neuen Prozesskonfiguration. \u00dcbernimm Anwendung f\u00fcr Anwendung die PHP-Version, Erweiterungen, Umgebungswerte, Dateirechte, Routingregeln und Beobachtbarkeit in das Zielsystem. Vergleiche dabei erwartete Antworten und Fehlerf\u00e4lle statt pauschale Geschwindigkeitsurteile abzuleiten. So wird aus einer ungeplanten Altlast eine dokumentierte ","ref":""},{"kind":"strong","text":"Abl\u00f6sestrategie","ref":""},{"kind":"text","text":" mit nachvollziehbaren technischen Entscheidungen.","ref":""}]}]}]},"plan":{"reader_question":"Kann NGINX Unit PHP-FPM im PHP-Hosting ersetzen, und in welchen Betriebsf\u00e4llen ist das trotz des archivierten Projektstatus sinnvoll oder nicht sinnvoll?","sections":[{"id":"projektstatus-und-kurzurteil","heading":"Archivierter Status und klares Kurzurteil","part":1,"target_words":260,"purpose":"Den Recherche-Stichtag und die zentrale Entscheidung gleich zu Beginn einordnen: Unit konnte PHP technisch direkt ausf\u00fchren, ist f\u00fcr neue produktive PHP-Hosting-Plattformen wegen des seit Oktober 2025 archivierten und nicht gepflegten Projekts aber keine allgemeine Empfehlung. In zwei Abs\u00e4tzen zwischen Funktionsf\u00e4higkeit einer Bestandsinstallation und Wartbarkeit einer Neuinvestition unterscheiden. Die Diskrepanz zwischen Dokumentationsstand 1.34.2 und stabilem Release-Tag 1.35.0 nennen, ohne master als ma\u00dfgebliche Produktversion darzustellen.","source_ids":["S1","S2","S4"],"internal_link_ids":[]},{"id":"architektur-und-php-ausfuehrung","heading":"NGINX, PHP-FPM und Unit unterscheiden","part":1,"target_words":275,"purpose":"Die Rollen pr\u00e4zise abgrenzen: NGINX als Webserver und Reverse Proxy, PHP-FPM als FastCGI-Prozessmanager und Unit als Application Server mit Listenern, Routing, statischer Auslieferung und Sprachlaufzeiten. Ein kurzer Request-Weg f\u00fcr NGINX plus PHP-FPM wird dem Unit-Modell gegen\u00fcbergestellt. Erkl\u00e4ren, dass Unit kein NGINX mit eingebettetem PHP-FPM ist, sondern ein eigenes PHP-SAPI-Modul \u00fcber die PHP-Embed-Bibliothek nutzt. Abschlie\u00dfend die Konsequenz f\u00fcr Zust\u00e4ndigkeiten, Fehlersuche und Migration herausarbeiten.","source_ids":["S3","S5","S6"],"internal_link_ids":[]},{"id":"module-versionen-und-konfiguration","heading":"PHP-Module, Versionen und Konfigurationsgrenzen","part":1,"target_words":260,"purpose":"Voraussetzungen f\u00fcr PHP in Unit erl\u00e4utern: Kerninstallation, passendes Sprachmodul, Bindung an PHP-Version und gegebenenfalls Eigenbau mit Embed-SAPI. Danach das JSON-Konfigurationsmodell mit PHP-FPM-Pooldateien im php.ini-Format kontrastieren. Die Optionen admin und user als Zuordnung zu PHP_INI_SYSTEM beziehungsweise PHP_INI_USER erkl\u00e4ren und klar begrenzen: Unit-Optionen \u00e4ndern nicht, welche Direktiven PHP grunds\u00e4tzlich zul\u00e4sst. Ein eigener Absatz warnt vor der Gleichsetzung von verf\u00fcgbarer PHP-8.5-Kompatibilit\u00e4t in Unit 1.35.0 mit fortlaufender Pflege des Unit-Moduls.","source_ids":["S2","S3","S4","S5","S6"],"internal_link_ids":[]},{"id":"php-routing-mit-unit","heading":"PHP-Routing und Front Controller konfigurieren","part":2,"target_words":280,"purpose":"Anhand einer ausdr\u00fccklich lokalen Demo-Anwendung unter \/srv\/example-app\/public erkl\u00e4ren, wie Unit Listener, statische Dateien, Fallback und eine PHP-Anwendung zusammensetzt. Die Struktur soll einen kurzen Ablauftext und ein sp\u00e4teres, sicheres JSON-Dateikonfigurationsbeispiel f\u00fcr 127.0.0.1:8080 vorsehen. root, type php und script index.php f\u00fcr Framework-Front-Controller erl\u00e4utern; URI-basierte Skriptpfade, script und targets voneinander abgrenzen. Keine produktiven Domains, Zertifikate, Zugangsdaten oder Behauptungen zur Leistungswirkung verwenden.","source_ids":["S6"],"internal_link_ids":[]},{"id":"prozessmodelle-und-ram-budget","heading":"Prozessmodelle und RAM-Budget vergleichen","part":2,"target_words":300,"purpose":"PHP-FPM-Modi static, dynamic und ondemand den Unit-Einstellungen processes.max, processes.spare und idle_timeout gegen\u00fcberstellen. Eine informative Tabelle mit den Spalten Mechanismus, PHP-FPM, Unit, Betriebswirkung und Grenze einplanen. Anschlie\u00dfend ein als Modell gekennzeichnetes Rechenbeispiel aufbauen: f\u00fcr PHP verf\u00fcgbaren RAM nach Reserven f\u00fcr Betriebssystem, Datenbank und Cache durch konservativ angesetzten Worker-Speicher teilen. Herausstellen, dass das Ergebnis nur eine Obergrenze und ein Startpunkt f\u00fcr Monitoring ist, keine fertige Konfiguration; konkrete Demonstrationswerte m\u00fcssen als Platzhalter markiert bleiben.","source_ids":["S5","S6"],"internal_link_ids":["I1"]},{"id":"vergleich-der-betriebsmodelle","heading":"Betriebsmodelle f\u00fcr PHP-Hosting bewerten","part":2,"target_words":295,"purpose":"Die zentrale Vergleichstabelle anlegen. Zeilen: NGINX plus PHP-FPM, NGINX Unit 1.35.0 und Apache HTTP Server mit PHP-FPM. Spalten: Architektur, PHP-Ausf\u00fchrung, Prozessmanagement, Konfigurationsmodell, Mehrsprachenf\u00e4higkeit, Update- und Wartungsstatus, geeignete Einsatzf\u00e4lle und zentrale Einschr\u00e4nkungen. Danach die Tabelle interpretieren, ohne Geschwindigkeits-, Speicher- oder Skalierungsrangfolge zu behaupten. Den Mehrsprachenvorteil von Unit als m\u00f6glichen Grund f\u00fcr fr\u00fchere Architekturentscheidungen einordnen, aber f\u00fcr reines PHP-Hosting nicht als automatischen Wechselgrund behandeln.","source_ids":["S2","S5","S8","S9"],"internal_link_ids":[]},{"id":"bestandsbetrieb-und-absicherung","heading":"Unit im Bestand sicher betreiben","part":3,"target_words":265,"purpose":"Drei realistische Bestandsf\u00e4lle strukturiert behandeln: CMS mit Front Controller, mehrere kleine Anwendungen mit unterschiedlichen Laufzeiten und ein eingefrorenes Container-Deployment. F\u00fcr WordPress und vergleichbare CMS die technische Eignung von Routing erl\u00e4utern, aber Neuinstallationen klar von einer Bestandsanalyse trennen. F\u00fcr Container eine Checkliste im Flie\u00dftext vorsehen: exakter Unit-Tag, PHP-Version, Sprachmodul, Basisimage, Konfiguration, Patch- und Migrationspfad. Erg\u00e4nzend NGINX vor Unit als m\u00f6gliche Integrationsvariante erkl\u00e4ren und den zus\u00e4tzlichen Komponentenaufwand gegen den Nutzen abw\u00e4gen.","source_ids":["S2","S7","S8","S10"],"internal_link_ids":[]},{"id":"timeouts-logs-und-fehlersuche","heading":"Timeouts, Logs und h\u00e4ngende Prozesse","part":3,"target_words":255,"purpose":"Grenzen der Prozesssteuerung verst\u00e4ndlich erkl\u00e4ren: limits.requests kann periodische Prozesswechsel ausl\u00f6sen, beseitigt aber keine Speicherursache; limits.timeout liefert bei \u00dcberschreitung HTTP 503, erkennt laut Dokumentation jedoch keine eingefrorenen Prozesse. Einen Diagnoseablauf in sinnvoller Reihenfolge planen: Symptome und HTTP-Status erfassen, Webserver- und Anwendungslogs korrelieren, Ressourcen und Prozesszust\u00e4nde pr\u00fcfen, Ursache im Code oder bei Abh\u00e4ngigkeiten suchen, erst danach Grenzwerte anpassen. Der Strukturwechsel zu einer kompakten Fehlerbild-Ursache-Pr\u00fcfschritt-Liste verhindert reine Konfigurationsrezepte.","source_ids":["S6"],"internal_link_ids":["I3"]},{"id":"entscheidung-und-migrationspfad","heading":"Entscheidung f\u00fcr neue und alte Systeme","part":3,"target_words":240,"purpose":"Die Entscheidungsmatrix als Abschluss formulieren: Neue PHP-Hosting-Umgebungen sollten auf einen gepflegten Webserver-PHP-FPM-Stack setzen; Unit ist vor allem Thema f\u00fcr Inventarisierung, Risikoabsicherung und geplante Migration vorhandener Installationen. Kriterien sind Wartungsstatus, Patchf\u00e4higkeit, Modul- und PHP-Kompatibilit\u00e4t, vorhandenes Know-how, Abh\u00e4ngigkeiten und R\u00fcckfallplan. Abschlie\u00dfend die Control API als besonders sch\u00fctzenswerten administrativen Zugriff behandeln: Unix-Domain-Socket, restriktive Rechte und keine \u00f6ffentliche Erreichbarkeit. Keine absolute Migrationsfrist erfinden; stattdessen eine dokumentierte, priorisierte Abl\u00f6sung empfehlen.","source_ids":["S4","S5","S11"],"internal_link_ids":[]}]},"repairs":0,"reviews":1,"issues":[],"guard":{"content_md5":"29f8d165254a6ed9ac6461aeafd05010","title":"NGINX Unit \u043a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 PHP-FPM? \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0440\u0438\u0441\u043a\u0438 \u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f","slug":"nginx-unit-%d0%b0%d0%bb%d1%8c%d1%82%d0%b5%d1%80%d0%bd%d0%b0%d1%82%d0%b8%d0%b2%d0%b0-php-fpm","excerpt":"NGINX Unit \u043c\u043e\u0433 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c PHP, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435, \u0435\u0433\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 PHP. \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a.","status":"draft","featured_media":21780},"verify":{"content_md5":"29f8d165254a6ed9ac6461aeafd05010","title":"NGINX Unit \u043a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 PHP-FPM? \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0440\u0438\u0441\u043a\u0438 \u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f","slug":"nginx-unit-%d0%b0%d0%bb%d1%8c%d1%82%d0%b5%d1%80%d0%bd%d0%b0%d1%82%d0%b8%d0%b2%d0%b0-php-fpm","excerpt":"NGINX Unit \u043c\u043e\u0433 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c PHP, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435, \u0435\u0433\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 PHP. \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a.","status":"draft","featured_media":21780},"row_number":1893,"created_at":"2026-09-30T20:16:02+00:00","editorial_policy":{"version":"2.1.6","max_repairs":4,"review_model_from_attempt":2},"updated_at":"2026-09-30T20:22:04+00:00","verified_at":"2026-09-30T20:21:46+00:00"},"_wh_make_research":"RECHERCHE-BRIEFING\n\nThema: NGINX Unit als Alternative zu PHP-FPM?  \nKeywords: nginx unit, php hosting, application server  \nRecherche-Stichtag: 30. September 2026\n\nLESERFRAGE UND KERNANTWORT\n\nDer Artikel sollte die Frage beantworten: Kann NGINX Unit PHP-FPM im PHP-Hosting ersetzen \u2013 und wann ist das sinnvoll?\n\nDie kurze, fachlich entscheidende Antwort lautet: Technisch konnte NGINX Unit PHP-Anwendungen direkt ausf\u00fchren und dabei HTTP-Verbindungen annehmen, TLS terminieren, statische Dateien ausliefern, Anfragen routen und PHP-Prozesse verwalten. Damit ist es architektonisch mehr als PHP-FPM, das ausschlie\u00dflich FastCGI-Prozesse f\u00fcr einen vorgeschalteten Webserver bereitstellt. F\u00fcr neue produktive PHP-Hosting-Installationen ist Unit zum Recherche-Stichtag jedoch keine allgemeine Empfehlung: Das offizielle Repository wurde am 8. Oktober 2025 archiviert und ist schreibgesch\u00fctzt. Die Unit-Dokumentation weist ausdr\u00fccklich darauf hin, dass das Projekt seit Oktober 2025 archiviert und nicht mehr gepflegt wird. ([github.com](https:\/\/github.com\/nginx\/unit\/releases?utm_source=openai))\n\nDiese Einordnung muss am Anfang des sp\u00e4teren Artikels stehen. Sie verhindert, dass der Text eine formal vorhandene, aber nicht mehr fortentwickelte Software als zeitgem\u00e4\u00dfe Standardalternative zu PHP-FPM darstellt. Zugleich sollte der Artikel Unit nicht als funktionslos abtun: Die letzte stabile Ver\u00f6ffentlichung 1.35.0 enth\u00e4lt unter anderem PHP-8.5-Kompatibilit\u00e4t. Die weiterhin verf\u00fcgbare offizielle Installationsdokumentation nennt dagegen noch Version 1.34.2; deshalb sind Dokumentationsstand und letzter Release-Tag strikt auseinanderzuhalten. Der stabile Tag 1.35.0 ist ein konkreter Nachweis f\u00fcr die dort genannten Funktionen, nicht der inzwischen archivierte Branch master. ([github.com](https:\/\/github.com\/nginx\/unit\/releases))\n\nVORAUSSETZUNGEN UND BEGRIFFSABGRENZUNG\n\nDer sp\u00e4tere Artikel sollte drei Komponenten klar unterscheiden:\n\nNGINX ist ein Webserver und Reverse Proxy. PHP-FPM ist ein FastCGI Process Manager f\u00fcr PHP. \u00dcblicherweise nimmt NGINX HTTP-Anfragen entgegen und \u00fcbergibt PHP-Skripte \u00fcber FastCGI an einen PHP-FPM-Pool.\n\nNGINX Unit war dagegen ein Application Server beziehungsweise Application Runtime. Seine Konfiguration verbindet Listener, Routing, statische Auslieferung und Anwendungen in einem JSON-Modell. F\u00fcr PHP wird ein eingebettetes Sprachmodul geladen. Beim Bau aus dem Quellcode erzeugt Unit daf\u00fcr ein eigenes SAPI-Modul, das mit der PHP-Embed-Bibliothek verkn\u00fcpft ist. Es handelt sich also nicht um \u201eNGINX mit integriertem PHP-FPM\u201c, sondern um einen anderen PHP-Ausf\u00fchrungsweg. ([unit.nginx.org](https:\/\/unit.nginx.org\/howto\/source\/?utm_source=openai))\n\nF\u00fcr Unit ben\u00f6tigte ein System neben dem Unit-Kern ein passendes PHP-Sprachmodul. Dieses Modul musste zur verwendeten PHP-Version und zur Unit-Installation passen. Offizielle Pakete waren nicht f\u00fcr jede Kombination aus Betriebssystem und PHP-Version verf\u00fcgbar; als Alternative beschreibt die offizielle Dokumentation den Eigenbau eines Moduls mit einer PHP-Installation, die die Embed-SAPI bereitstellt. Das erh\u00f6ht den Betriebs- und Updateaufwand. ([unit.nginx.org](https:\/\/unit.nginx.org\/installation\/?utm_source=openai))\n\nF\u00fcr den Vergleich wichtig: PHP-FPM ist Bestandteil der regul\u00e4ren PHP-Distribution und unterst\u00fctzt die Prozessmanager-Modi static, dynamic und ondemand. Seine Pools werden in Konfigurationsdateien im php.ini-Format verwaltet. Die maximale Zahl paralleler PHP-Anfragen eines Pools wird \u00fcber pm.max_children begrenzt. ([php.net](https:\/\/www.php.net\/manual\/en\/install.fpm.configuration.php))\n\nGESICHERTE FUNKTIONSWEISE VON UNIT MIT PHP\n\nUnit definiert PHP-Anwendungen \u00fcber den Typ php sowie einen root-Pfad. Ohne script verarbeitet Unit URI-basierte Skriptpfade; bei gesetztem script leitet Unit s\u00e4mtliche Anfragen an dieses Front-Controller-Skript weiter. Das ist besonders f\u00fcr Frameworks mit einer zentralen index.php relevant. Mit targets lassen sich Teilbereiche einer Anwendung mit abweichendem root-, script- oder index-Verhalten definieren. ([unit.nginx.org](https:\/\/unit.nginx.org\/configuration\/?platform=docker))\n\nPHP-Einstellungen k\u00f6nnen in Unit \u00fcber die options-Struktur aus einer php.ini-Datei und zus\u00e4tzlichen Direktiven zusammengesetzt werden. Direktiven im Bereich admin werden als PHP_INI_SYSTEM gesetzt und sind durch die Anwendung nicht ver\u00e4nderbar; user-Optionen entsprechen PHP_INI_USER und k\u00f6nnen von der Anwendung zur Laufzeit ver\u00e4ndert werden. Der Artikel sollte betonen, dass diese Steuerung keine vollst\u00e4ndige Abl\u00f6sung einer sauber gepflegten PHP-Konfiguration bedeutet: Welche Direktiven zul\u00e4ssig sind, h\u00e4ngt weiterhin von ihrem PHP-Konfigurationsmodus ab. ([unit.nginx.org](https:\/\/unit.nginx.org\/configuration\/?platform=docker))\n\nAuch die Prozessverwaltung \u00e4hnelt funktional in Teilen einem PHP-FPM-Pool, ist aber anders modelliert. Unit kann pro Anwendung eine feste Anzahl von Prozessen starten oder dynamisch vorforken. Beim dynamischen Modell begrenzen max die Gesamtzahl der Prozesse und spare die vorzuhaltenden Leerlaufprozesse; idle_timeout r\u00e4umt \u00fcberz\u00e4hlige Leerlaufprozesse ab. Ohne processes-Konfiguration startet Unit laut Dokumentation einen statischen Prozess. Diese dokumentierte Vorgabe darf nicht als sinnvoller Betriebswert f\u00fcr reale Websites ausgegeben werden. ([unit.nginx.org](https:\/\/unit.nginx.org\/configuration\/?platform=docker))\n\nMit limits.requests kann Unit einen Anwendungsprozess nach einer festgelegten Zahl bearbeiteter Anfragen neu starten. Das kann kumulative Speicherprobleme begrenzen, ersetzt aber keine Ursachenanalyse. limits.timeout beendet bei \u00dcberschreitung die Anfrage mit HTTP 503; die Dokumentation weist zugleich darauf hin, dass Unit eingefrorene Prozesse nicht erkennt und diese im Prozesspool verbleiben k\u00f6nnen. Diese Grenze ist f\u00fcr den Artikel besonders wichtig, weil Timeout-Verhalten oft f\u00e4lschlich als vollst\u00e4ndige Absicherung gegen h\u00e4ngende PHP-Prozesse verstanden wird. ([unit.nginx.org](https:\/\/unit.nginx.org\/configuration\/?platform=docker))\n\nRELEVANTE PRAXISF\u00c4LLE\n\nErster Praxisfall: Klassische CMS-Website mit WordPress, Joomla oder Drupal. Unit konnte solche PHP-Anwendungen mit Front-Controller-Routing betreiben; die offizielle WordPress-Anleitung zeigt eine Route, die PHP-Dateien und \/wp-admin\/ zur PHP-Anwendung leitet. F\u00fcr eine Neuinstallation \u00fcberwiegt dennoch der Lebenszyklus-Nachteil. Der Artikel sollte daher formulieren: Als Bestandsumgebung kann Unit analysiert und abgesichert werden; als Standardplattform f\u00fcr neues WordPress-Hosting ist NGINX mit einem gepflegten PHP-FPM-Stack die risiko\u00e4rmere Wahl. ([unit.nginx.org](https:\/\/unit.nginx.org\/howto\/wordpress\/))\n\nZweiter Praxisfall: Mehrere kleine Anwendungen auf einem Server. Unit konnte unterschiedliche Anwendungen, Listener und Nutzerkontexte in einer zentralen JSON-Konfiguration b\u00fcndeln. Das war attraktiv, wenn PHP, Python, Ruby oder Node.js in einem einheitlichen Application Server betrieben werden sollten. F\u00fcr ausschlie\u00dflich PHP-basierte Hosting-Angebote ist dieser Mehrsprachenvorteil jedoch kein automatischer Gewinn; er rechtfertigt nicht allein den Wechsel von einem etablierten PHP-FPM-Betriebsmodell. ([unit.nginx.org](https:\/\/unit.nginx.org\/?utm_source=openai))\n\nDritter Praxisfall: Containerisierte, fest eingefrorene Bestandsanwendung. Hier kann Unit 1.35.0 technisch weiterlaufen, sofern die gesamte Lieferkette dokumentiert ist: exakter Unit-Tag, PHP-Version, Sprachmodul, Image-Basis, Konfiguration und Migrationspfad. Das ist eine Betriebsentscheidung mit bewusst akzeptiertem Wartungsrisiko, keine Empfehlung, Sicherheitspatches zu ignorieren. Die letzte dokumentierte Unit-Version erg\u00e4nzt PHP-8.5-Kompatibilit\u00e4t, w\u00e4hrend PHP 8.5 selbst bis zum 31. Dezember 2029 Sicherheitsunterst\u00fctzung erhalten soll. Daraus folgt aber nicht, dass auch das archivierte Unit-Modul bis dahin gepflegt wird. ([github.com](https:\/\/github.com\/nginx\/unit\/blob\/master\/CHANGES?utm_source=openai))\n\nVIERTER PRAXISFALL: NGINX VOR UNIT\n\nUnit l\u00e4sst sich hinter NGINX betreiben. Die Unit-Dokumentation nennt NGINX vor Unit ausdr\u00fccklich als Option, etwa um den Control Socket abzusichern. Dies kann bei existierenden Installationen sinnvoll sein, beseitigt aber nicht den fehlenden Wartungsstatus von Unit. Au\u00dferdem erh\u00f6ht die Kombination die Zahl der zu betreibenden Komponenten, statt die Architektur zu vereinfachen. ([unit.nginx.org](https:\/\/unit.nginx.org\/howto\/integration\/?utm_source=openai))\n\nENTSCHEIDUNGSALTERNATIVEN\n\nDie Vergleichstabelle des sp\u00e4teren Artikels sollte diese Spalten enthalten: Architektur, PHP-Ausf\u00fchrung, Prozessmanagement, Konfigurationsmodell, Mehrsprachenf\u00e4higkeit, Update- und Wartungsstatus, geeignete Einsatzf\u00e4lle, zentrale Einschr\u00e4nkungen.\n\nZeilen sollten mindestens sein:\n\nNGINX plus PHP-FPM: Getrennte Zust\u00e4ndigkeiten; NGINX f\u00fcr HTTP und Reverse Proxy, PHP-FPM f\u00fcr PHP-Prozesse. Geeignet als Standard f\u00fcr neues PHP-Hosting, insbesondere wenn aktuelle PHP-Versionen, bekannte Betriebsabl\u00e4ufe und breite Tool-Kompatibilit\u00e4t z\u00e4hlen. PHP-FPM bietet dokumentierte static-, dynamic- und ondemand-Modi. ([php.net](https:\/\/www.php.net\/manual\/en\/install.fpm.configuration.php))\n\nNGINX Unit 1.35.0: Integrierter Application Server f\u00fcr mehrere Laufzeiten einschlie\u00dflich PHP; JSON-Control-API; Routing und statische Dateien in derselben Plattform. Nur als Bestandssystem oder bewusst isolierte Sonderumgebung behandeln. Das Projekt ist archiviert und nicht mehr gepflegt. ([github.com](https:\/\/github.com\/nginx\/unit\/blob\/master\/CHANGES?utm_source=openai))\n\nApache HTTP Server mit PHP-FPM: Sinnvoll als Alternative, wenn Apache-spezifische Anforderungen bestehen. Der geplante Artikel muss hierzu keine Leistungsbehauptungen ohne reproduzierbare Lasttests machen.\n\nTYPOLOGIE H\u00c4UFIGER FEHLER\n\nDer wichtigste Fehler w\u00e4re, Unit nur wegen geringerer Komponentenanzahl als \u201ebesser\u201c zu bezeichnen. Weniger Dienste bedeuten nicht automatisch weniger Betriebsrisiko.\n\nZweitens darf die Unit-Control-API nicht wie ein beliebiger \u00f6ffentlich erreichbarer HTTP-Endpunkt behandelt werden. Sie wird \u00fcber einen Socket angesprochen; die Dokumentation verwendet aus Sicherheitsgr\u00fcnden Unix-Domain-Sockets. Konfigurationsrechte sind damit ein hochsensibler administrativer Zugriff. ([unit.nginx.org](https:\/\/unit.nginx.org\/controlapi\/))\n\nDrittens sollten keine unvalidierten Prozesswerte \u00fcbernommen werden. Sowohl Unit max und spare als auch PHP-FPM pm.max_children m\u00fcssen aus verf\u00fcgbarem Arbeitsspeicher, realem Speicherbedarf der PHP-Worker, Nebenprozessen und gew\u00fcnschter Parallelit\u00e4t abgeleitet werden. Ein Rechenbeispiel kann dies verdeutlichen, muss aber klar als Modell gekennzeichnet werden: Verf\u00fcgbarer RAM f\u00fcr PHP geteilt durch konservativ angesetzten Speicherbedarf je Worker ergibt nur eine Obergrenze, keine Messung und keine fertige Konfiguration.\n\nViertens: Unit-Dokumentation und Versionen nicht vermischen. Die Website referenziert vielfach 1.34.2, w\u00e4hrend die letzte stabile Version 1.35.0 ver\u00f6ffentlicht wurde. Aussagen \u00fcber PHP 8.5 d\u00fcrfen nur auf den Release-Tag 1.35.0 gest\u00fctzt werden. ([unit.nginx.org](https:\/\/unit.nginx.org\/installation\/?utm_source=openai))\n\nSICHERE BEISPIELE F\u00dcR DEN SP\u00c4TEREN ARTIKEL\n\nEin Konfigurationsbeispiel sollte ausschlie\u00dflich eine lokale Demo-Anwendung darstellen, etwa mit einem nicht produktiven Pfad wie \/srv\/example-app\/public und einem lokalen Listener 127.0.0.1:8080. Es sollte als Dateikonfiguration bezeichnet werden und zeigen: Listener, Route f\u00fcr statische Dateien, \u00dcbergabe nicht vorhandener Dateien an eine PHP-Anwendung, type php, root und script index.php. Keine echten Domains, Zertifikate, Datenbankzug\u00e4nge, Nutzerkennungen oder \u00f6ffentlichen IP-Adressen verwenden.\n\nEin zweites Beispiel kann die Prozessmodelle vergleichen: PHP-FPM-Pool-Dateikonfiguration mit pm = dynamic und Unit-Dateikonfiguration mit processes.max, processes.spare sowie idle_timeout. Konkrete Zahlen d\u00fcrfen nur Platzhalter sein und m\u00fcssen als bewusst gew\u00e4hlte Demonstrationswerte gekennzeichnet werden.\n\nFAZIT F\u00dcR DIE REDAKTION\n\nDer sp\u00e4tere Fachartikel sollte keine Leistungswette \u201eNGINX Unit gegen PHP-FPM\u201c aufmachen. Ohne kontrollierte, ver\u00f6ffentlichte Messmethodik w\u00e4ren Aussagen zu Geschwindigkeit, Speicherverbrauch oder Skalierung nicht belastbar. Seine st\u00e4rkste Aussage ist architektonisch und betrieblich: Unit war eine technisch eigenst\u00e4ndige, funktionsreiche Alternative, ist am 30. September 2026 wegen des archivierten Projektstatus aber keine allgemeine Empfehlung f\u00fcr neue PHP-Hosting-Plattformen. F\u00fcr neue Systeme bleibt ein gepflegter Webserver-PHP-FPM-Aufbau die nachvollziehbarere Standardentscheidung; Unit ist prim\u00e4r als Migrations-, Bestands- und Risikoanalyse-Thema relevant.","_wh_make_sources":{"S1":{"id":"S1","url":"https:\/\/github.com\/nginx\/unit\/releases?utm_source=openai","title":"\u0420\u0435\u043b\u0438\u0437\u044b \u00b7 nginx\/unit \u00b7 GitHub"},"S2":{"id":"S2","url":"https:\/\/github.com\/nginx\/unit\/releases","title":"\u0420\u0435\u043b\u0438\u0437\u044b \u00b7 nginx\/unit \u00b7 GitHub"},"S3":{"id":"S3","url":"https:\/\/unit.nginx.org\/howto\/source\/?utm_source=openai","title":"\u0421\u0431\u043e\u0440\u043a\u0430 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u2014 \u043c\u043e\u0434\u0443\u043b\u044c NGINX"},"S4":{"id":"S4","url":"https:\/\/unit.nginx.org\/installation\/?utm_source=openai","title":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u2014 \u043c\u043e\u0434\u0443\u043b\u044c NGINX"},"S5":{"id":"S5","url":"https:\/\/www.php.net\/manual\/en\/install.fpm.configuration.php","title":"PHP: \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u2014 \u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e"},"S6":{"id":"S6","url":"https:\/\/unit.nginx.org\/configuration\/?platform=docker","title":"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u2014 \u043c\u043e\u0434\u0443\u043b\u044c NGINX"},"S7":{"id":"S7","url":"https:\/\/unit.nginx.org\/howto\/wordpress\/","title":"WordPress \u2014 \u043c\u043e\u0434\u0443\u043b\u044c NGINX"},"S8":{"id":"S8","url":"https:\/\/unit.nginx.org\/?utm_source=openai","title":"\u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u2014 NGINX Unit"},"S9":{"id":"S9","url":"https:\/\/github.com\/nginx\/unit\/blob\/master\/CHANGES?utm_source=openai","title":"unit\/CHANGES \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 master \u00b7 nginx\/unit \u00b7 GitHub"},"S10":{"id":"S10","url":"https:\/\/unit.nginx.org\/howto\/integration\/?utm_source=openai","title":"\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 NGINX \u2014 \u043c\u043e\u0434\u0443\u043b\u044c NGINX"},"S11":{"id":"S11","url":"https:\/\/unit.nginx.org\/controlapi\/","title":"Control API \u2014 \u043c\u043e\u0434\u0443\u043b\u044c NGINX"}},"_wh_make_usage":{"research":{"input_tokens":31107,"output_tokens":3780,"response_id":"resp_0668238cd11885a3016abd6e046ab487d29eae321f6f72d2dc","model":"gpt-5.6-terra","search_calls":3},"plan_9b5df61c8ca6cf7a0a7723c4c709ee5a":{"input_tokens":5941,"output_tokens":1769,"response_id":"resp_0f6803d8a99ebdf5016abd6e4c14d487d2bb9490d0657987ae","model":"gpt-5.6-terra","search_calls":0},"part1_a2727bf1dad55545b19defa65ccb552e":{"input_tokens":9007,"output_tokens":1629,"response_id":"resp_07b9be143b58c0bd016abd6e6b0c9087d284085ad05cbbd87e","model":"gpt-5.6-terra","search_calls":0},"part2_2b98c26cdd7c4974f1d37f6f056b22ff":{"input_tokens":9033,"output_tokens":3363,"response_id":"resp_016a608dfdafb49c016abd6e82ffd087d296df3ab2446ab787","model":"gpt-5.6-terra","search_calls":0},"part3_1961b57c48853e7fb6a0014e2beaf421":{"input_tokens":9063,"output_tokens":2206,"response_id":"resp_041963ed0f99a176016abd6eb1170887d2b08093b025a500c8","model":"gpt-5.6-terra","search_calls":0},"package_d87a1cf934f161a9a60aabc2de826584":{"input_tokens":14501,"output_tokens":1894,"response_id":"resp_0aeacaae277992c9016abd6ed24e5087d2bb5d082a34ce0dba","model":"gpt-5.6-terra","search_calls":0},"review_e6a2141f6a66002764db43b9978732aa":{"input_tokens":59766,"output_tokens":1072,"response_id":"resp_041bc0d24eac138c016abd6ef4803c87d28feee26ddf334ab0","model":"gpt-5.6-sol","search_calls":5},"image_hero":{"input_tokens":185,"output_tokens":1372,"response_id":"","model":"gpt-image-2.5-flare","search_calls":0},"image_detail1":{"input_tokens":180,"output_tokens":1372,"response_id":"","model":"gpt-image-2.5-flare","search_calls":0},"image_detail2":{"input_tokens":189,"output_tokens":1372,"response_id":"","model":"gpt-image-2.5-flare","search_calls":0}},"_wh_make_last_error":"","_wh_make_write_intent":{"before":{"content_md5":"10f95044abc48ad27b1e22aa544e1164","title":"NGINX Unit \u043a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 PHP-FPM? \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0440\u0438\u0441\u043a\u0438 \u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f","slug":"nginx-unit-%d0%b0%d0%bb%d1%8c%d1%82%d0%b5%d1%80%d0%bd%d0%b0%d1%82%d0%b8%d0%b2%d0%b0-php-fpm","excerpt":"NGINX Unit \u043c\u043e\u0433 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c PHP, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435, \u0435\u0433\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 PHP. \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a.","status":"draft","featured_media":0},"expected":{"content_md5":"29f8d165254a6ed9ac6461aeafd05010","title":"NGINX Unit \u043a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 PHP-FPM? \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0440\u0438\u0441\u043a\u0438 \u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f","slug":"nginx-unit-%d0%b0%d0%bb%d1%8c%d1%82%d0%b5%d1%80%d0%bd%d0%b0%d1%82%d0%b8%d0%b2%d0%b0-php-fpm","excerpt":"NGINX Unit \u043c\u043e\u0433 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c PHP, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435, \u0435\u0433\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 PHP. \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a.","status":"draft","featured_media":21780},"at":"2026-09-30T20:21:34+00:00"},"_wh_make_design_version":"2.1.16","rank_math_title":"NGINX Unit oder PHP-FPM im Hosting?","_wh_make_doc":{"title":"NGINX Unit \u043a\u0430\u043a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 PHP-FPM? \u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0440\u0438\u0441\u043a\u0438 \u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f","slug":"nginx-unit-%d0%b0%d0%bb%d1%8c%d1%82%d0%b5%d1%80%d0%bd%d0%b0%d1%82%d0%b8%d0%b2%d0%b0-php-fpm","excerpt":"NGINX Unit \u043c\u043e\u0433 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c PHP, \u043e\u0434\u043d\u0430\u043a\u043e \u0438\u0437-\u0437\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435, \u0435\u0433\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u0449\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 PHP. \u0412 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0433\u0438 \u0434\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a.","seo":{"title":"NGINX Unit \u0438\u043b\u0438 PHP-FPM \u043d\u0430 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0435?","description":"NGINX Unit \u043c\u043e\u0433 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c PHP, \u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u043d \u0432\u044b\u0432\u0435\u0434\u0435\u043d \u0438\u0437 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438. \u0412\u043e\u0442 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043e\u0446\u0435\u043d\u0438\u0442\u044c Unit \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 PHP-FPM \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u0440\u0435\u0434.","focus_keyword":"NGINX Unit als Alternative zu PHP-FPM"},"lead":[{"kind":"text","text":"NGINX Unit war technisch mehr als PHP-FPM: Der Application Server konnte HTTP, Routing, statische Dateien und PHP-Ausf\u00fchrung verbinden. F\u00fcr neue PHP-Hosting-Plattformen ist Unit dennoch keine allgemeine Alternative, denn das Projekt ist seit Oktober 2025 archiviert und wird nicht mehr gepflegt. ","ref":""},{"kind":"strong","text":"NGINX mit PHP-FPM","ref":""},{"kind":"text","text":" bleibt deshalb f\u00fcr neue Systeme die besser nachvollziehbare Standardwahl. Unit ist vor allem ein Thema f\u00fcr dokumentierte Bestandsinstallationen, Risikoanalysen und geplante Migrationen.","ref":""},{"kind":"citation","text":"","ref":"S1"}],"images":{"hero":{"prompt":"Fotorealistisches redaktionelles Symbolbild, weite r\u00e4umliche Szene in einem hellen Webagentur-B\u00fcro bei Tageslicht: Eine Systemadministratorin und ein Entwickler besprechen entspannt an einem einzelnen Laptop auf einem aufger\u00e4umten Schreibtisch die Umstellung einer PHP-Anwendung; beide Gesichter sichtbar, freundliches nat\u00fcrliches L\u00e4cheln. Auf dem Bildschirm nur eine unscharfe, nicht lesbare neutrale Anwendungsansicht ohne Texte, Logos oder Diagramme. Im Hintergrund Fenster, Pflanzen, helle Holzoberfl\u00e4chen und dezente farbige Arbeitsmaterialien, glaubw\u00fcrdige heutige Technik, nat\u00fcrliche Hautporen und Materialien, klare ausgewogene Farben.","alt":"Zwei Fachleute besprechen in einem hellen B\u00fcro die Betriebsarchitektur einer PHP-Anwendung.","caption":"KI-generiertes Symbolbild: Die Wahl zwischen Application Server und PHP-FPM ist eine Betriebsentscheidung.","filename_base":"nginx-unit-php-hosting-architektur","section_id":"","after_block":0},"detail1":{"prompt":"Fotorealistisches redaktionelles Symbolbild, mittlere Halbnahaufnahme in einem sauberen Technik-Stagingraum: Zwei IT-Fachleute pr\u00fcfen gemeinsam eine kompakte Serverplattform auf einem Arbeitstisch f\u00fcr eine bestehende PHP-Anwendung, eine Person zeigt auf eine neutrale Konfigurations\u00fcbersicht auf einem kleinen stehenden Monitor ohne lesbare Schrift. Sichtbare Gesichter und freundliche fachliche Interaktion, keine Logos, keine erfundenen Anschl\u00fcsse, keine Kabelmetaphern. Metallgeh\u00e4use, Werkzeugschublade und helle wei\u00dfe Raumw\u00e4nde, sachliches Vormittagslicht, nat\u00fcrliche Farben und realistische Oberfl\u00e4chen.","alt":"Zwei IT-Fachleute pr\u00fcfen im Stagingraum gemeinsam eine Bestandsplattform f\u00fcr PHP-Anwendungen.","caption":"KI-generiertes Symbolbild: Bestandsumgebungen ben\u00f6tigen eine dokumentierte Pr\u00fcfung von Versionen, Modulen und Migrationspfaden.","filename_base":"nginx-unit-bestand-migration-pruefung","section_id":"bestandsbetrieb-und-absicherung","after_block":3},"detail2":{"prompt":"Fotorealistisches redaktionelles Symbolbild, enge Makroaufnahme in einem ruhigen Rechenzentrums-Arbeitsbereich: Detail eines modernen kompakten Servergeh\u00e4uses mit realistischen Luftschlitzen, unbeschrifteten Statusanzeigen und sauberer Metalloberfl\u00e4che; im Hintergrund weich erkennbar ein Techniker mit sichtbarem freundlichem Gesicht, der den Zustand kontrolliert. Kein Rackgang, keine sichtbaren Kabelb\u00fcndel, keine Logos, keine lesbaren Texte oder Bildschirme. Pr\u00e4zise Sch\u00e4rfe auf Material und Anzeigen, glaubw\u00fcrdiges neutrales Arbeitslicht, k\u00fchle Silber- und Wei\u00dft\u00f6ne mit einzelnen dezenten gr\u00fcnen Statuslichtern.","alt":"Nahaufnahme eines kompakten Servers bei der Kontrolle einer bestehenden PHP-Hosting-Umgebung.","caption":"KI-generiertes Symbolbild: Prozessgrenzen und Timeouts ersetzen keine Ursachenanalyse h\u00e4ngender Anwendungen.","filename_base":"nginx-unit-prozesse-timeouts-serverdetail","section_id":"timeouts-logs-und-fehlersuche","after_block":2}},"chart":null,"social":{"facebook":"NGINX Unit konnte PHP, Routing und HTTP in einer Plattform b\u00fcndeln. F\u00fcr neue PHP-Hosting-Umgebungen \u00fcberwiegt wegen des archivierten Projektstatus dennoch PHP-FPM als Standard. Der Artikel ordnet Architektur, Bestandsrisiken und Migration ein.","instagram":"NGINX Unit oder PHP-FPM? Entscheidend ist nicht nur die Zahl der Komponenten, sondern auch Wartbarkeit, Modulbindung und Migrationsf\u00e4higkeit. Warum Unit vor allem ein Bestandsthema ist.","tiktok":"NGINX Unit war mehr als PHP-FPM \u2013 aber seit 2025 archiviert. F\u00fcr neue PHP-Stacks ist NGINX plus PHP-FPM meist die nachvollziehbarere Wahl. Warum, erkl\u00e4rt der Vergleich.","youtube":"NGINX Unit vs. PHP-FPM: Architektur, Prozessmodelle, archivierter Projektstatus und ein sinnvoller Migrationspfad f\u00fcr bestehende PHP-Anwendungen.","threads":"Weniger Komponenten bedeuten nicht automatisch weniger Betriebsrisiko. NGINX Unit konnte PHP direkt ausf\u00fchren, ist als archiviertes Projekt aber keine allgemeine Empfehlung f\u00fcr neue PHP-Hosting-Plattformen.","x":"NGINX Unit konnte HTTP, Routing, statische Dateien und PHP-Ausf\u00fchrung b\u00fcndeln. F\u00fcr neue PHP-Hosting-Systeme ist das archivierte Projekt dennoch keine allgemeine Empfehlung. Warum NGINX + PHP-FPM meist der klarere Standard bleibt."},"avatar_script":"NGINX Unit war kein PHP-FPM mit anderem Namen. Unit b\u00fcndelte Webserver-Aufgaben, Routing und die PHP-Laufzeit in einer Plattform, w\u00e4hrend PHP-FPM als FastCGI-Prozessmanager hinter einem Webserver arbeitet. Das ist architektonisch interessant, entscheidet aber nicht allein \u00fcber die Eignung im Hosting. Der zentrale Punkt ist der Projektstatus: Unit ist archiviert und wird nicht mehr gepflegt. F\u00fcr neue PHP-Umgebungen ist ein gepflegter Aufbau mit Webserver und PHP-FPM deshalb in der Regel die nachvollziehbarere Wahl. L\u00e4uft Unit bereits im Bestand, geht es um Inventarisierung: Version, PHP-Modul, Konfiguration, Patchf\u00e4higkeit und einen getesteten Migrationspfad. Prozessgrenzen und Timeouts helfen beim Betrieb, ersetzen aber keine Ursachenanalyse.","version_note":"Recherche-Stichtag: 30. September 2026. NGINX Unit ist seit Oktober 2025 archiviert. Die weiterhin verf\u00fcgbare Installationsdokumentation referenziert teils 1.34.2; Aussagen zur PHP-8.5-Kompatibilit\u00e4t beziehen sich ausschlie\u00dflich auf den stabilen Release-Tag 1.35.0.","sections":[{"id":"projektstatus-und-kurzurteil","heading":"Archivierter Status und klares Kurzurteil","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Stand 30. September 2026 lautet das klare Urteil: NGINX Unit konnte PHP-Anwendungen direkt ausf\u00fchren und dabei HTTP-Verbindungen annehmen, TLS terminieren, statische Dateien ausliefern sowie Anfragen routen. Damit ging der Funktionsumfang deutlich \u00fcber PHP-FPM hinaus. F\u00fcr neue produktive PHP-Hosting-Plattformen ist Unit dennoch keine allgemeine Empfehlung, weil das offizielle Projekt seit Oktober 2025 archiviert und nicht mehr gepflegt wird.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Das bedeutet nicht, dass eine vorhandene Unit-Installation sofort funktionsunf\u00e4hig w\u00e4re. Sie kann weiterhin eine Anwendung bedienen, sofern ihre Abh\u00e4ngigkeiten, Sicherheitsvorkehrungen und ein Migrationsweg dokumentiert sind. Eine Neuinvestition muss aber anders bewertet werden: Ohne fortlaufende Projektpflege steigen Risiken bei Sicherheitsl\u00fccken, Paketverf\u00fcgbarkeit, neuen Betriebssystemversionen und k\u00fcnftigen PHP-Kompatibilit\u00e4ten.","ref":""},{"kind":"citation","text":"","ref":"S1"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei Versionsangaben ist eine saubere Trennung wichtig. Die weiterhin verf\u00fcgbare Installationsdokumentation nennt vielfach Unit 1.34.2, w\u00e4hrend der stabile Release-Tag 1.35.0 ver\u00f6ffentlicht wurde. Der Release belegt unter anderem PHP-8.5-Kompatibilit\u00e4t; daraus folgt jedoch keine fortgesetzte Wartung. Der Entwicklungszweig ","ref":""},{"kind":"code","text":"master","ref":""},{"kind":"text","text":" ist wegen des archivierten Status keine ma\u00dfgebliche Produktversion f\u00fcr Betriebsentscheidungen.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S4"}]}]},{"id":"architektur-und-php-ausfuehrung","heading":"NGINX, PHP-FPM und Unit unterscheiden","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr eine belastbare Entscheidung m\u00fcssen die Komponenten getrennt betrachtet werden. ","ref":""},{"kind":"strong","text":"NGINX","ref":""},{"kind":"text","text":" ist Webserver und Reverse Proxy: Er nimmt HTTP-Anfragen entgegen, kann statische Inhalte ausliefern und leitet dynamische Anfragen weiter. PHP-FPM ist dagegen ein FastCGI Process Manager. Er stellt PHP-Worker bereit, verarbeitet aber nicht selbst die typische Webserver-Aufgabe der HTTP-Annahme und des Routings.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Im klassischen Aufbau erreicht eine Anfrage zun\u00e4chst NGINX. Handelt es sich um eine statische Datei, kann NGINX sie unmittelbar ausliefern. F\u00fcr ein PHP-Skript \u00fcbergibt NGINX die erforderlichen FastCGI-Parameter an einen PHP-FPM-Pool; ein freier Worker f\u00fchrt den Code aus und liefert die Antwort \u00fcber NGINX zur\u00fcck. Poolgr\u00f6\u00dfe und Prozessmodus werden bei PHP-FPM in Konfigurationsdateien im php.ini-Format gesteuert.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Unit war demgegen\u00fcber ein ","ref":""},{"kind":"strong","text":"Application Server","ref":""},{"kind":"text","text":" mit Listenern, Routen, statischer Auslieferung und Sprachlaufzeiten in einem JSON-Konfigurationsmodell. Eine PHP-Anwendung wird dort als Anwendungstyp eingebunden; Unit kann somit den Request-Weg innerhalb derselben Plattform von der Annahme bis zur PHP-Ausf\u00fchrung abbilden. Das reduziert nicht automatisch das Betriebsrisiko, ver\u00e4ndert aber die Zust\u00e4ndigkeitsgrenzen.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Unit ist deshalb nicht \u201eNGINX mit eingebettetem PHP-FPM\u201c. Beim Bau des PHP-Moduls entsteht ein eigenes SAPI-Modul, das mit der PHP-Embed-Bibliothek verkn\u00fcpft ist. Bei Analyse und Migration m\u00fcssen Teams folglich nicht nur FastCGI-Einstellungen \u00fcbertragen, sondern Routing, Anwendungsdefinitionen, Modulbindung und Diagnosewege neu zuordnen. Fehler lassen sich nicht pauschal einem vorgeschalteten Webserver oder einem getrennten FPM-Pool zuschreiben.","ref":""},{"kind":"citation","text":"","ref":"S3"}]}]},{"id":"module-versionen-und-konfiguration","heading":"PHP-Module, Versionen und Konfigurationsgrenzen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr PHP ben\u00f6tigt eine Unit-Installation neben dem Kern ein passendes Sprachmodul. Dieses Modul ist an die verwendete PHP-Version und die Unit-Installation gebunden. Waren keine geeigneten Pakete f\u00fcr Betriebssystem und PHP-Version verf\u00fcgbar, beschrieb die Dokumentation den Eigenbau mit einer PHP-Installation, die die Embed-SAPI bereitstellt. Das erh\u00f6ht den Aufwand f\u00fcr Updates, reproduzierbare Builds und die Fehleranalyse erheblich.","ref":""},{"kind":"citation","text":"","ref":"S3"},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Auch die Konfiguration folgt unterschiedlichen Modellen. Unit b\u00fcndelt Listener, Routen und Anwendungen als JSON-Daten \u00fcber ihre Konfigurationsschnittstelle. PHP-FPM verwaltet Pools dagegen in Dateien im php.ini-Format. Diese Differenz ist mehr als Syntax: In einem FPM-Stack liegen Webserver-Regeln und PHP-Pooldefinitionen getrennt, w\u00e4hrend Unit beides enger in einer Plattform verbindet. Migrationskonzepte m\u00fcssen diese Struktur ber\u00fccksichtigen.","ref":""},{"kind":"citation","text":"","ref":"S5"},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr PHP-Direktiven unterscheidet Unit die Bereiche ","ref":""},{"kind":"strong","text":"admin","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"strong","text":"user","ref":""},{"kind":"text","text":". Admin-Optionen entsprechen PHP_INI_SYSTEM und sind durch die Anwendung nicht zur Laufzeit ver\u00e4nderbar; User-Optionen entsprechen PHP_INI_USER. Unit erweitert damit aber nicht den zul\u00e4ssigen Bereich einer PHP-Direktive. Ob eine Einstellung auf diesem Weg gesetzt oder durch Anwendungscode ge\u00e4ndert werden darf, bestimmt weiterhin ihr PHP-Konfigurationsmodus.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Warnung: Die in Unit 1.35.0 ausgewiesene PHP-8.5-Kompatibilit\u00e4t belegt nur die Unterst\u00fctzung dieses Stands im letzten stabilen Release. Sie ist kein Versprechen f\u00fcr k\u00fcnftige Sicherheitskorrekturen oder Anpassungen des Unit-PHP-Moduls. F\u00fcr Bestandsbetrieb sollten daher exakter Unit-Tag, PHP-Version, Modulherkunft und ein getesteter Abl\u00f6sepfad als zusammenh\u00e4ngende Abh\u00e4ngigkeit dokumentiert werden.","ref":""},{"kind":"citation","text":"","ref":"S2"}]}]},{"id":"php-routing-mit-unit","heading":"PHP-Routing und Front Controller konfigurieren","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Eine Unit-Konfiguration verbindet einen Listener mit Routen und einer Anwendung. F\u00fcr eine lokale Demo kann der Listener ausschlie\u00dflich auf ","ref":""},{"kind":"code","text":"127.0.0.1:8080","ref":""},{"kind":"text","text":" lauschen. Eine Route versucht zun\u00e4chst, die angeforderte Datei unter ","ref":""},{"kind":"code","text":"\/srv\/example-app\/public","ref":""},{"kind":"text","text":" auszuliefern; existiert sie nicht, \u00fcbergibt der Fallback die Anfrage an die PHP-Anwendung. So bleiben \u00f6ffentliche Dateien und die Anwendungsausf\u00fchrung als getrennte Schritte nachvollziehbar.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"In der Anwendung legt ","ref":""},{"kind":"code","text":"root","ref":""},{"kind":"text","text":" das Dokumentenverzeichnis fest, w\u00e4hrend ","ref":""},{"kind":"code","text":"type: php","ref":""},{"kind":"text","text":" die PHP-Laufzeit ausw\u00e4hlt. Mit ","ref":""},{"kind":"code","text":"script: index.php","ref":""},{"kind":"text","text":" wird jede an die Anwendung weitergereichte Anfrage an dieses Skript geleitet. Das entspricht dem ","ref":""},{"kind":"strong","text":"Front Controller","ref":""},{"kind":"text","text":" vieler PHP-Frameworks: Die Anwendung wertet den urspr\u00fcnglichen Pfad selbst aus und entscheidet etwa \u00fcber Controller oder Fehlerseite.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ohne die Einstellung ","ref":""},{"kind":"code","text":"script","ref":""},{"kind":"text","text":" verarbeitet Unit URI-basierte Skriptpfade. Das kann f\u00fcr \u00e4ltere Anwendungen passend sein, deren PHP-Dateien direkt aufgerufen werden sollen, verlangt aber eine sorgf\u00e4ltige Begrenzung der erreichbaren Pfade. ","ref":""},{"kind":"code","text":"targets","ref":""},{"kind":"text","text":" erlauben zus\u00e4tzlich Teilbereiche mit abweichendem root-, script- oder index-Verhalten. Sie sind daher kein Ersatz f\u00fcr Routing, sondern eine M\u00f6glichkeit, mehrere Anwendungsregeln gezielt zu definieren.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Das folgende Beispiel ist eine JSON-Dateikonfiguration f\u00fcr eine lokale Demo, nicht f\u00fcr einen \u00f6ffentlichen Dienst. Sie enth\u00e4lt weder Domainnamen noch TLS- oder Zugangsdaten. Vor einer \u00dcbernahme m\u00fcssen Dateirechte, der tats\u00e4chlich installierte PHP-Support und die f\u00fcr Unit vorgesehene Methode zum Einspielen der Konfiguration gepr\u00fcft werden.","ref":""}]},{"type":"code","language":"json","code":"{\n  \"listeners\": {\n    \"127.0.0.1:8080\": {\n      \"pass\": \"routes\/example\"\n    }\n  },\n  \"routes\": {\n    \"example\": [\n      {\n        \"action\": {\n          \"share\": \"\/srv\/example-app\/public$uri\",\n          \"fallback\": {\n            \"pass\": \"applications\/example-php\"\n          }\n        }\n      }\n    ]\n  },\n  \"applications\": {\n    \"example-php\": {\n      \"type\": \"php\",\n      \"root\": \"\/srv\/example-app\/public\",\n      \"script\": \"index.php\"\n    }\n  }\n}","source_ids":["S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Reihenfolge ist entscheidend: Der ","ref":""},{"kind":"strong","text":"statische Auslieferung","ref":""},{"kind":"text","text":" dienende share-Schritt wird vor dem Fallback versucht. Nicht vorhandene Dateien landen bei ","ref":""},{"kind":"code","text":"index.php","ref":""},{"kind":"text","text":"; dadurch funktionieren auch sprechende URLs wie ","ref":""},{"kind":"code","text":"\/artikel\/beispiel","ref":""},{"kind":"text","text":" ohne eine gleichnamige Datei. Ob zus\u00e4tzliche Regeln f\u00fcr Upload-Verzeichnisse, Verwaltungsbereiche oder direkt erreichbare PHP-Dateien n\u00f6tig sind, ergibt sich aus der jeweiligen Anwendung und sollte nicht pauschal aus dieser Demo abgeleitet werden.","ref":""},{"kind":"citation","text":"","ref":"S6"}]}]},{"id":"prozessmodelle-und-ram-budget","heading":"Prozessmodelle und RAM-Budget vergleichen","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"PHP-FPM steuert Worker je Pool \u00fcber die Modi ","ref":""},{"kind":"code","text":"static","ref":""},{"kind":"text","text":", ","ref":""},{"kind":"code","text":"dynamic","ref":""},{"kind":"text","text":" und ","ref":""},{"kind":"code","text":"ondemand","ref":""},{"kind":"text","text":". Bei Unit wird die Prozesszahl dagegen innerhalb der Anwendung modelliert. Eine dynamische Unit-Konfiguration begrenzt mit ","ref":""},{"kind":"code","text":"processes.max","ref":""},{"kind":"text","text":" die Gesamtzahl und h\u00e4lt mit ","ref":""},{"kind":"code","text":"processes.spare","ref":""},{"kind":"text","text":" Leerlaufprozesse vor; ","ref":""},{"kind":"code","text":"idle_timeout","ref":""},{"kind":"text","text":" r\u00e4umt \u00fcberz\u00e4hlige inaktive Prozesse ab.","ref":""},{"kind":"citation","text":"","ref":"S5"},{"kind":"citation","text":"","ref":"S6"}]},{"type":"table","caption":"Prozesssteuerung: \u00e4hnliche Ziele, unterschiedliche Konfigurationsmodelle","headers":["Mechanismus","PHP-FPM","Unit","Betriebswirkung","Grenze"],"rows":[["Feste Workerzahl","pm = static","processes mit fester Zahl","Kapazit\u00e4t bleibt vorab definiert.","Leerlauf verbraucht weiterhin Speicher."],["Dynamische Worker","pm = dynamic; Obergrenze \u00fcber pm.max_children","processes.max und processes.spare","Kapazit\u00e4t kann sich am Bedarf orientieren.","Die Obergrenze muss zum verf\u00fcgbaren RAM passen."],["Start bei Bedarf","pm = ondemand","Kein direkt gleich benannter Modus; Prozesseinstellungen bestimmen das Unit-Verhalten","Kann Leerlaufprozesse reduzieren.","Startverhalten und Lastprofil m\u00fcssen beobachtet werden."],["Abbau von Leerlauf","Pool-Parameter des gew\u00e4hlten FPM-Modus","idle_timeout","Nicht ben\u00f6tigte Prozesse k\u00f6nnen beendet werden.","Kein Ersatz f\u00fcr eine Kapazit\u00e4tsplanung."]],"source_ids":["S5","S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Begriffe sind deshalb nicht eins zu eins austauschbar. Insbesondere ist eine dokumentierte Voreinstellung kein geeigneter Wert f\u00fcr eine Website. Sowohl ","ref":""},{"kind":"code","text":"pm.max_children","ref":""},{"kind":"text","text":" als auch ","ref":""},{"kind":"code","text":"processes.max","ref":""},{"kind":"text","text":" begrenzen parallele PHP-Arbeit und k\u00f6nnen bei zu niedrigen Werten Warteschlangen erzeugen. Zu hohe Werte konkurrieren dagegen mit Betriebssystem, Datenbank, Cache und weiteren Diensten um Arbeitsspeicher.","ref":""},{"kind":"citation","text":"","ref":"S5"},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein ","ref":""},{"kind":"strong","text":"RAM-Budget","ref":""},{"kind":"text","text":" ist zun\u00e4chst nur ein Planungsmodell: Vom Gesamtspeicher werden Reserven f\u00fcr Betriebssystem, Datenbank, Cache und weitere Prozesse abgezogen. Der verbleibende Wert wird durch einen konservativ angesetzten Speicherbedarf je PHP-Worker geteilt. Beispielhaft ergeben 1.200 MiB f\u00fcr PHP geteilt durch 120 MiB je Worker rechnerisch zehn Worker; beide Werte sind bewusst gew\u00e4hlte Platzhalter, keine Messung oder Konfigurationsempfehlung.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Das Ergebnis ist eine ","ref":""},{"kind":"strong","text":"Obergrenze","ref":""},{"kind":"text","text":" und ein Startpunkt f\u00fcr Beobachtung, nicht die richtige Einstellung. Entscheidend sind reale Spitzenwerte, Warteschlangen, Antwortfehler und der Speicherbedarf unter typischer sowie hoher Last. F\u00fcr die methodische Herleitung und das Nachjustieren von ","ref":""},{"kind":"code","text":"pm.max_children","ref":""},{"kind":"text","text":" hilft der interne Beitrag ","ref":""},{"kind":"internal_link","text":"PHP-FPM-Children passend berechnen","ref":"I1"},{"kind":"text","text":". Bei Unit gilt derselbe Grundsatz, auch wenn die Parameter anders hei\u00dfen.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Warnung: Prozessgrenzen durch blo\u00dfes \u00dcbernehmen fremder Zahlen zu setzen, verschiebt Probleme h\u00e4ufig nur. Erst ein abgegrenztes Speicherbudget und wiederholtes Monitoring zeigen, ob eine Worker-Obergrenze zur Anwendung, ihren Erweiterungen und den gleichzeitig betriebenen Diensten passt.","ref":""}]}]},{"id":"vergleich-der-betriebsmodelle","heading":"Betriebsmodelle f\u00fcr PHP-Hosting bewerten","blocks":[{"type":"table","caption":"Betriebsmodelle f\u00fcr PHP-Anwendungen im Vergleich","headers":["Modell und Architektur","PHP-Ausf\u00fchrung und Prozesse","Konfiguration und Laufzeiten","Wartungsstatus","Geeigneter Einsatzfall","Zentrale Einschr\u00e4nkung"],"rows":[["NGINX plus PHP-FPM; getrennte Web- und PHP-Schicht","NGINX leitet PHP per FastCGI an FPM-Pools weiter; FPM bietet static, dynamic und ondemand.","Webserver-Konfiguration plus Pooldateien im php.ini-Format; auf PHP ausgerichtet.","PHP-FPM ist Teil der PHP-Distribution.","Standard f\u00fcr neue PHP-Hosting-Umgebungen.","Zwei Komponenten und ihre Schnittstelle m\u00fcssen betrieben werden."],["NGINX Unit 1.35.0; Application Server mit Listenern und Anwendungen","Unit f\u00fchrt PHP \u00fcber sein Sprachmodul aus und verwaltet Anwendungsprozesse.","Zentrale JSON-Konfiguration; Plattform f\u00fcr mehrere Laufzeiten.","Letzter stabiler Release-Tag 1.35.0; Projekt ist archiviert.","Bestand oder bewusst isolierte Sonderumgebung.","Keine fortlaufende Projektpflege; Modul- und Versionsbindung beachten."],["Apache HTTP Server mit PHP-FPM; Webserver und externe PHP-Schicht","Apache \u00fcbergibt PHP an FPM-Pools.","Apache-Konfiguration plus FPM-Pooldateien; auf PHP ausgerichtet.","PHP-FPM ist Teil der PHP-Distribution.","Umgebungen mit Apache-spezifischen Anforderungen.","Zwei Komponenten und ihre Schnittstelle m\u00fcssen betrieben werden."]],"source_ids":["S2","S5","S8","S9"]},{"type":"paragraph","runs":[{"kind":"text","text":"Die Tabelle ordnet Architekturen, nicht Geschwindigkeit oder Speicherverbrauch. F\u00fcr neues PHP-Hosting spricht beim NGINX-PHP-FPM-Aufbau vor allem die klare Trennung: Der Webserver behandelt HTTP, Proxying und statische Inhalte, w\u00e4hrend PHP-FPM die PHP-Worker pro Pool verwaltet. Diese Zust\u00e4ndigkeiten erleichtern es, Konfigurationen, Fehlerbilder und Updates getrennt zu beurteilen.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Unit konnte Listener, Routing, statische Dateien und Anwendungen in einer Plattform b\u00fcndeln und neben PHP weitere Laufzeiten unterst\u00fctzen. Dieser Mehrsprachenansatz kann erkl\u00e4ren, weshalb eine bestehende Umgebung Unit gew\u00e4hlt hat. F\u00fcr ausschlie\u00dflich PHP-basierte Angebote ist er jedoch kein automatischer Vorteil: Er ersetzt weder die Bewertung der ben\u00f6tigten Funktionen noch die Pr\u00fcfung, ob das Team die andere Konfigurations- und Betriebslogik dauerhaft beherrschen kann.","ref":""},{"kind":"citation","text":"","ref":"S8"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei Unit 1.35.0 muss der technische Funktionsumfang vom ","ref":""},{"kind":"strong","text":"Wartungsstatus","ref":""},{"kind":"text","text":" getrennt werden. Der Release-Tag belegt die ver\u00f6ffentlichte Version und deren \u00c4nderungen; daraus folgt keine weitere Pflege des inzwischen archivierten Projekts. F\u00fcr eine Neuentscheidung wiegt diese Grenze schwerer als eine geringere Zahl sichtbarer Komponenten. F\u00fcr eine vorhandene Installation ist sie dagegen Anlass, Abh\u00e4ngigkeiten und einen Migrationsweg zu dokumentieren.","ref":""},{"kind":"citation","text":"","ref":"S2"},{"kind":"citation","text":"","ref":"S9"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Apache mit PHP-FPM ist keine pauschal bessere oder schlechtere Alternative, sondern eine Option bei vorhandenen Apache-Anforderungen. Die Auswahl sollte sich an Wartbarkeit, verf\u00fcgbaren PHP-Versionen, Patchprozessen, Teamwissen und dem R\u00fcckfallplan orientieren. Ohne vergleichbare Lastprofile und dokumentierte Messmethodik l\u00e4sst sich aus dieser Architektur\u00fcbersicht keine belastbare Leistungsrangfolge ableiten.","ref":""}]}]},{"id":"bestandsbetrieb-und-absicherung","heading":"Unit im Bestand sicher betreiben","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Eine vorhandene Unit-Installation sollte zun\u00e4chst als Bestandssystem erfasst werden, nicht als Vorlage f\u00fcr eine neue Plattform. Entscheidend sind die tats\u00e4chlich eingesetzte Version, die angebundenen Anwendungen und ihre Abh\u00e4ngigkeiten. Dass Unit weiterhin technisch ausf\u00fchrbar ist, \u00e4ndert nichts daran, dass das Projekt archiviert wurde; Betrieb und Abl\u00f6sung m\u00fcssen daher gemeinsam geplant werden.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Bei WordPress, Joomla oder Drupal ist der ","ref":""},{"kind":"strong","text":"Front Controller","ref":""},{"kind":"text","text":" der zentrale Punkt: Nicht als Datei vorhandene Pfade m\u00fcssen an die zentrale PHP-Einstiegsdatei gehen, w\u00e4hrend vorhandene Dateien direkt ausgeliefert werden k\u00f6nnen. Die WordPress-Anleitung f\u00fcr Unit zeigt dieses Routing-Prinzip einschlie\u00dflich der Behandlung von PHP-Dateien und ","ref":""},{"kind":"code","text":"\/wp-admin\/","ref":""},{"kind":"text","text":". F\u00fcr ein bestehendes CMS kann das eine nachvollziehbare Konfiguration sein; f\u00fcr eine Neuinstallation folgt daraus keine Empfehlung f\u00fcr Unit.","ref":""},{"kind":"citation","text":"","ref":"S7"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Mehrere kleine Anwendungen mit PHP, Python, Ruby oder Node.js konnten unter Unit Listener, Routen und Laufzeiten in einer gemeinsamen Plattform b\u00fcndeln. Das kann erkl\u00e4ren, warum sich eine bestehende Architektur seinerzeit f\u00fcr Unit entschieden hat. Bei reinem PHP-Hosting ist diese Mehrsprachenf\u00e4higkeit jedoch kein Selbstzweck: Separate, gepflegte Komponenten k\u00f6nnen trotz zus\u00e4tzlicher Schnittstellen langfristig besser wartbar sein.","ref":""},{"kind":"citation","text":"","ref":"S8"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein eingefrorenes Container-Deployment verlangt eine besonders genaue Inventarisierung. Dokumentiere daf\u00fcr den exakten Unit-Tag, die PHP-Version, das installierte Sprachmodul, das Basisimage und die vollst\u00e4ndige Konfiguration. Erg\u00e4nze au\u00dferdem Quellen f\u00fcr Images und Pakete, den Patchprozess sowie einen getesteten Migrations- und R\u00fcckfallpfad. PHP-Kompatibilit\u00e4t eines bestimmten Unit-Releases ist dabei keine Zusage, dass das zugeh\u00f6rige Modul k\u00fcnftig Sicherheitskorrekturen erh\u00e4lt.","ref":""},{"kind":"citation","text":"","ref":"S2"}]},{"type":"paragraph","runs":[{"kind":"text","text":"NGINX kann vor Unit stehen, etwa wenn eine bestehende NGINX-Schicht erhalten bleiben soll oder Zugriffe gezielt vorgelagert werden. Die Unit-Dokumentation nennt diese Integration auch im Zusammenhang mit der Absicherung des Control Socket. Sie behebt den archivierten Status aber nicht und schafft einen weiteren Dienst mit eigener Konfiguration, Protokollierung und Updateverantwortung. Der Nutzen muss deshalb konkret gegen diesen Betriebsaufwand abgewogen werden.","ref":""},{"kind":"citation","text":"","ref":"S10"}]}]},{"id":"timeouts-logs-und-fehlersuche","heading":"Timeouts, Logs und h\u00e4ngende Prozesse","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"Prozessgrenzen sind keine Fehlerdiagnose. Mit ","ref":""},{"kind":"code","text":"limits.requests","ref":""},{"kind":"text","text":" kann Unit einen Anwendungsprozess nach einer festgelegten Zahl bearbeiteter Anfragen ersetzen. Das kann kumulierte Speicherbelegung zeitlich begrenzen, beseitigt aber weder Speicherlecks noch \u00fcbergro\u00dfe Datenstrukturen oder blockierende externe Aufrufe. Ein regelm\u00e4\u00dfiger Neustart darf daher nicht als Nachweis f\u00fcr einen stabilen Anwendungscode gelten.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Mit ","ref":""},{"kind":"code","text":"limits.timeout","ref":""},{"kind":"text","text":" beendet Unit eine Anfrage nach Ablauf der konfigurierten Zeit mit HTTP 503. Das ist eine sichtbare Schutzgrenze f\u00fcr einzelne Requests, jedoch kein vollst\u00e4ndiger Schutz gegen festgefahrene Worker: Laut Dokumentation erkennt Unit eingefrorene Prozesse nicht; sie k\u00f6nnen im Prozesspool verbleiben. Ein h\u00f6herer Timeout verschiebt dieses Problem nur, ein niedrigerer kann regul\u00e4r langsame Vorg\u00e4nge abbrechen.","ref":""},{"kind":"citation","text":"","ref":"S6"}]},{"type":"list","ordered":false,"items":["HTTP-Status, betroffene Pfade, Zeitfenster und H\u00e4ufigkeit erfassen, bevor Grenzwerte ge\u00e4ndert werden.","Zugriffs-, Fehler- und Anwendungslogs anhand von Zeitstempeln zusammenf\u00fchren; bei PHP-FPM kann ein Slowlog zus\u00e4tzliche Stack-Hinweise liefern.","CPU, Arbeitsspeicher, I\/O, Netzwerkverbindungen sowie Zustand und Anzahl der Prozesse pr\u00fcfen.","Danach Code, Datenbankabfragen, Dateisystemzugriffe und externe Dienste als m\u00f6gliche Ursache untersuchen.","Erst wenn Ursache und Lastprofil bekannt sind, Timeouts, Prozessgrenzen oder Neustartregeln gezielt anpassen."],"source_ids":["S6"]},{"type":"paragraph","runs":[{"kind":"text","text":"Ein HTTP 503 kann somit auf ein abgelaufenes Zeitlimit hinweisen, aber auch durch vorgelagerte Komponenten oder andere Fehler entstehen. Wiederkehrende lange PHP-Anfragen solltest du nicht allein \u00fcber Worker-Zahlen behandeln. Die Anleitung zum ","ref":""},{"kind":"internal_link","text":"PHP-FPM-Slowlog und zur Ursachenanalyse langsamer Requests","ref":"I3"},{"kind":"text","text":" zeigt, wie Stack-Spuren mit Request-Daten verbunden werden k\u00f6nnen; die gleiche Ursache-Wirkung-Logik ist auch bei einer Unit-Bestandsanalyse sinnvoll.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Besonders kritisch sind Symptome ohne eindeutigen Abschluss: steigende Wartezeiten, dauerhaft belegte Prozesse oder ausbleibende Logfortschritte. Dann sind Prozesszustand und Abh\u00e4ngigkeiten wichtiger als eine pauschale Timeout-Erh\u00f6hung. Pr\u00fcfe beispielsweise, ob ein PHP-Worker auf Datenbank-, DNS-, Dateisystem- oder Netzwerk-I\/O wartet. Erst die konkrete Blockade entscheidet, ob ein Code-Fix, eine Ressourcenanpassung oder ein kontrollierter Neustart angemessen ist.","ref":""}]},{"type":"callout","variant":"warning","title":"Timeouts richtig einordnen","runs":[{"kind":"text","text":"Ein Timeout begrenzt die Dauer einer Anfrage, ersetzt aber weder Monitoring noch die Analyse h\u00e4ngender Prozesse und externer Abh\u00e4ngigkeiten.","ref":""},{"kind":"citation","text":"","ref":"S6"}]}]},{"id":"entscheidung-und-migrationspfad","heading":"Entscheidung f\u00fcr neue und alte Systeme","blocks":[{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr neue PHP-Hosting-Umgebungen ist ein gepflegter Webserver mit PHP-FPM die nachvollziehbarere Standardentscheidung. PHP-FPM geh\u00f6rt zur regul\u00e4ren PHP-Distribution und stellt dokumentierte Pool- und Prozessmanager-Optionen bereit. Bei Unit verschiebt sich die Frage dagegen von der reinen Funktionsf\u00e4higkeit zur Wartbarkeit: Die Installation kann weiterlaufen, doch der archivierte Projektstatus erh\u00f6ht das Risiko einer langfristigen Abh\u00e4ngigkeit.","ref":""},{"kind":"citation","text":"","ref":"S5"}]},{"type":"paragraph","runs":[{"kind":"text","text":"F\u00fcr vorhandene Unit-Systeme beginnt eine sachliche Entscheidung mit einer Inventarisierung. Pr\u00fcfe Wartungsstatus und Patchf\u00e4higkeit von Betriebssystem, PHP und Basisimage, die Kompatibilit\u00e4t des installierten Sprachmoduls, vorhandenes Betriebswissen sowie gekoppelte Dienste. Ebenso wichtig sind exportierbare Konfigurationen, ein reproduzierbarer Rollback und ein Zielsystem, auf das sich Routing, PHP-Einstellungen und Deployments schrittweise \u00fcbertragen lassen.","ref":""},{"kind":"citation","text":"","ref":"S4"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Eine Migration ben\u00f6tigt keine erfundene allgemeing\u00fcltige Frist, aber eine priorisierte Reihenfolge. Internet-exponierte Anwendungen, nicht aktualisierbare Images, unklare Modulherkunft und gesch\u00e4ftskritische Anwendungen ohne R\u00fcckfallplan verdienen zuerst Aufmerksamkeit. Danach lassen sich Anwendungen nach Komplexit\u00e4t und Abh\u00e4ngigkeiten gruppieren. Ein Parallelbetrieb w\u00e4hrend einer kontrollierten Umstellung kann Risiken reduzieren, sofern Datenhaltung, Sessions und R\u00fcckweg vorher definiert sind.","ref":""}]},{"type":"paragraph","runs":[{"kind":"text","text":"Die ","ref":""},{"kind":"strong","text":"Control API","ref":""},{"kind":"text","text":" ist ein administrativer Zugriff und kein gew\u00f6hnlicher Endpunkt einer Website. Unit dokumentiert f\u00fcr sie einen Unix-Domain-Socket und begr\u00fcndet dessen Einsatz mit Sicherheitsaspekten. Lege restriktive Dateirechte und klar abgegrenzte administrative Zugriffe fest; eine \u00f6ffentliche Erreichbarkeit w\u00fcrde Angreifern bei erfolgreichem Zugriff weitreichende M\u00f6glichkeiten zur \u00c4nderung der Konfiguration er\u00f6ffnen.","ref":""},{"kind":"citation","text":"","ref":"S11"}]},{"type":"paragraph","runs":[{"kind":"text","text":"Der praktische Migrationspfad endet nicht mit einer neuen Prozesskonfiguration. \u00dcbernimm Anwendung f\u00fcr Anwendung die PHP-Version, Erweiterungen, Umgebungswerte, Dateirechte, Routingregeln und Beobachtbarkeit in das Zielsystem. Vergleiche dabei erwartete Antworten und Fehlerf\u00e4lle statt pauschale Geschwindigkeitsurteile abzuleiten. So wird aus einer ungeplanten Altlast eine dokumentierte ","ref":""},{"kind":"strong","text":"Abl\u00f6sestrategie","ref":""},{"kind":"text","text":" mit nachvollziehbaren technischen Entscheidungen.","ref":""}]}]}]},"_wh_make_word_report":{"words":2434,"min":2000,"max":3000,"target":2500,"ok":true,"missing":0,"excess":0,"lead_words":65,"section_words":{"projektstatus-und-kurzurteil":154,"architektur-und-php-ausfuehrung":215,"module-versionen-und-konfiguration":207,"php-routing-mit-unit":264,"prozessmodelle-und-ram-budget":332,"vergleich-der-betriebsmodelle":357,"bestandsbetrieb-und-absicherung":286,"timeouts-logs-und-fehlersuche":299,"entscheidung-und-migrationspfad":255}},"_wh_make_review":{"verdict":"pass","issues":[],"checked_source_ids":["S1","S2","S3","S4","S5","S6","S10","S11"],"summary":"Der Artikel ist fachlich schl\u00fcssig und ausreichend belegt. Projektarchivierung, stabiler Release 1.35.0, Dokumentationsstand 1.34.2 und Entwicklungszweig werden sauber getrennt. Die Aussagen zu PHP-8.5-Kompatibilit\u00e4t, eigenem PHP-SAPI-Modul, PHP-FPM-Prozessmodi, Unit-Prozessverwaltung, Routing, Timeouts und Control API stimmen mit den gepr\u00fcften Quellen \u00fcberein. Das JSON-Beispiel ist f\u00fcr Unit 1.34.2\/1.35.0 plausibel und ausdr\u00fccklich als lokale Demo eingeordnet. Das RAM-Beispiel ist korrekt gerechnet und klar als Planungsmodell statt Messung gekennzeichnet. Tabellen vermischen keine Produktvarianten und enthalten keine unbelegten Leistungsbehauptungen. Die Bildkonzepte sind als KI-generierte Symbolbilder ausgewiesen und zeigen keine fachlich irref\u00fchrende Hardware oder Topologie."},"_wh_make_review_doc_hash":"da1770f5c160850da41251da9257aa3b5a9ea7256c49bd5443bce7f4f2a54276","_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"inline_featured_image":null,"_yoast_wpseo_linkdex":null,"_eael_widget_elements":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_trp_translated_slug_en_us":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_wh_make_writer_raw":null,"_wh_make_design_backup_204":null,"_wp_desired_post_slug":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":"1","_edit_lock":"1790913767:1","_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"104","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":"25","rank_math_contentai_score":null,"ilj_limitincominglinks":"","ilj_maxincominglinks":"1","ilj_limitoutgoinglinks":"","ilj_maxoutgoinglinks":"1","ilj_limitlinksperparagraph":"","ilj_linksperparagraph":"1","ilj_blacklistdefinition":[],"ilj_linkdefinition":[],"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"NGINX Unit als Alternative zu PHP-FPM","rank_math_og_content_image":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"21780","_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":"NGINX Unit konnte PHP direkt ausf\u00fchren, ist aber archiviert. So bewertest du Unit gegen\u00fcber PHP-FPM f\u00fcr neue Systeme und Bestandsumgebungen.","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/posts\/21778","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/comments?post=21778"}],"version-history":[{"count":3,"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/posts\/21778\/revisions"}],"predecessor-version":[{"id":21784,"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/posts\/21778\/revisions\/21784"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/media\/21780"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/media?parent=21778"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/categories?post=21778"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/ru\/wp-json\/wp\/v2\/tags?post=21778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}