NCA Social Media
Aktualisiert:
Autor:
Roland Golla
Grüner FrankenPHP-Schriftzug mit Zombie-elePHPant auf dunklem Hintergrund

Was ist FrankenPHP?

FrankenPHP ist ein moderner Application Server für PHP, der auf dem in Go geschriebenen Webserver Caddy aufbaut. Anders als klassische Setups mit Nginx und PHP-FPM vereint FrankenPHP Webserver und PHP-Interpreter in einem einzigen Prozess. Das Ergebnis: automatisches HTTPS, HTTP/2- und HTTP/3-Unterstützung, ein leistungsstarker Worker Mode für persistente PHP-Prozesse und bis zu 3,6x mehr Performance als traditionelle Nginx/PHP-FPM-Konfigurationen.

Seit Mai 2025 wird FrankenPHP offiziell von der PHP Foundation unterstützt und der Quellcode liegt in der offiziellen PHP-GitHub-Organisation unter github.com/php/frankenphp. Stand März 2026 verzeichnet das Projekt über 10.800 GitHub-Stars, mehr als 100 Contributors und wird von Hosting-Anbietern wie Upsun, Laravel Cloud und Clever Cloud nativ unterstützt. Erstellt wurde FrankenPHP von Kévin Dunglas, dem Gründer der französischen Entwickler-Kooperative Les-Tilleuls.coop und Symfony-Core-Team-Mitglied.

FrankenPHP funktioniert mit jeder PHP-Anwendung, bietet aber besonders enge Integrationen mit Laravel (über Laravel Octane) und Symfony (über das FrankenPHP-Symfony-Runtime). Für Symfony-Projekte liefert das offizielle Symfony Docker-Projekt ein vollständiges, rootloses Produktionsimage, das ausschließlich enthält, was zum Ausführen von FrankenPHP und Symfony nötig ist. Wer seine Docker-basierte PHP-Infrastruktur modernisieren möchte, findet in FrankenPHP den aktuell fortschrittlichsten Ansatz.

FrankenPHP 1.12.5: Aktueller Stand im Juli 2026

Die aktuelle Version ist FrankenPHP 1.12.5, getaggt am 18. Juli 2026 unter dem Commit e41b848. Das Release kommt ohne eigene Release Notes. Auf GitHub steht nur der Versionsstring, keine Feature Liste, kein Security Hinweis. Wer trotzdem noch auf einer älteren 1.12er Version läuft, sollte zügig aktualisieren. Der Grund liegt nicht in 1.12.5 selbst, sondern in den Vorgängern.

Die 1.12er Reihe hat zwei ernste Themen abgeräumt. Version 1.12.3 schließt CVE-2026-45062, eingestuft als hoch mit CVSS 8.1. Unsichere Unicode Behandlung im CGI Path Splitting konnte dazu führen, dass eine Datei ohne php Endung als PHP ausgeführt wird. Betroffen sind alle Installationen von 1.11.2 bis 1.12.2. Version 1.12.4 folgte am 4. Juni 2026 als Hardening Release: Caddy springt auf 2.11.4, Mercure auf 0.24.2. Dazu kommt ein Schutz gegen Underscore Header Spoofing sowie Fixes für Crashes und Data Races im Worker Mode.

Underscore Header Spoofing ist der spannendste Punkt für Teams mit Reverse Proxy. CGI bildet Bindestriche auf Unterstriche ab. Aus Foo-Bar wird HTTP_FOO_BAR. Ein Client kann also einen Header Foo_Bar schicken, der in $_SERVER nicht mehr von einem echten Foo-Bar zu unterscheiden ist. Wer Header wie forwarded-for oder Auth Header vertraut, hat damit ein Problem. Das gebündelte Caddy 2.11.4 ignoriert Header mit Unterstrichen jetzt direkt auf Server Ebene.

Praktisch heißt das für den Betrieb: Version pinnen, Update einplanen, danach messen. Wir helfen Teams bei PHP Versionswechseln, prüfen Abhängigkeiten mit Composer Audit und bauen den Rollout über PHP Deployer und saubere Docker Images. Für Symfony Projekte im Worker Mode lohnt sich nach dem Update ein Blick auf Session und Request Verhalten.

CYPRESS.IO Ambassador und IT Consultant für QA Engenieering und Qualität in PHP Projekten.

Erreichen Sie unsere PHP Consultant Spezialisten

Wir sind Experten für PHP und helfen Ihnen, Ihre digitalen Herausforderungen zu meistern. Unser erfahrenes Team unterstützt Sie bei PHP Updates, PHP Refactoring und berät Sie remote zu allen Fragen rund um PHP. Mit unseren vollautomatischen CI/CD Deployments und einer robusten Docker-Infrastruktur bringen wir Ihre PHP-Projekte auf das nächste Level. Vertrauen Sie auf unsere Expertise für zuverlässige und skalierbare PHP-Lösungen.

Worker Mode: Persistente PHP-Prozesse für maximale Performance

Das Herzstück von FrankenPHP ist der Worker Mode. In klassischen PHP-Setups wird bei jedem HTTP-Request die gesamte Anwendung neu gebootet – Framework, Konfiguration, Dependency Injection Container, Datenbankverbindungen. Der Worker Mode ändert das grundlegend: Die Anwendung wird einmal gestartet und bleibt im Speicher. Jeder weitere Request nutzt den bereits initialisierten Zustand, was den Overhead pro Request drastisch reduziert.

Die Ergebnisse sprechen für sich: In Benchmarks von Version 1.3 konnte FrankenPHP mit korrekt konfiguriertem Worker Mode 54 % mehr Requests bei gleicher Hardware verarbeiten als die Vorgängerversion 1.2.5, die ihrerseits bereits deutlich performanter war als klassische PHP-Installationen. Für Windows-Nutzer zeigte der erste Community-Benchmark nach dem nativen Windows-Support einen 3,6-fachen Performance-Vorteil gegenüber einer bereits optimierten Nginx/PHP-FPM-Umgebung.

Symfony und Laravel unterstützen den Worker Mode nativ:

  • Symfony: Über das runtime/frankenphp-symfony-Paket – einfach per Composer installieren und in der composer.json als Runtime setzen
  • Laravel: Über Laravel Octane mit dem FrankenPHP-Worker-Driver

Seit Version 1.11 unterstützt FrankenPHP außerdem Native Hot Reloading (HMR) im Worker Mode. Dateiänderungen werden automatisch erkannt und die Worker im Hintergrund neu gestartet – ohne manuellen Server-Neustart.

Code:
          

# FrankenPHP Worker Mode in der Caddyfile konfigurieren
{
    frankenphp {
        worker {
            file /path/to/app/public/index.php
            watch
        }
    }
}

FrankenPHP und Docker: Rootless Production Images

Ein entscheidender Vorteil von FrankenPHP ist die konsolidierte Architektur: Webserver und PHP-Interpreter laufen in einem einzigen Container. Wo klassische Setups mindestens zwei Container benötigen – einen für Nginx, einen für PHP-FPM – reicht bei FrankenPHP ein einzelner Docker-Container. Das vereinfacht Deployment, Monitoring und Ressourcenplanung erheblich.

Das offizielle Symfony Docker-Projekt (github.com/dunglas/symfony-docker) nutzt FrankenPHP als Runtime und bietet ein rootloses, schlankes Produktionsimage, das ausschließlich das enthält, was zum Ausführen von FrankenPHP und Symfony strikt notwendig ist. Features im Überblick:

  • Multi-Stage Builds: Entwicklung und Produktion sauber getrennt – Xdebug im Dev, minimales Image in Prod
  • Rootless Execution: Der Container läuft als unprivilegierter Benutzer – kleinere Angriffsfläche
  • Distroless / Hardened Images: Für maximale Sicherheit können Google Distroless oder Docker Hardened Base Images verwendet werden
  • Automatisches HTTPS: Let's Encrypt-Zertifikate werden automatisch generiert und erneuert
  • Composer-Integration: Dependencies werden im Build-Prozess aufgelöst, nicht zur Laufzeit
Code:
          

# Rootless FrankenPHP Dockerfile
FROM dunglas/frankenphp

ARG USER=appuser
RUN useradd ${USER} && \
    setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/frankenphp && \
    chown -R ${USER}:${USER} /config/caddy /data/caddy

USER ${USER}

Für Teams, die ihre Symfony- oder Laravel-Anwendungen containerisiert betreiben, bietet FrankenPHP damit eine deutlich schlankere und sicherere Alternative zu klassischen Nginx/PHP-FPM-Docker-Stacks. Die Konfiguration reduziert sich auf eine einzige Caddyfile statt separater Nginx-Konfiguration, PHP-FPM-Pool-Konfiguration und Supervisor-Prozessmanagement.

Installation von FrankenPHP 2026

FrankenPHP bietet 2026 mehrere Installationswege für Linux, macOS und Windows. Seit Version 1.11.3 ist PHP 8.5 in den statischen Binaries enthalten, PHP 8.2 bis 8.4 werden ebenfalls unterstützt.

Standalone-Binary (Linux/macOS): Ein einzelner Befehl installiert FrankenPHP inklusive PHP – keine weiteren Abhängigkeiten nötig. Die Linux-Binaries sind statisch gelinkt und laufen auf jeder Distribution.

Code:
          

# One-Line-Installation (Linux/macOS)
curl https://frankenphp.dev/install.sh | sh

# PHP-Dateien im aktuellen Verzeichnis servieren
frankenphp php-server

# CLI-Skript ausführen
frankenphp php-cli /path/to/script.php

Homebrew (macOS/Linux):

Code:
          

brew install dunglas/frankenphp/frankenphp

APT-Pakete (Debian/Ubuntu):

Code:
          

VERSION=85
sudo curl https://pkg.henderkes.com/api/packages/${VERSION}/debian/repository.key \
  -o /etc/apt/keyrings/static-php${VERSION}.asc
echo "deb [signed-by=/etc/apt/keyrings/static-php${VERSION}.asc] \
  https://pkg.henderkes.com/api/packages/${VERSION}/debian php-zts main" \
  | sudo tee -a /etc/apt/sources.list.d/static-php${VERSION}.list
sudo apt update && sudo apt install frankenphp

Docker:

Code:
          

docker run -v .:/app/public \
  -p 80:80 -p 443:443 -p 443:443/udp \
  dunglas/frankenphp

Windows (NEU seit März 2026): FrankenPHP unterstützt seit Version 1.11.3 nativ Windows – mit 100 % Kompatibilität inklusive Worker Mode und Hot Reloading. Die Windows-Binaries werden direkt gegen offizielle Visual Studio-kompilierte PHP-Binaries gelinkt, was durch neue CGO-Fähigkeiten in Go 1.26 möglich wurde. Offizielle Binaries stehen auf der GitHub-Releases-Seite zum Download bereit.

FrankenPHP vs. Nginx/PHP-FPM: Der Vergleich

Die klassische Architektur mit Nginx als Reverse Proxy und PHP-FPM als Process Manager hat sich über Jahre bewährt. FrankenPHP verfolgt einen radikal anderen Ansatz, der in vielen Szenarien deutliche Vorteile bietet:

  • Ein Prozess statt zwei: Kein separater Nginx- und PHP-FPM-Prozess mehr – weniger Overhead, einfacheres Debugging
  • Keine Unix-Socket-Kommunikation: Requests werden direkt verarbeitet, ohne den Umweg über einen Socket zwischen Webserver und PHP
  • Worker Mode: Persistente Prozesse eliminieren das wiederholte Bootstrapping – das größte Performance-Problem von PHP-FPM
  • Automatisches HTTPS: Caddy generiert und erneuert TLS-Zertifikate automatisch – keine manuelle Certbot-Konfiguration nötig
  • HTTP/3-Support: Nativ integriert, während Nginx HTTP/3 nur experimentell unterstützt
  • Early Hints (103): Browser können Assets vorladen, bevor die eigentliche Response generiert ist

Wo FrankenPHP nicht immer die beste Wahl ist: Für extrem spezialisierte Reverse-Proxy-Konfigurationen mit komplexen Lua-Modulen oder für Legacy-Anwendungen, die auf spezifische Apache-.htaccess-Features angewiesen sind, kann ein Migrationspfad nötig sein. Auch beim lokalen Entwickeln mit DDEV oder ähnlichen Tools ist die Integration zwar möglich, aber noch nicht so ausgereift wie die klassische PHP-FPM-Anbindung.

Für Symfony- und Laravel-Projekte, die Performance und einfaches Deployment priorisieren, ist FrankenPHP 2026 jedoch die klare Empfehlung – und das nicht nur als Meinung der Community, sondern durch die offizielle Unterstützung der PHP Foundation untermauert.

I hope FrankenPHP will become the default runtime for PHP.

Brent Roose, Developer & Content Creator, stitcher.io – stitcher.io – PHP in 2026

FrankenPHP und die PHP Foundation

Im Mai 2025 wurde FrankenPHP offiziell in die PHP Foundation aufgenommen. Der Quellcode wurde in die offizielle PHP-GitHub-Organisation (github.com/php/frankenphp) transferiert, und das PHP Foundation-Team trägt aktiv zur Wartung und Weiterentwicklung bei. Die Governance bleibt beim bestehenden Maintainer-Team: Kévin Dunglas, Robert Landers und Alexander Stecher.

Dieser Schritt signalisiert, dass FrankenPHP kein experimentelles Nebenprojekt mehr ist, sondern als zukunftsweisende Laufzeitumgebung für PHP anerkannt wird. Perspektivisch könnte FrankenPHP sogar auf der offiziellen PHP-Website als eine der empfohlenen Möglichkeiten zur Nutzung der Sprache hervorgehoben werden – neben bewährten SAPIs wie PHP-FPM, die weiterhin vollständig unterstützt bleiben.

Wichtige Meilensteine der FrankenPHP-Entwicklung:

  • Oktober 2022: Erste Veröffentlichung durch Kévin Dunglas
  • Dezember 2024: Version 1.3 mit 54 % Performance-Steigerung und Watcher Mode
  • Mai 2025: Aufnahme in die PHP Foundation
  • August 2025: 10.000 GitHub-Stars erreicht
  • Dezember 2025: Version 1.11 mit Native Hot Reloading und Structured Logging
  • Februar 2026: Version 1.11.2 mit Go-1.26-Performance-Boost (30 % schnellere CGO-Calls, 40 % schnellerer Garbage Collector)
  • März 2026: Nativer Windows-Support mit Version 1.11.3

Häufig gestellte Fragen (FAQ)

Die wichtigsten Fragen und Antworten rund um FrankenPHP – von Installation über Performance bis hin zu Sicherheit und DSGVO-Konformität.

Was ist FrankenPHP und wofür wird es 2026 eingesetzt?

FrankenPHP ist ein moderner PHP Application Server, der auf dem Caddy-Webserver aufbaut und in Go geschrieben ist. Er vereint Webserver und PHP-Interpreter in einem Prozess und bietet Worker Mode, automatisches HTTPS, HTTP/3 und Early Hints. 2026 wird FrankenPHP für performante Symfony- und Laravel-Deployments eingesetzt.

Welche Vorteile bietet FrankenPHP gegenüber Nginx/PHP-FPM 2026?

FrankenPHP eliminiert den separaten PHP-FPM-Prozess und die Socket-Kommunikation. Der Worker Mode hält die Anwendung persistent im Speicher, was bis zu 3,6x mehr Performance bringt. Automatisches HTTPS, HTTP/3 und eine einzige Caddyfile statt drei Konfigurationsdateien vereinfachen den Betrieb zusätzlich.

Ist FrankenPHP kostenlos nutzbar 2026?

Ja, FrankenPHP ist vollständig Open Source unter der MIT-Lizenz. Es gibt keine Lizenzkosten. Statische Binaries, Docker-Images und Paketmanager-Installationen sind kostenlos verfügbar. Professioneller Support wird von Les-Tilleuls.coop angeboten.

Wie installiert man FrankenPHP unter Windows, macOS und Linux 2026?

Unter Linux und macOS genügt ein einziger Befehl: curl https://frankenphp.dev/install.sh | sh. Für macOS gibt es zusätzlich Homebrew-Pakete, für Debian/Ubuntu APT-Pakete. Seit März 2026 werden auch native Windows-Binaries angeboten, die direkt von der GitHub-Releases-Seite heruntergeladen werden können.

Ist FrankenPHP DSGVO-konform einsetzbar 2026?

FrankenPHP selbst überträgt keine Daten an Dritte. Die Software läuft lokal oder auf dem eigenen Server. Bei Let's-Encrypt-Zertifikaten wird ein minimaler Datenaustausch mit der Zertifizierungsstelle nötig, was DSGVO-konform umsetzbar ist. Self-signed Zertifikate sind als Alternative konfigurierbar.

Unterstützt FrankenPHP PHP 8.5 und das Pipe-Operator-Feature 2026?

Ja, seit Version 1.11.3 enthalten die offiziellen FrankenPHP-Binaries PHP 8.5 mit allen neuen Features wie dem Pipe Operator, Enhanced Cloning und Fatal Error Backtraces. PHP-Versionen 8.2 bis 8.5 werden parallel unterstützt.

Was ist der Worker Mode von FrankenPHP und wie funktioniert er?

Der Worker Mode startet die PHP-Anwendung einmal und hält sie im Speicher. Nachfolgende Requests nutzen den bereits initialisierten Zustand, ohne erneutes Bootstrapping. Das eliminiert den größten Performance-Engpass klassischer PHP-Setups und ähnelt dem Prinzip von Node.js oder Go.

Kann man FrankenPHP mit Symfony verwenden 2026?

Ja, Symfony hat eine offizielle FrankenPHP-Integration über das runtime/frankenphp-symfony-Paket. Das Symfony Docker-Projekt liefert ein produktionsfertiges, rootloses Docker-Image mit FrankenPHP als Runtime. Worker Mode und Hot Reloading funktionieren nahtlos.

Wie sicher ist FrankenPHP im Vergleich zu Nginx 2026?

FrankenPHP konsolidiert die Angriffsfläche in einem einzigen Prozess statt mehrerer Services. Rootless Docker-Execution, automatische TLS-Zertifikate und die Möglichkeit, Distroless-Base-Images zu nutzen, erhöhen die Sicherheit. Kritische Sicherheitsupdates werden regelmäßig veröffentlicht, etwa drei Fixes in v1.11.2.

Wird FrankenPHP von der PHP Foundation unterstützt 2026?

Ja, seit Mai 2025 ist FrankenPHP offiziell in der PHP Foundation. Der Quellcode liegt in der offiziellen PHP-GitHub-Organisation. Das Foundation-Team trägt aktiv zur Entwicklung bei, die ursprünglichen Maintainer behalten die Governance.

Wie migriert man von Nginx/PHP-FPM zu FrankenPHP?

Für Symfony-Projekte ist die Migration besonders einfach: Das Symfony-Docker-Projekt übernehmen, FrankenPHP-Runtime per Composer installieren und die Caddyfile konfigurieren. Nginx-spezifische Konfigurationen wie location-Blöcke werden durch Caddy-Direktiven ersetzt. Die meisten PHP-Anwendungen funktionieren ohne Code-Änderungen.

Bietet NCA Unterstützung bei der FrankenPHP-Migration 2026?

Ja, Never Code Alone bietet PHP-Refactoring und DevOps-Consulting an. Von der Analyse bestehender Nginx/PHP-FPM-Setups über die Migration zu FrankenPHP bis hin zur Einrichtung von CI/CD-Pipelines mit Docker – kontaktieren Sie uns für eine kostenlose Erstberatung unter roland@nevercodealone.de.

Welche FrankenPHP Version ist 2026 aktuell?

FrankenPHP 1.12.5 ist die aktuelle Version, getaggt am 18. Juli 2026. Das Release enthält keine eigenen Release Notes, auf GitHub steht nur der Versionsstring. Wichtiger als der Sprung auf 1.12.5 ist der Abstand zu den Vorgängern: 1.12.3 und 1.12.4 haben mehrere sicherheitsrelevante Themen geschlossen. Wer noch auf 1.11.2 bis 1.12.2 läuft, sollte das Update einplanen.

Muss ich wegen CVE-2026-45062 auf FrankenPHP updaten?

Ja, wenn ihr eine Version zwischen 1.11.2 und 1.12.2 betreibt. CVE-2026-45062 ist mit CVSS 8.1 als hoch eingestuft. Ursache ist eine unsichere Unicode Behandlung im CGI Path Splitting. Dadurch konnte eine Datei ohne php Endung als PHP ausgeführt werden. Der Fix steckt in Version 1.12.3. Ein Update auf die aktuelle 1.12.5 deckt das mit ab.

Was ist Underscore Header Spoofing in FrankenPHP 1.12.4?

CGI bildet Bindestriche in Header Namen auf Unterstriche ab. Aus Foo-Bar wird HTTP_FOO_BAR. Ein Client kann deshalb einen Header Foo_Bar senden, der in $_SERVER nicht mehr vom echten Foo-Bar zu unterscheiden ist. Anwendungen, die Header wie forwarded-for oder Auth Header vertrauen, lassen sich so täuschen. Das in 1.12.4 gebündelte Caddy 2.11.4 ignoriert Header mit Unterstrichen auf Server Ebene.