Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Caddy

Was die Quellen von Exponential über Caddy sagen, die zwei Wege, es zu nutzen (FrankenPHP, also Caddy mit eingebautem PHP, oder Caddy mit PHP-FPM), das Routing, das jede Caddy-Einrichtung nachbilden muss, und die…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/servers/caddy.md

On this page

This page is a translation. Read the English original

Caddy

Diese Seite ist für Systemadministratoren bei Hosting-Unternehmen, die Caddy nutzen oder nutzen wollen. Sie beantwortet: wie Caddy mit Exponential zusammenhängt, welchen der zwei Wege mit Caddy das Projekt am besten unterstützt, welches Routing eine Caddy-Konfiguration umsetzen muss und was die Quellen bieten und was nicht.

Warnung .htaccess bremst jede Anfrage. Sind .htaccess-Dateien erlaubt (AllowOverride alles außer None), 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 None im 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 auch staticcache_offload.conf), setzen Sie AllowOverride None, führen Sie apachectl configtest aus, 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

  1. Zwei Wege, Caddy zu nutzen
  2. FrankenPHP: Caddy, von Exponential verwaltet
  3. Caddy mit PHP-FPM
  4. Das Routing, das jede Caddy-Konfiguration braucht
  5. HTTPS
  6. Checkliste

Zwei Wege, Caddy zu nutzen

FrankenPHP (über exp:velocity)Caddy mit PHP-FPM
Was es istCaddy mit eingebautem PHP, als eine Binärdatei mit geprüfter Prüfsumme heruntergeladen (README.md)der Webserver Caddy, der Anfragen an einen PHP-FPM-Pool weitergibt
Statusproduktionsreife alternative EngineStufe 3, sollte funktionieren (Unterstützung von Betriebssystemen)
Konfigurationein Caddyfile, bei jedem Start aus settings/velocity.ini erzeugtein Caddyfile, das Sie schreiben
Vom Projekt ausgeliefertja, gesteuert über exp:velocitykeine Konfiguration wird ausgeliefert

Für einen Hoster, der Caddy mag, ist FrankenPHP der Weg, den das Projekt dokumentiert und für den es Konfiguration erzeugt. Lesen Sie FrankenPHP.

FrankenPHP: Caddy, von Exponential verwaltet

exp:velocity schreibt var/vc/frankenphp/run/Caddyfile bei jedem start, graceful und restart, prüft es mit frankenphp validate, bevor es das alte ersetzt, und steuert den Server über die Admin-API von Caddy auf einem Socket, der nur dem Eigentümer gehört (Kapitel 8, FrankenPHP). Der Kopf der Datei sagt, dass sie jedes Mal neu geschrieben wird; bearbeiten Sie sie also nie, sondern setzen Sie Ihre eigenen Direktiven in eine Datei, die [FrankenPHPSettings] SiteInclude nennt und die in jeden Site-Block importiert wird (FrankenPHP als Web-Engine von Exponential).

php bin/php/console exp:velocity ctl caddyfile --engine=frankenphp --allow-root-user   # print the generated Caddyfile
php bin/php/console exp:velocity ctl validate  --engine=frankenphp --allow-root-user   # write and validate it

Caddy mit PHP-FPM

Die Quellen beschreiben diese Einrichtung in einer Zeile: php_fastcgi und ein Rewrite auf index.php (Unterstützung von Betriebssystemen), und die Tabelle der klassischen Server im README nennt rewrite, handle und try_files von Caddy. Mit Exponential wird kein Caddyfile für PHP-FPM ausgeliefert; die Konfiguration schreiben und testen also Sie, wie bei nginx.

Warnung Nutzen Sie keine Direktive, die jede vorhandene Datei unterhalb der Wurzel ausliefert. Die Integration von FrankenPHP meidet bewusst php_server von Caddy, weil dessen Standard settings/*.ini, die SQLite-Datenbank und Quellen des Kernels ausliefern würde (FrankenPHP, Das erzeugte Caddyfile). Was Sie auch für PHP-FPM schreiben, es darf nur die aufgeführten Asset-Pfade als Dateien senden und alles andere an einen Front-Controller. Prüfen Sie in der Dokumentation Ihrer Caddy-Version, wie deren PHP-Direktiven vorhandene Dateien behandeln.

Ein praktischer Anfang: Erzeugen Sie das Caddyfile von FrankenPHP auf einer Testmaschine mit exp:velocity ctl caddyfile --engine=frankenphp, lesen Sie seinen Block route und bilden Sie dieselben Matcher vor Ihrem PHP-FPM-Handler nach.

Das Routing, das jede Caddy-Konfiguration braucht

Caddy liest .htaccess nie, ./console exp:setup:htaccess --apply ändert für Caddy also nichts; das Routing steht im Caddyfile (.htaccess und config.php von der Konsole einrichten). Das erzeugte Caddyfile setzt .htaccess_root so um (FrankenPHP, Was es enthält):

SchrittMatcherAktion
1@static: expVelocity::STATIC_PATHS und nicht expVelocity::NEVER_STATICdie Datei ausliefern, mit Cache-Control, wenn StaticMaxAge über 0 liegt
2@rest: ^/(api/|index_rest\.php)auf /index_rest.php umschreiben
3@treemenu: ^/([^/]+/)?content/treemenuauf /index_treemenu.php umschreiben
4@front: alles andereauf /index.php umschreiben

STATIC_PATHS trifft Stylesheets, Bilder, Skripte und Schriften von Designs und Erweiterungen, share/icons/, die Icon-Themes der Erweiterungen (extension/<name>/icons/, Bilder mit genau einer Dateiendung), var/*/storage/images, gespeicherte Originalbilder, gespeicherte PDF-Exporte, die Caches public und texttoimage, Paketstile, var/storage/packages/, favicon.ico, robots.txt, index.js, sw.js und w3c/p3p.xml. NEVER_STATIC ist (?i)(\.(php\d?|phtml|phar)$|/\.): Keine PHP-Quelle und keine Datei mit Punkt wird je als Datei ausgeliefert, auch nicht unterhalb eines Asset-Verzeichnisses. Beide Konstanten stehen in kernel/classes/expvelocity.php.

HTTPS

Das README erwähnt das automatische HTTPS, das Caddy von Haus aus mitbringt. In der Integration von FrankenPHP ist es ausgeschaltet (auto_https off): Die Einstellungen von Velocity entscheiden über das Zertifikat, entweder [HTTPSSettings] Certificate und Key oder ein für die Maschine erstelltes selbstsigniertes Zertifikat. Bei einem eigenständigen Caddy mit PHP-FPM ist die Verwaltung der Zertifikate Sache von Caddy; folgen Sie seiner Dokumentation. Wer auch immer TLS beendet, Exponential muss erfahren, dass die Anfrage HTTPS war: direkt (HTTPS an PHP übergeben) oder von einem vertrauenswürdigen Proxy (Varnish und Reverse Proxys).

Checkliste

  • To do: Zwischen FrankenPHP (erzeugte Konfiguration) und Caddy mit PHP-FPM (eigene Konfiguration) entschieden.
  • To do: Für PHP-FPM: die Routing-Tabelle oben nachgebildet; nichts außerhalb der Asset-Liste wird als Datei ausgeliefert.
  • To do: Die vier Prüfungen des Routings aus Webserver und Engines bestehen.
  • To do: Die Einrichtung wurde auf Staging getestet, bevor sie verkauft wurde (Stufe 3).
  • To do: Die Upgrade-Checkliste enthält den Vergleich Ihrer Regeln mit .htaccess_root.

Verwandte Seiten

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.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x