Webserver und Engines
Dieser Abschnitt ist für Systemadministratoren und Produktmanager bei Hosting-Unternehmen, die entscheiden müssen, was eine Exponential-Website auf ihren Maschinen ausliefert, und es einrichten. Er beantwortet: hinter welchen Webservern und Engines Exponential läuft, welche das Projekt empfiehlt, welche zu welchem Hosting-Modell passt und wo die genauen Einstellungen stehen.
Warnung
.htaccessbremst jede Anfrage. Sind.htaccess-Dateien erlaubt (AllowOverridealles außerNone), geschweige denn genutzt, sucht Apache sie bei jeder Anfrage in jedem Verzeichnis des Pfads und liest und wertet sie aus, und die Ladezeiten der Seiten steigen drastisch (gemessen). Die einzige wirkliche Abhilfe ist, die Funktion für den virtuellen Host abzuschalten:AllowOverride Noneim virtuellen HTTPS-Host, und die Regeln in der Konfiguration des virtuellen Hosts selbst als mod_rewrite-Regeln. Das ist in Geschwindigkeitstests im Produktivbetrieb weit schneller und die Zeit für die Optimierung einer Produktivkonfiguration unbedingt wert. Stellen Sie sofort um: Übernehmen Sie die Regeln des Beispiels für einen virtuellen HTTPS-Host in Ihren virtuellen Host (mit dem statischen Cache auchstaticcache_offload.conf), setzen SieAllowOverride None, führen Sieapachectl configtestaus, laden Sie Apache neu und testen Sie die Website. Dieselben Regeln für andere Server: nginx, LiteSpeed, Caddy, IIS, Velocity (eingebaut); wohin Regeln für virtuelle Hosts in einem Control Panel gehören: Plesk, cPanel, DirectAdmin, ISPConfig. Unter LiteSpeed oder OpenLiteSpeed kann zusätzlich der Seiten-Cache des Servers anonyme Besucher und Crawler ohne PHP bedienen: Seiten-Caching mit LiteSpeed und OpenLiteSpeed.
Zurück zu Hosting-Unternehmen: hier beginnen.
Inhalt
- Die kurze Antwort
- Die Server auf einen Blick
- Seiten in diesem Abschnitt
- Was jede Einrichtung gemeinsam hat
- Verwandte Seiten
Die kurze Antwort
- Exponential Velocity (die Engine
qbix) ist der vom Projekt empfohlene Weg, eine Website in jeder Phase auszuliefern, von der Entwicklung bis zur Produktion. Es ist ein in PHP geschriebener Webserver, der die Anwendung in persistenten Workern geladen hält, wiederholte Seiten aus seinem eigenen Antwort-Cache beantwortet und HTTPS selbst ausliefert (Kapitel 8). - FrankenPHP, gesteuert über denselben Befehl
exp:velocity, ist die produktionsreife Alternative. - Apache mit PHP-FPM und nginx mit PHP-FPM sind die klassischen Einrichtungen. Sie bleiben vollständig unterstützt und sind das, was
Shared Hosting meist anbietet, weil Velocity einen dauerhaft laufenden Prozess braucht, den Shared Hosting meist nicht erlaubt
(
README.md, Abschnitt darüber, wann ein klassischer Server noch die richtige Antwort ist). - Jeder andere Webserver, der eine Anfrage an PHP weitergeben und eine URL auf
index.phpumschreiben kann, liefert Exponential ebenfalls aus (Unterstützung von Betriebssystemen, Webserver).
Die Server auf einen Blick
Die Stufen stammen aus Unterstützung von Betriebssystemen.
| Server | Status in den Quellen | Typisches Hosting-Modell | Seite |
|---|---|---|---|
Exponential Velocity (qbix) | für jede Phase empfohlen; Stufe 1 | VPS, dediziert, Container, verwaltet | Velocity für Hoster |
| Apache httpd 2.4 mit PHP-FPM | Stufe 1 | Shared, Panels, VPS | Apache mit PHP-FPM |
FrankenPHP (über exp:velocity) | produktionsreife Alternative | VPS, dediziert, Container | FrankenPHP |
| nginx mit PHP-FPM | Stufe 2 | VPS, dediziert | nginx mit PHP-FPM |
| LiteSpeed, OpenLiteSpeed | Stufe 3 | Shared Hosting auf LiteSpeed | LiteSpeed |
| Caddy mit PHP-FPM | Stufe 3 | VPS | Caddy |
| Microsoft IIS mit FastCGI | Stufe 3 | Windows-Hosting | IIS |
| Der eingebaute Server von PHP | nur Entwicklung | nie für Besucher | Einen Webserver wählen |
Hinweis Stufe 3 heißt „sollte funktionieren“: eine begründete Erwartung, kein Testergebnis (Die vier Stufen). Testen Sie einen Server der Stufe 3 auf einer Staging-Maschine, bevor Sie einen Tarif verkaufen, der davon abhängt.
Seiten in diesem Abschnitt
| Seite | Was sie beantwortet |
|---|---|
| Einen Webserver wählen | Welcher Server oder welche Engine zu welchem Tarif passt, mit einer Entscheidungstabelle |
| Apache mit PHP-FPM | Die klassische Einrichtung: .htaccess_root, der virtuelle Host, PHP-FPM-Pools, Plesk |
| nginx mit PHP-FPM | Der abgeleitete Server-Block, Regel für Regel, und wie Sie ihn prüfen |
| Caddy | Was die Quellen über Caddy sagen, und das nachzubildende Routing |
| LiteSpeed | LiteSpeed und OpenLiteSpeed mit den mitgelieferten Apache-Regeln |
| IIS | Windows-Hosting mit IIS, FastCGI und dem Modul URL Rewrite |
| Velocity für Hoster | Velocity auf einem Hosting-Server installieren, konfigurieren und betreiben |
| Velocity-Worker und Pools | Poolgröße, der dynamische Pool, Instanzen, Speicher als PSS gemessen |
| HTTPS-Zertifikate in Velocity | Eigene Zertifikate, Let's Encrypt, der selbstsignierte Ersatz, HSTS |
| FrankenPHP | Die verifizierte Binärdatei, ihr eingebettetes PHP und ihre Grenzen |
| Velocity neben Apache oder nginx | Beide auf denselben Dateien betreiben, hinter einem Proxy oder während einer Migration |
| Rezept: eine öffentliche Demo auf LiteSpeed und Plesk betreiben | Eine öffentliche Demo im Demomodus (EXP_DEMO_MODE=1), alle zwei Stunden aus dem aktuellen Code neu aufgebaut |
Was jede Einrichtung gemeinsam hat
Was auch immer die Website ausliefert, es gelten dieselben Regeln (Kapitel 8, Wie eine Anfrage ausgeliefert wird):
- Der Document Root ist das Wurzelverzeichnis der Installation, das Verzeichnis, das
index.phpenthält. - Das Routing ist einmal aufgeschrieben, in
.htaccess_root. Die Engines von Velocity und die erzeugte Konfiguration von FrankenPHP setzen dieselbe Liste Regel für Regel um. Apache (mitAllowOverride All) und LiteSpeed Enterprise lesen sie als.htaccess, die./console exp:setup:htaccess --applyan ihren Platz kopiert; OpenLiteSpeed liest nur ihre Rewrite-Regeln (mitautoLoadHtaccess, nach einem Neustart); nginx, Caddy und IIS lesen sie nie (.htaccess und config.php von der Konsole einrichten). - Keine PHP-Datei läuft, weil ihr Pfad angefragt wurde, außer den Front-Controllern in der Wurzel (
index.php,index_rest.php,index_treemenu.phpund, wenn SOAP an ist,index_soap.php; vor 6.0.15 hieß essoap.php, siehe Das SOAP-Einstiegsskript heißt jetzt index_soap.php). - WebDAV braucht, wenn Sie es einschalten, eine eigene Regel für
index_webdav.php(sein Name seit 6.0.15;webdav.phpleitet bis zu einer späteren Hauptversion nur dorthin weiter) auf Apache, nginx oder IIS, auch im HTTPS-Host. Velocity liefert es nicht aus. Siehe Das WebDAV-Einstiegsskript heißt jetzt index_webdav.php. - Nur aufgeführte Asset-Pfade werden als Dateien gesendet;
settings/site.ini, die SQLite-Datenbank oder eine Quelldatei des Kernels, die per Pfad angefragt werden, erreichenindex.php, nie die Datei. - Der Benutzer, der PHP ausführt, muss
var/und die Verzeichnisse untersettings/schreiben können, und ein Benutzer (oder eine Gruppe) sollte sie schreiben, welcher Server auch läuft (Kapitel 8, Dateiberechtigungen und Eigentum).
Prüfen Sie das Routing auf jedem Server mit den vier Anfragen aus Kapitel 8 und ersetzen Sie die Adresse durch Ihre eigene:
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/.git/config # 404 (403 from qbix)
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/kernel/classes/ezcontentobject.php # 404
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/robots.txt # 200 when the file exists
curl -s https://example.com/settings/site.ini | grep -c '^\[DatabaseSettings\]' # 0Ein 200 für die Anfrage an .git oder den Kernel bedeutet, dass die Regeln nicht aktiv sind. Halten Sie an und beheben Sie das, bevor
die Website von außen erreichbar ist.
Verwandte Seiten
- Hosting-Unternehmen: hier beginnen
- Leistung
- Kapitel 8: Die Website ausliefern
- Unterstützung von Betriebssystemen
- Velocity-Engines
- .htaccess und config.php von der Konsole einrichten
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.