Aktivieren oder Deaktivieren des Wartungsmodus
Das folgende Handbuch bezieht sich auf eine Seite mit dem Standard-Wartungsmodus. Wenn Sie eine benutzerdefinierte Wartungsseite verwenden müssen, lesen Sie das Thema Erstellen der benutzerdefinierten Wartungsseite .
Adobe Commerce verwendet den Wartungsmodus, um das Bootstrapping zu deaktivieren. Die Deaktivierung des Bootstrapping ist hilfreich, wenn Sie Ihre Site verwalten, aktualisieren oder neu konfigurieren.
Das Programm erkennt den Wartungsmodus wie folgt:
- Wenn
var/.maintenance.flag
vorhanden ist, ist der Wartungsmodus aktiviert und die Anwendung gibt eine 503-Wartungsseite zurück. - Wenn
var/.maintenance.ip
vorhanden ist und die Client-IP einem der IP-Adresseinträge in dieser Datei entspricht, wird die Wartungsseite für die Anfrage ignoriert.
Installieren des Programms
Bevor Sie diesen Befehl zum Aktivieren oder Deaktivieren des Wartungsmodus verwenden, müssen Sie die Anwendung installieren.
Aktivieren oder Deaktivieren des Wartungsmodus
Verwenden Sie den CLI-Befehl magento maintenance
, um den Wartungsmodus zu aktivieren oder zu deaktivieren.
Befehlsverwendung:
bin/magento maintenance:enable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:disable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:status
Die Option --ip=<ip address>
ist eine IP-Adresse, die vom Wartungsmodus ausgenommen werden soll (z. B. Entwickler, die die Wartung durchführen). Verwenden Sie die Option mehrmals, um mehrere IP-Adressen im selben Befehl auszuschließen.
--ip=<ip address>
und magento maintenance:disable
wird die Liste der IPs für die spätere Verwendung gespeichert. Um die Liste der ausgenommenen IP-Adressen zu löschen, verwenden Sie magento maintenance:enable --ip=none
oder lesen Sie den Abschnitt Liste der ausgenommenen IP-Adressen beibehalten.Der Befehl bin/magento maintenance:status
zeigt den Status des Wartungsmodus an.
So aktivieren Sie beispielsweise den Wartungsmodus ohne IP-Adressenausnahmen:
bin/magento maintenance:enable
So aktivieren Sie den Wartungsmodus für alle Clients außer 192.0.2.10 und 192.0.2.11:
bin/magento maintenance:enable --ip=192.0.2.10 --ip=192.0.2.11
Nachdem Sie die Anwendung in den Wartungsmodus versetzt haben, müssen Sie alle Verbraucherprozesse in der Nachrichtenwarteschlange stoppen.
Eine Möglichkeit, diese Prozesse zu finden, besteht darin, den Befehl ps -ef | grep queue:consumers:start
auszuführen und dann den Befehl kill <process_id>
für jeden Verbraucher auszuführen. Wiederholen Sie diese Aufgabe in einer Umgebung mit mehreren Knoten für jeden Knoten.
Liste der ausgenommenen IP-Adressen beibehalten
Um die Liste der ausgenommenen IP-Adressen zu verwalten, können Sie entweder die Option [--ip=<ip list>]
in den vorherigen Befehlen verwenden oder Folgendes verwenden:
bin/magento maintenance:allow-ips <ip address> .. <ip address> [--none]
Die Syntax <ip address> .. <ip address>
ist eine optionale Liste mit durch Leerzeichen getrennten IP-Adressen, die ausgeschlossen werden sollen.
Die Option --none
löscht die Liste.
Multi-Store-Setups
Wenn Sie mehrere Stores mit jeweils unterschiedlichem Layout und lokalisierten Inhalten einrichten möchten, übergeben Sie den Parameter $_GET['skin']
an den vorgesehenen Prozessor.
Im folgenden Beispiel wird eine Fehlervorlagendatei vom Typ 503
verwendet, die lokalisierten Inhalt erfordert.
Der Konstruktor der Error_Processor
-Klasse akzeptiert einen skin
-GET-Parameter, um das Layout zu ändern:
if (isset($_GET['skin'])) {
$this->_setSkin($_GET['skin']);
}
Dies kann auch zu einer Neuschreibungsregel in der Datei .htaccess
hinzugefügt werden, die einen Parameter skin
an die URL anhängt.
Parameter $_GET['skin']
So verwenden Sie den Parameter skin
:
-
Überprüfen Sie, ob die
.maintenance.flag
vorhanden ist. -
Notieren Sie die Hostadresse, die auf
HTTP_HOST
verweist, oder jede andere Variable, z. B. ENV-Variablen. -
Überprüfen Sie, ob der Parameter
skin
vorhanden ist. -
Legen Sie den Parameter mithilfe der unten stehenden Neuschreibungsregeln fest.
Im Folgenden finden Sie einige Beispiele für Neuschreibungsregeln:
- RewriteCond
%{DOCUMENT_ROOT}/var/.maintenance.flag -f
- RewriteCond
%{HTTP_HOST} ^sub.example.com$
- RewriteCond
%{QUERY_STRING} !(^|&)skin=sub(&|$)
[NC] - RewriteRule
^ %{REQUEST_URI}?skin=sub
[L]
- RewriteCond
-
Kopieren Sie die folgenden Dateien:
pub/errors/default/503.phtml
bispub/errors/sub/503.phtml
pub/errors/default/css/styles.css
bispub/errors/sub/styles.css
-
Bearbeiten Sie diese Dateien, um lokalisierten Inhalt in der Datei
503.phtml
und benutzerdefinierten Stil in der Dateistyles.css
bereitzustellen.Stellen Sie sicher, dass Ihre Pfade auf das Verzeichnis
errors
verweisen. Der Ordnername muss mit dem URL-Parameter übereinstimmen, der inRewriteRule
angegeben ist. Im vorherigen Beispiel wird das Verzeichnissub
verwendet, das als Parameter in der VariablenRewriteRule
(skin=sub
) angegeben ist.