LiteSpeed und OpenLiteSpeed
Diese Seite ist für Hosting-Unternehmen, deren Shared oder Managed Hosting auf LiteSpeed oder OpenLiteSpeed läuft. Sie beantwortet: ob Exponential dort läuft, welche Regeln Sie nutzen, was der Code über LiteSpeed weiß und was Sie testen, bevor ein Tarif in den Verkauf geht. Die eigenen Menüs und Einstellungen von LiteSpeed werden hier nicht beschrieben; sehen Sie dafür in Ihrer LiteSpeed-Dokumentation nach.
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.
Inhalt
- Was die Quellen sagen
- Eine Website einrichten
- PHP unter LiteSpeed
- Was Sie vor dem Verkauf eines Tarifs testen
- Velocity auf einem LiteSpeed-Host
- Der Seiten-Cache von LiteSpeed
- Checkliste
Was die Quellen sagen
| Quelle | Aussage |
|---|---|
README.md, Abschnitt „The traditional options“ | LiteSpeed und OpenLiteSpeed haben eine mit .htaccess kompatible Rewrite-Engine, die Apache-Regeln in den meisten Fällen direkt liest |
README.md, Abschnitt darüber, wann ein klassischer Server noch die richtige Antwort ist | wo das Hosting keinen langlebigen Prozess erlaubt, ist Apache oder LiteSpeed mit .htaccess die Antwort |
| Unterstützung von Betriebssystemen, Webserver | LiteSpeed und OpenLiteSpeed: Stufe 3, sollte funktionieren; liest die Rewrite-Regeln von Apache in den meisten Fällen |
| Unterstützung von Betriebssystemen, PHP-SAPIs | LiteSpeed (litespeed, LSAPI): die eigene SAPI von LiteSpeed |
lib/ezutils/classes/ezexecution.php | unter LiteSpeed (lsapi) läuft die Shutdown-Funktion im Verzeichnis der PHP-Binärdatei, das open_basedir nicht erlaubt; der Kernel kommt damit zurecht |
Stufe 3 bedeutet eine begründete Erwartung, kein Testergebnis (Die vier Stufen): Das Projekt hat Exponential in seinen eigenen Tests nicht auf LiteSpeed laufen sehen. „In den meisten Fällen“ ist die ehrliche Formulierung; testen Sie Ihre eigene LiteSpeed-Version.
Eine Website einrichten
Document Root ist das Wurzelverzeichnis der Installation, das Verzeichnis mit
index.php.Rewrite-Regeln: Kopieren Sie die mitgelieferten Regeln, wie bei Apache:
cp .htaccess_root .htaccessoder, als Benutzer der Website,
./console exp:setup:htaccess --apply(.htaccess und config.php von der Konsole einrichten). LiteSpeed Enterprise liest die Datei bei der nächsten Anfrage. OpenLiteSpeed liest nur die Rewrite-Regeln, nur mit eingeschaltetemautoLoadHtaccessund erst nach einem Neustart; setzen Sie die Regeln dort besser in den virtuellen Host (LiteSpeed-Beispiel). Nutzen Sie stattdessen.htaccess_root_static(--static) nur, wenn die Website einen erzeugten statischen Cache ausliefert (Statischer Cache).PHP: 8.0 oder neuer mit den erforderlichen Erweiterungen (Kapitel 2),
memory_limitmindestens 64M (die Untergrenze des Setup-Assistenten; geben Sie der Produktion mehr),date.timezonegesetzt,file_uploadsan (Kapitel 2, Einstellungen der php.ini).Beschreibbare Verzeichnisse:
var/und die Verzeichnisse untersettings/, von einem Benutzer geschrieben (Beschreibbare Verzeichnisse und Berechtigungen).Installieren Sie mit dem Setup-Assistenten im Browser, wenn der Kunde keine Shell hat, oder mit
exp:installoder dem Kickstarter, wo eine Shell verfügbar ist (Ein-Klick-Installer).
PHP unter LiteSpeed
- Die SAPI ist
litespeed(LSAPI). Das PHP für das Web und das PHP für die Kommandozeile werden getrennt konfiguriert und sind oft verschiedene Builds: Geben Sie beiden dieselbe Version und dieselben Erweiterungen (Kapitel 2, PHP für Kommandozeile und Web). - Der optionale Test des Setup-Assistenten möchte
open_basedirleer. Shared Hosting setzt es oft; der Kernel kommt bereits mit dem Shutdown-Verzeichnis von LSAPI unteropen_basedirzurecht, aber andere Funktionen (zum Beispiel der Vorlade-Lauf im Hintergrund, derproc_open,setsidund die PHP-Binärdatei braucht) können dadurch verweigert werden (Caches vorladen, Abschnitt 7). - Exponential erkennt den Server, unter dem es läuft: Der Systembericht (
expSystemReport::serverKind()) ordnet eine SAPI von LiteSpeed alsotherein, und die Debug-Leiste nennt mitServed byden Server, die SAPI und den Port sowienot by Velocity, sodass Support-Mitarbeitende auf einen Blick sehen, was geantwortet hat.
Was Sie vor dem Verkauf eines Tarifs testen
Führen Sie zuerst die vier Prüfungen des Routings aus Webserver und Engines aus. Dann:
| Test | Warum |
|---|---|
Die Startseite, eine Inhaltsseite und /user/login antworten | das Rewrite auf index.php funktioniert |
/api/ erreicht index_rest.php und /content/treemenu erreicht index_treemenu.php | die beiden anderen Front-Controller von .htaccess_root |
| Ein hochgeladenes Bild wird angezeigt, eine hochgeladene Datei lässt sich herunterladen | Speicherpfade und content/download |
.php unterhalb der Wurzel antwortet mit 404 | keine PHP-Datei läuft, weil ihr Pfad angefragt wurde (Kapitel 8) |
| Ein Cronjob läuft aus der Crontab des Kunden | runcronjobs.php unter dem PHP der Kommandozeile (Cronjobs) |
| Ein Leeren des Caches unter Setup > Caches funktioniert | var/ ist für das Web-PHP beschreibbar |
Velocity auf einem LiteSpeed-Host
Velocity ist ein langlebiger Prozess; auf Shared Hosting mit LiteSpeed ist das meist nicht erlaubt. Auf einem LiteSpeed-Server, den Sie
kontrollieren, kann Velocity daneben auf eigenen Ports laufen, und der LiteSpeed-Server kann als Reverse Proxy dienen, in derselben Form
wie mit Apache oder nginx (Velocity neben Apache oder nginx). Dem Proxy muss vertraut werden, und er
muss X-Forwarded-Proto setzen (Kapitel 8, Hinter einem Reverse Proxy).
Der Seiten-Cache von LiteSpeed
LiteSpeed Enterprise und OpenLiteSpeed haben einen Seiten-Cache eingebaut. Für eine Exponential-Website wird er ohne
Plugin und ohne Code eingeschaltet: .htaccess_root enthält einen auskommentierten Block (## >>> LiteSpeed page cache), der anonyme GET- und HEAD-Anfragen ohne Abfragezeichenkette, Sitzungs-Cookie oder is_logged_in-Cookie,
außerhalb der Administrations-, Benutzer-, Shop- und Bearbeitungsansichten, für max-age (120) Sekunden markiert.
Das erste # jeder Zeile des Blocks zu entfernen schaltet ihn ein; Apache und nginx übergehen ihn
(<IfModule LiteSpeed>). Für einen virtuellen Host, die „Zusätzlichen Anweisungen für HTTPS“ von Plesk, die
Include-Dateien von cPanel oder die eigene Konfiguration von DirectAdmin gibt es
litespeed-page-cache.conf; das Cache-Modul von
OpenLiteSpeed steht im OpenLiteSpeed-Beispiel.
Was ein Hoster wissen sollte, bevor er ihn anbietet:
| Frage | Antwort |
|---|---|
| Was auf dem Server da sein muss | ein Cache-Verzeichnis: CacheRoot auf Serverebene (Enterprise) oder storagePath des Cache-Moduls (OpenLiteSpeed) |
| Wer gespeicherte Seiten bekommt | nur anonyme Besucher und Crawler; Redakteure und angemeldete Mitglieder haben ein Sitzungs-Cookie und erreichen immer PHP |
| Was Redakteure nach dem Veröffentlichen sehen | die aktuelle Seite; anonyme Besucher sehen die Änderung nach höchstens max-age Sekunden, weil Exponential LiteSpeed nicht leert |
| Wie man prüft | curl -sI https://example.com/ | grep -i x-litespeed-cache zweimal: miss, dann hit |
| Was es spart | ein Treffer braucht keinen PHP-Prozess und keine Datenbankabfrage; Crawler-Wellen werden billig |
Schritt für Schritt für jedes Control Panel, Leeren, Fehlersuche und Sicherheit: Seiten-Caching mit LiteSpeed und OpenLiteSpeed.
Checkliste
- To do:
.htaccessaus.htaccess_rootkopiert; Document Root ist das Wurzelverzeichnis der Installation. - To do: PHP für Web und Kommandozeile hat dieselbe Version mit denselben Erweiterungen.
- To do: Die Prüfungen des Routings und die Tests oben bestehen auf einem Staging-Konto.
- To do: Die Auswirkungen von
open_basedirauf das Vorladen und andere Läufe im Hintergrund sind bekannt und für den Support dokumentiert. - To do: Nach jedem Upgrade wird
.htaccessaus der neuen.htaccess_rootaufgefrischt (./console exp:setup:htaccesszeigt den Diff;--force --applykopiert nach einer Sicherung). - To do: Mit eingeschaltetem Seiten-Cache: Eine zweite anonyme Anfrage meldet
X-LiteSpeed-Cache: hit, eine angemeldete nie, und die Kunden kennen die Verzögerung vonmax-agenach dem Veröffentlichen (Seiten-Caching mit LiteSpeed und OpenLiteSpeed).
Demomodus auf LiteSpeed. LiteSpeed liest SetEnv in .htaccess wie Apache und gibt es an lsphp weiter: SetEnv EXP_DEMO_MODE 1 in der .htaccess einer öffentlichen Demo schaltet den Demomodus für ihre Web-Anfragen ein, und security.log zeigt dann demo/mode on ... sapi=litespeed. Rezept: eine öffentliche Demo auf LiteSpeed und Plesk betreiben.
Verwandte Seiten
- Apache mit PHP-FPM
- Shared Hosting
- Einen Webserver wählen
- Unterstützung von Betriebssystemen
- .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.