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

Anwendungsserver

Die drei Wege, auf denen Exponential ausgeliefert wird - ein Webserver mit PHP-FPM, Exponential Velocity mit persistenten Workern und einem Antwort-Cache und FrankenPHP im klassischen Modus - verglichen nach…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/software-engineers/application-servers.md

On this page

This page is a translation. Read the English original

Anwendungsserver

Diese Seite richtet sich an Ingenieure, die wählen, wie Exponential ausgeliefert wird, oder wissen müssen, welcher Laufzeitumgebung ihr Code begegnet. Seit 6.0.15 liefert Exponential einen eigenen Anwendungsserver mit, Exponential Velocity, und steuert drei Engines mit demselben Befehl und derselben Einstellungsdatei. Maßgeblich ist Velocity-Engines.

Inhalt

  1. Die Möglichkeiten
  2. Verglichen
  3. Was die Wahl für Code bedeutet
  4. Die Engines steuern
  5. Die Wahl

Die Möglichkeiten

  • Ein Webserver mit PHP-FPM (Apache, nginx und die anderen Server, die das README nennt). Jede Anfrage startet PHP aus einem sauberen Zustand. Exponential läuft hinter jedem Webserver, der eine URL auf index.php umschreiben kann.
  • Exponential Velocity, Engine qbix. Ein in PHP geschriebener Webserver: Der Elternprozess lädt die Anwendung einmal und forkt persistente Worker, die viele Anfragen bedienen und nach jeder zurückgesetzt werden; ein Antwort-Cache kann wiederholte öffentliche Anfragen beantworten, bevor ein Worker eingesetzt wird. Ab 6.0.15 verlangt ihn composer.json (se7enxweb/exponential-velocity), jede Installation hat ihn also. Das Projekt nennt ihn die empfohlene Engine für jede Phase (Velocity ist Teil von Exponential 6.0.15).
  • FrankenPHP, Engine frankenphp. Caddy mit eingebautem PHP, eine Binärdatei, von exp:velocity install heruntergeladen und gegen eine festgelegte SHA-256-Prüfsumme geprüft. PHP läuft im klassischen Modus (ein sauberer Zustand je Anfrage); der Worker-Modus wird absichtlich nicht angeboten (FrankenPHP).
  • Der eingebaute Server von PHP, Engine php: der mitgelieferte Standard in velocity.ini, weil er keine Installation braucht. Nur für die Entwicklung.

Verglichen

PHP-FPMVelocity (qbix)FrankenPHPphp -S
Rolle im Projekttraditionell, voll unterstütztempfohlen, jede Phaseproduktionsreife Alternativenur Entwicklung
Zustand zwischen Anfragenkeinerein persistenter Worker, nach jeder Anfrage zurückgesetztkeiner (klassischer Modus)keiner
Antwort-Cacheneinja ([CacheSettings])noch nichtnein
TLS und HTTP/2die Ihres Webserversjajanein
Sanftes Neuladensystemctl reload des FPM-Diensteserneutes exec, Socket bleibtNeuladen der KonfigurationNeustart
Eine Klassenänderung ist live nachNeuladen von FPM (OPcache)exp:velocity restart oder deployseinem NeuladenNeustart

Was die Wahl für Code bedeutet

Derselbe Code läuft unter allen, und die Regel des Kernels ist, dass jede Änderung unter PHP-FPM, Velocity und FrankenPHP weiter funktionieren muss. Was das persistente Modell hinzufügt:

  • statische Eigenschaften, Globals und Registrierungen überdauern von einer Anfrage zur nächsten, sofern sie nicht zurückgesetzt werden (Nebenläufigkeit, Statics und langlebige Prozesse);
  • exit und die beenden über eine Kompatibilitätsschicht die Anfrage, nicht den Worker; Kernel-Code verwendet eZExecution::cleanExit();
  • ein Worker, der vor einer Bereitstellung gestartet wurde, kennt eine neue Klasse erst nach seinem Neustart.

Die Engines steuern

php bin/php/console exp:velocity status                          # every engine: role, state, URL
php bin/php/console exp:velocity start                           # the default engine
php bin/php/console exp:velocity graceful                        # reload workers one at a time
php bin/php/console exp:velocity deploy --dry-run --allow-root-user

settings/velocity.ini [ServerSettings] Engine wählt die Standard-Engine (php mitgeliefert, qbix empfohlen, frankenphp). Die Verben sind für jede Engine dieselben: start, stop, graceful, restart, kill, status, deploy, command, config, install.

Die Wahl

SituationWahl
Eine neue Website, jede PhaseVelocity, wie das Projekt empfiehlt
Ein Host, der nur PHP-FPM anbietetPHP-FPM hinter seinem Webserver; alles funktioniert, ohne den Antwort-Cache
Eine geprüfte Binärdatei mit TLS und HTTP/2, ohne persistenten ZustandFrankenPHP
Code, dem Sie in einem langlebigen Prozess noch nicht vertrauenPHP-FPM oder FrankenPHP, bis er geprüft ist, oder der Modus forkPerRequest von Velocity

Messen Sie auf Ihren eigenen Seiten, bevor Sie entscheiden (Leistungsmessung und Benchmarks).

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