Skip to content

Latest commit

 

History

History
168 lines (110 loc) · 5.16 KB

File metadata and controls

168 lines (110 loc) · 5.16 KB

Wartungsmodus (Maintenance mode) für REDAXO 5.x

Screenshot

Das AddOn ermöglicht es Administratoren, das Frontend und/oder des Backend von REDAXO für Besucher und/oder Redakteure zu sperren. Zum Beispiel bei Wartungsarbeiten oder in der Entwicklungsphase.

Funktionen

Sperren des Frontends

  • Wahl der Authentifizierung: Geheime URL oder Passwort
  • Optionales Sperren des Frontends auch für REDAXO-Benutzer (außer Admins)
  • Optionale Weiterleitung zu einer festgelegten URL, z.B. REDAXO-Login
  • Festlegen des HTTP-Statuscodes (z.B. 503 Service Unavailable)
  • Silent Mode: Nur HTTP-Status ohne HTML-Content (ideal für Staging/Development)
  • Anpassen der Sperrseite durch eigenes Fragment (maintenance/frontend.php)
  • Definieren von Ausnahmen, die dennoch Zugriff erhalten, z.B. für
    • IP-Adressen
    • Hosts
    • YRewrite-Domains (neu in Version 3.0.0)
  • Meldung und Zeitraum zur Ankündigung eines Wartungsfensters definieren (neu in Version 3.0.0)

Sperren des REDAXO-Backends

  • Sperren des REDAXO-Backends für alle Benutzer (außer Admins)

Wartungsmodus ankündigen

Eine Meldung und Zeitraum zur Ankündigung eines Wartungsfensters definieren (neu in Version 3.0.0). Die Ausgabe erfolgt über FriendsOfRedaxo\Maintenance\Maintenance::getAnnouncement(), z.B.

$announcement = FriendsOfRedaxo\Maintenance\Maintenance::getAnnouncement();
if($announcement) {
    echo '<div class="alert alert-danger">'.$announcement.'</div>';
}

Eine für Nutzer*innen hilfreiche Meldung ist beispielsweise:

Geplante Wartungsarbeiten am 01.01.2022 von 00:00 bis 06:00 Uhr. In dieser Zeit ist die Website möglicherweise nicht erreichbar.

Eigene HTML-Seite für den Wartungsmodus

Standardmäßig wird eine einfache HTML-Seite angezeigt, die den Wartungsmodus anzeigt.

Diese kann durch eine eigene HTML-Seite ersetzt werden. Dazu muss im Projekt-AddOn ein Ordner fragments/maintenance angelegt werden. In diesem Ordner kann eine Datei frontend.php mit eigenem HTML-Code erstellt werden. D.h. /src/addons/maintenance/fragments/maintenance/frontend.php

So kann bspw. eigener Text, Logo oder komplett andere Gestaltung erfolgen.

Silent Mode für Staging/Development-Umgebungen

Der Silent Mode ist ideal für Staging-Systeme und Development-Umgebungen, die permanent gesperrt sein sollen:

  • Sendet nur den HTTP-Status-Code (z.B. 503 oder 403)
  • Zeigt keine HTML-Wartungsseite an
  • Verhindert Rückschlüsse auf das verwendete CMS
  • Perfekt für Produktiv-Vorschau-Systeme, die nur nach Login zugänglich sein sollen

Aktivierung: In den erweiterten Einstellungen (Einstellungen) unter "HTTP-Einstellungen" die Option "Silent Mode" aktivieren.

Anzeige des aktuellen Status im REDAXO-Hauptmenü

Der Menüeintrag erhält bei Aktivierung einer der Wartungsmodi ein zusätzliches Tag.

  • Standard: Alle Funktionen sind deaktiviert.
  • F in rotem Tag: Der Wartungsmodus ist für das Frontend aktiv.
  • B in blauem Tag: Der Wartungsmodus ist für das Backend aktiv.

Extensionpoint MAINTENANCE_MEDIA_UNBLOCK_LIST

Über diesen Extension-Point kann ein Array mit Medien übergeben werden, die das Addon nicht sperren soll.

search_it und Wartungs-Modus

Ist die Frontendsperre aktiviert, kann search_it den Index nicht erstellen.

Dazu einfach die aktuelle IP des Servers, auf dem REDAXO installiert ist und von dem aus gecrawlt wird, als Ausnahme hinzufügen. Schon kann search_it wieder crawlen. 🕵🏻

Konsole

Das Addon bietet verschiedene Konsolen-Befehle zur Verwaltung des Wartungsmodus:

Status anzeigen

Zeigt den aktuellen Status aller Wartungsmodi an:

php redaxo/bin/console maintenance:mode status

Frontend-Wartungsmodus

Aktivieren:

php redaxo/bin/console maintenance:mode frontend on

Deaktivieren:

php redaxo/bin/console maintenance:mode frontend off

Backend-Wartungsmodus

Aktivieren:

php redaxo/bin/console maintenance:mode backend on

Deaktivieren:

php redaxo/bin/console maintenance:mode backend off

Alle Modi gleichzeitig

Alle Wartungsmodi (Frontend, Backend und alle Domains) aktivieren:

php redaxo/bin/console maintenance:mode all on

Alle Wartungsmodi deaktivieren:

php redaxo/bin/console maintenance:mode all off

Domain-spezifische Wartung (YRewrite)

Einzelne Domain sperren:

php redaxo/bin/console maintenance:mode domain example.com --lock

Einzelne Domain entsperren:

php redaxo/bin/console maintenance:mode domain example.com --unlock

Legacy-Unterstützung

Die alten Befehle funktionieren weiterhin (steuern nur den Frontend-Modus):

php redaxo/bin/console maintenance:mode on
php redaxo/bin/console maintenance:mode off

Autor

Thomas SkerbisKLXM Crossmedia

Projekt-Lead

Credits

Danke an: