The Daily Commit · Ressort-Ausgabe Titelseite PHP AI Dev EN DE FR ES

The Php Times

Tooling — Ökosystem

Qbix Server: PHP-Webserver mit angeblich 10× höherer Concurrency als Nginx + PHP-FPM


Ein eigenständiger PHP-Webserver, der statische Dateien, PHP-Skripte und WebSocket-Verbindungen in einem einzigen Prozess bedient.

HACKER NEWS (PHP, ≥15 P.), 21. Juli 2026 kuratiert von Heiko

Nutzt Fork-nach-Preload mit Copy-on-Write, um etwa 1.600 gleichzeitige PHP-Anfragen bei 8GB RAM gegenüber ~160 mit php-fpm zu ermöglichen – ohne Pro-Worker-Bootstrap-Overhead und Speicherduplizierung. Erreicht 55–73% des statischen Durchsatzes von Nginx.

Qbix Server ist ein reiner PHP-Webserver, der den traditionellen Stack aus Nginx + php-fpm überflüssig macht. Anstatt separate PHP-Worker zu spawnen, die das gesamte Framework unabhängig laden, wird der Server einmalig beim Start mit allen Klassen, Konfigurationen und Datenbankverbindungen geladen und forkt dann Worker-Prozesse. Geforkte Worker erben den vorgeladenen Zustand mittels Copy-on-Write-Speicherfreigabe, was Duplikation vermeidet.

Die Concurrency-Aussage basiert auf Speichereffizienz. Klassisches php-fpm alloziert 30–60MB pro Worker für Framework-Code, der auf allen Workern identisch ist. Bei 8GB RAM sind damit etwa 160 gleichzeitige Worker das Limit. Qbix Server lädt diesen Code einmal (~30MB shared), dann alloziert jeder Worker nur ~5MB für Request-spezifische Daten und ermöglicht damit ~1.600 Worker bei gleicher Hardware.

Performance-Benchmarks auf einem Single-Core-Container (PHP 8.3, 13KB statische Datei) zeigen, dass Qbix Server je nach Concurrency-Modus und Keep-Alive-Einstellung 56–73% des Nginx-Durchsatzes erreicht. Die Dokumentation räumt ein, dass diese Lücke systemisch ist: Nginx nutzt sendfile()-I/O im Kernel-Space, epoll-Eventbenachrichtigungen und kompiliertes C, während Qbix in interpretiertem PHP läuft mit stream_select und userspace-Dateiverarbeitung.

Zu den Kernfunktionen gehören In-Memory-Response-Caching mit ETag und 304-Validierung, X-Accel-Redirect für Zugriffskontrolle auf Dateien (PHP prüft Berechtigungen, Server streamt ohne öffentliche URL), und X-Cache-Tree für Cache-Invalidation auf Komponenten-Ebene (eine Seitenkomponente invalidieren, ohne die ganze Seite zu leeren). WebSocket-Unterstützung ist eingebaut.

Die Architektur nutzt Fork-pro-Request (oder vorgeforkter Worker-Pools mit --workers=N). Jeder Request läuft in einem eigenen Prozess, was State-Leaks ausschließt – globale Variablen, statische Properties und Datenbankverbindungen werden beim Prozessende gelöscht. Dies unterscheidet sich von persistenten Worker-Systemen wie FrankenPHP und Swoole, wo statischer State zwischen unverwandten Requests leaken kann, wenn nicht sorgfältig auditiert.

Der Server wird als PHP-Quellcode, 196KB PHAR-Datei oder statisches Binary (~15MB) mit PHP 8.3 und Extensions verteilt. Er benötigt PHP 8.1+ mit sockets, pcntl (für Signale und Worker auf Unix) und openssl Extensions. Windows-Unterstützung existiert ohne pcntl; jeder Request spawnt via proc_open mit ~50ms Overhead, was die Preload-Geschwindigkeit opfert.

Optional kann amphp über Composer installiert werden, um die Transport-Schicht auf HTTP/2 mit Multiplexing, HPACK-Header-Kompression und Server-Push zu upgraden. Der eingebaute Transport nutzt stream_select ohne Abhängigkeiten.

Der Server enthält eine Mikro-Framework-Schicht: classes/ (autoload), handlers/ (event-getrieben), views/ (PHP-Templates), config/ (JSON-Einstellungen), web/ (öffentliches Document Root). Die gleiche Verzeichnisstruktur nutzt das vollständige Qbix Platform, was später ein Upgrade ohne Umorganisation ermöglicht.

Für einfache Seiten, APIs oder Projekte ohne vollständiges Framework läuft Qbix Server im Standalone-Modus (ohne --app-Flag). Mit --app=/path/to/qbix-app integriert es das vollständige Qbix Platform, routet Requests durch den Framework-Dispatcher und lädt Plugins wie Users, Streams und Assets.

Der Server ist Teil des Qbix Platform Ökosystems und unter MIT-Lizenz freigegeben.

Originalquelle lesen (Englisch) ↗

Artikel bewerten: 0

Leserforum

Noch keine Beiträge — eröffne die Debatte.

← Ökosystem — Page B1

"All the Code That's Fit to Ship" · The Daily Commit · Bildschirm-Ausgabe · Impressum · Datenschutz