Eine Website bereitstellen
Diese Seite richtet sich an Entwickler, die ein Projekt vom Repository auf Staging und Live bringen und nach dem Start Änderungen ausliefern. Die Regel hinter jedem Schritt: Der Server muss den neuen Code ausführen, bevor die Caches geleert werden, die fertige Seiten halten, sonst wird alte Ausgabe erneut zwischengespeichert.
Inhalt
- Wählen, wie die Website ausgeliefert wird
- Was eine Bereitstellung überträgt
- Einstellungen je Umgebung
- Die erste Bereitstellung
- Eine PHP-Änderung ausliefern
- Templates, Styles und Einstellungen ausliefern
- Wartungsmodus
- Die Konfiguration auf bereitgestellten Websites sperren
- Nach jeder Bereitstellung
Wählen, wie die Website ausgeliefert wird
| Server | Wann |
|---|---|
Exponential Velocity (Engine qbix) | die empfohlene Engine: ein PHP-Anwendungsserver, der mit Exponential ausgeliefert wird, mit persistenten Workern, eigenem Antwort-Cache und HTTPS |
| FrankenPHP | die produktionsreife Alternative |
| Apache oder nginx mit PHP-FPM | wo der Stack des Hosts feststeht |
Jeder mit seiner Einrichtung: Exponential bereitstellen und Einen Webserver wählen.
Was eine Bereitstellung überträgt
| Kommt aus | Überträgt |
|---|---|
| Composer und Git | den Kernel und die mitgelieferten Erweiterungen in den Versionen Ihrer composer.json und composer.lock |
| Ihren Repositorys | Ihre Erweiterungen: Design, Templates, Einstellungen, Code, Pakete |
| Dem Rechner selbst | settings/override/ (Datenbank, E-Mail, Hosts), config.env.php, var/ (Speicher, Caches, Logs) |
| Der Datenbank | Inhalte, Klassen, Benutzer, Layouts |
Inhalte werden nie von der Entwicklung auf Live bereitgestellt: Redakteure erstellen sie auf Live. Klassen und Layouts gelangen über Pakete und Übertragungsdateien auf Live, einmal angewendet (Seitenpakete und Installer, Layouts für CMS-Entwickler).
Einstellungen je Umgebung
EXP_ENV benennt in config.env.php (kopiert aus config.env.php.example, außerhalb der Versionsverwaltung) die
Umgebung eines Rechners, und jede Einstellungsdatei kann eine Variante dafür haben, etwa
settings/override/site.ini.test.append.php. E-Mail-Transport, Adressen der Website und Debug-Einstellungen
unterscheiden sich dann je Rechner, ohne Änderungen nach jeder Bereitstellung
(Einstellungen je Umgebung).
Die erste Bereitstellung
- Prüfen Sie den Rechner: PHP-Version und -Erweiterungen, beschreibbare Verzeichnisse, Datenbank (Anforderungen auf einen Blick).
- Holen Sie den Code (
composer installaus Ihrem Projekt), fügen Sie Ihre Erweiterungen hinzu, schreiben Siesettings/override/. - Installieren oder importieren Sie die Datenbank, dann Ihre Pakete und Layouts.
- Erzeugen Sie die Autoloads, leeren Sie die Caches, starten Sie den Server.
- Planen Sie die Cronjobs ein (Cronjobs) und richten Sie Sicherungen ein (Was zu sichern ist).
- Gehen Sie die Checkliste für den Projektstart durch.
Eine PHP-Änderung ausliefern
Ein Befehl erledigt jeden Schritt in der richtigen Reihenfolge und hält beim ersten Fehler an:
./console exp:velocity deploy --dry-run --allow-root-user # what it would do
./console exp:velocity deploy --allow-root-user # the usual case
./console exp:velocity deploy --kernel --allow-root-user # a kernel class was added or renamedEr erzeugt die Autoloads neu, leert die INI- und Template-Caches, lässt PHP-FPM und Velocity den neuen Code ausführen,
leert dann die Inhalts- und Antwort-Caches und wärmt die ersten Seiten vor. Optionen wie --no-fpm, --no-velocity
und --packer (leert zusätzlich gepackte Skripte und Styles) erklärt
Eine PHP-Änderung mit einem Befehl ausliefern und für
Hoster Änderungen bereitstellen.
Templates, Styles und Einstellungen ausliefern
| Änderung | Schritte |
|---|---|
| Ein vorhandenes Template | ./console exp:cache clear --id=template --allow-root-user, dann ./console exp:velocity cache clear --apply --allow-root-user |
| Ein neues Template oder eine neue Override-Regel | ini, template-override und content leeren, dann den Cache von Velocity |
| Ein Stylesheet oder Skript | mit --packer bereitstellen oder die Caches für Packer und Template-Blöcke leeren; fügen Sie Asset-Links nie ?v= hinzu |
| Eine INI-Datei | --clear-tag=ini, Velocity neu starten |
Wenn unklar ist, welcher Cache, siehe Caching für CMS-Entwickler.
Wartungsmodus
Für Änderungen, bei denen die Website geschlossen sein muss (eine Datenbankaktualisierung, ein großer Import):
./console exp:maintenance on --allow-root-user
./console exp:maintenance status --allow-root-user
./console exp:maintenance off --allow-root-userphp bin/php/maintenance.php on --message="Back at 06:00" --until=2h setzt eine Nachricht und ein erwartetes Ende; die
Administration bleibt erreichbar. Setup > Maintenance tut dasselbe im Browser
(Wartungsmodus).
Die Konfiguration auf bereitgestellten Websites sperren
Wenn Einstellungen unter Versionsverwaltung liegen, gingen Änderungen in der Administration bei der nächsten
Bereitstellung verloren. Mit site.ini [ConfigurationSettings] ManagedByDeployment=enabled im
Administrations-Siteaccess sind Einstellungseditor, Template-Editor, Aktivierung von Erweiterungen, Paketinstallation
und die Code-Generatoren im Browser geschlossen; Kommandozeilenskripte und die Bereitstellung schreiben weiterhin
(Konfiguration, die die Bereitstellung verwaltet).
Nach jeder Bereitstellung
- Die Startseite und einige tiefe Seiten antworten mit 200 (
curl -sI https://www.example.com/). ./console exp:velocity statusoder der Status des Webservers zeigt die erwarteten Prozesse../console exp:cache status --allow-root-userzeigt die erwarteten Ebenen.var/log/error.loghat keine neuen Fehler.- Die Cronjobs laufen weiterhin.
Verwandte Seiten
- Velocity für Hoster
- Aktualisieren
- Leistung
- 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.