Wartungsmodusoptionen für das Upgrade
In diesem Abschnitt wird beschrieben, wie Sie eine benutzerdefinierte Wartungsseite erstellen, die Benutzern angezeigt wird, während Ihre Magento-Anwendung aktualisiert wird. Das Erstellen einer benutzerdefinierten Seite ist optional, wird jedoch empfohlen, da die Website während eines Teils des Upgrades zugänglich ist.
Das Erstellen einer benutzerdefinierten Seite, zu der Benutzer umgeleitet werden, verhindert jeden Zugriff auf die Website und informiert Ihre Benutzer auch darüber, dass die Website gewartet wird.
root
ausführen. Benutzerdefinierte Wartungsseiten können im Entwicklermodus nicht festgelegt werden.Erstellen der benutzerdefinierten Wartungsseite
Um eine Wartungsseite zu erstellen und zu ihr umzuleiten, erstellen Sie zunächst eine Wartungsseite mit dem Namen:
- Apache:
<web server docroot>/maintenance.html
- nginx:
<magento_root>/maintenance.html
Fügen Sie den folgenden Inhalt hinzu:
<!DOCTYPE html>
<html>
<head>
<title>Temporarily Offline</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
h1
{ font-size: 50px; }
body
{ text-align:center; font: 20px Helvetica, sans-serif; color: #333; }
</style>
</head>
<body>
# Temporarily offline
<p>We're down for a short time to perform maintenance on our site to give you the best possible experience. Check back soon!</p>
</body>
</html>
Benutzerdefinierte Wartungsseite für Apache
In diesem Abschnitt wird beschrieben, wie Sie eine benutzerdefinierte Wartungsseite erstellen und Traffic zu ihr umleiten.
Das Beispiel in diesem Abschnitt zeigt, wie die folgenden Dateien geändert werden können. Dies ist eine Möglichkeit, Ihre Wartungsseite einzurichten:
- Apache 2.4:
/etc/apache2/sites-available/000-default.conf
- Apache 2.2:
/etc/apache2/sites-available/default
(Ubuntu),/etc/httpd/conf/httpd.conf
(CentOS)
So leiten Sie Traffic auf eine benutzerdefinierte Wartungsseite um:
-
Aktualisieren Sie Ihre Apache-Konfiguration, um Folgendes zu tun:
- Gesamten Traffic zur Wartungsseite umleiten
- Zulassungsliste bestimmter IPs, damit ein Administrator die Magento-Software aktualisieren kann.
Auf die Zulassungsliste setzen Im folgenden Beispiel wird 192.0.2.110.
Fügen Sie am Ende Ihrer Apache-Konfigurationsdatei Folgendes hinzu:
code language-none RewriteEngine On RewriteCond %{REMOTE_ADDR} !^192\.0\.2\.110 RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f RewriteCond %{SCRIPT_FILENAME} !maintenance.html RewriteRule ^.*$ /maintenance.html [R=503,L] ErrorDocument 503 /maintenance.html Header Set Cache-Control "max-age=0, no-store"
-
Apache neu starten:
- CentOS:
service httpd restart
- Ubuntu:
service apache2 restart
- CentOS:
-
Geben Sie den folgenden Befehl ein:
code language-bash touch <web server docroot>/maintenance.enable
-
Testen Sie die Site, um sicherzustellen, dass sie korrekt funktioniert.
-
Löschen Sie
maintenance.enable
nach Abschluss des Upgrades.
Benutzerdefinierte Wartungsseite für nginx
In diesem Abschnitt wird beschrieben, wie Sie eine benutzerdefinierte Wartungsseite erstellen und Traffic zu ihr umleiten.
So leiten Sie Traffic auf eine benutzerdefinierte Wartungsseite um:
-
Verwenden Sie einen Texteditor, um die nginx-Konfigurationsdatei zu öffnen, die Ihren Serverblock enthält.
-
Fügen Sie dem Serverblock Folgendes hinzu (
server
wird nur der Übersichtlichkeit halber angezeigt; fügen Sie keinen zweiten Serverblock hinzu).Auf die Zulassungsliste setzen Mit der folgenden IP-Adresse 192.0.2.110 und 192.0.2.115 Sie auf einem System, auf dem Magento in
/var/www/html/magento2
installiert ist:code language-conf server { listen 80; set $MAGE_ROOT /var/www/html/magento2; set $maintenance off; if (-f $MAGE_ROOT/maintenance.enable) { set $maintenance on; } if ($remote_addr ~ (192.0.2.110|192.0.2.115)) { set $maintenance off; } if ($maintenance = on) { return 503; } location /maintenance { } error_page 503 @maintenance; location @maintenance { root $MAGE_ROOT; rewrite ^(.*)$ /maintenance.html break; } include /var/www/html/magento2/nginx.conf; }
-
Geben Sie den folgenden Befehl ein:
code language-bash touch <magento_root>/maintenance.enable
-
Laden Sie die nginx-Konfiguration neu:
code language-bash service nginx reload
-
Testen Sie die Site, um sicherzustellen, dass sie korrekt funktioniert.
-
Löschen oder benennen Sie
maintenance.enable
nach Abschluss des Upgrades um -
Laden Sie die nginx-Konfiguration neu:
code language-bash service nginx reload