Shopware 6 einfach und sicher updaten – welche Möglichkeiten gibt’s da und was gibt es zu beachten? Genau darum solls im heutigen Tutorial gehen.
Ich zeige dir dabei Schritt für Schritt alle 3 zur Verfügung stehende Update-Möglichkeiten. Außerdem erfährst du, wie du dein System am besten auf das Update vorbereitest und wie du ein Backup durchführen kannst, um auf der sicheren Seite zu sein.
Update-Übersicht
Vor dem Update solltest du zunächst einen Blick auf die Update-Details im Admin-Bereich werden.
Dorthin gelangst du entweder über den "Update öffnen"-Button des Update-Popups, das du beim Anmelden im Admin-Bereich angezeigt wird, falls ein Update zur Verfügung steht. Oder indem du zu "Einstellungen" > "System" > "Shopware-Update" navigierst und dort auf "Nach Updates suchen" und im folgenden Dialog auf "Jetzt zum Update" klickst.
Die Update-Übersicht ist in 3 Bereiche unterteilt, die wir uns vor dem Update anschauen sollten: Changelog, Systemanforderungen und Erweiterungskompatibilität.
SEO-ready Premium-Theme vom Orangebytes
Flexibel anpassbar
SEO-ready - optimierter Quellcode
12 Monate Plugin-Support inklusive
30 Tage kostenlos testen - ohne Risiko
Chalgelog
Im Changelog sehen wir, was sich beim Update getan hat. Also auf welche Verbesserungen, neuen Features, Bugfixes etc. wir uns freuen können. An dieser Stelle kann man abwägen, ob man das Update überhaupt installieren, oder ggf. aus Kostengründen beispielsweise auf das nächste wartet.
Es kann außerdem sein, dass sich, gerade bei größeren Versionssprüngen, essenzielle Bestandteile des Shopsystems ändern oder auch bestehende Module restrukturiert werden. Es bietet sich daher auf jeden Fall an, sich zumindest einen Überblick zu verschaffen, damit man hinterher weniger Überraschungen erlebt.
Systemanforderungen
In den Systemanforderungen sehen wir, ob unser System entsprechend auf das Update vorbereitet ist.
Bei größeren Versionssprüngen kann es vorkommen, dass sich beispielsweise die minimale unterstützte PHP-Version ändert. Seltener auch die MySQL-Version. Die beiden anderen Punkte - also ob Schreibrechte vorhanden sind und ob eine Updage-Fähige Subscription vorliegt, sollten im Grunde immer gegeben sein.
Falls an der Stelle eins der Signale auf der rechten Seite nicht mehr grün leuchtet, solltet ihr das vor dem Update dringend beheben.
Erweiterungskompatiblität
Unter Erweiterungskompatibilität sehen wir, ob und wie kompatibel unsere installierten Apps, Plugins und Themes mit der neuen Version sind.
Es bietet sich definitiv an, vorbereitend auf ein Shopware-Update auch direkt alle Erweiterungen zu aktualisieren. Im Nachgang solltest du nochmals sicherstellen, dass es zu keinen Konflikten kommt.
Es kommt in der Praxis häufig vor, dass Plugins nicht gleich am ersten Tag, nachdem Shopware ein neues Update veröffentlicht, ein Kompatibilitätsupdate hochladen. Je nach Komplexität benötigen Plugin-Hersteller ein paar Tage oder sogar Wochen. Es ist daher wichtig einen idealen Zeitpunkt abzupassen.
Backup durchführen
Im Zuge eines Updates kann natürlich auch etwas schieflaufen. Sei es, dass es nicht absehbare Kompatibilitätsprobleme gibt, es zu einem Fehler bei Schreibvorgängen kommt, oder in seltenen Fällen auch, dass es in der neueren Version einen Bug oder eine Verhaltensweise gibt, womit der Betrieb des Shops ungünstig ist.
Daher machen wir immer ein sauberes Backup, bevor wir zum eigentlichen Update kommen, damit wir den Stand notfalls einfach wiederherstellen können und wir kein Risiko haben, außer vielleicht eine Downtime von wenigen Minuten.
Es gibt verschiedene Wege ein Shopware Backup zu erstellen. Beispielsweise gibt es Plugins, mit denen ihr mit wenigen Klicks ein Backup machen könnt. Ich empfehle da einfach mal im Shopware Store nach "Backup" zu suchen und den Filter auf "Shopware 6" zu stellen. Da werdet ihr auf jeden Fall fündig.
Shopware Verzeichnis- und Datenbank-Backup per Konsole
In unserem heutigen Beispiel zeige ich dir, wie du das Backup einfach und schnell per Konsole machen kannst – auch ohne kostenpflichtiges Plugin.
Zunächst benötigen wir ein Terminal, mit dem wir uns per SSH mit unserem Webserver verbinden können. Auf Mac und Linux PCs, sollte es über das integrierte Terminal sehr gut funktionieren. Auch einige Entwicklungsumgebungen, wie PHPStorm oder Visual Studio Code verfügen über SSH-fähige Terminals oder sind per Plugin nachrüstbar. Eine Alternative ist auch das kostenlose SSH-Tool PuTTY.
Die Zugangsdaten findet ihr in der Regel in der Oberfläche eures Hosters.
Sind wir angemeldet, navigieren wir ins übergeordnete Verzeichnis unseres Onlineshops. Im Fall unseres Beispiels liegt unser Shop im Ordner "/var/www/html/demoshop/". Wir begeben uns also in den Ordner "/var/www/html/".
Wir benötigen für das Backup im Grunde nur 2 Befehle: mysqldump (für die Sicherung der Datenbank) und zip (für die Dateien). Beginnen wir mit der Datenbank.
Wie bereits erwähnt benutzen wir den Befehl mysqldump.
mysqldump -h hostName -u userName -p dbName > backup.sql
Den Platzhalter "hostName" ersetzt ihr durch euren Hostnamen oder IP der Datenbank, "dbUser" durch euren Benutzetnamen und "dbName" durch den Datenbanknamen. Die Datei selbst, könnt ihr benennen, wie ihr möchtet. Ich habe für das Beispiel einfach backup.sql gewählt.
Der Parameter -p sorgt dafür, dass ihr in der nächsten Zeile euer Passwort eingeben könnt.
Falls es bei eurem Hosting zu Rechteproblemen mit Tablespaces kommen sollte, könnt ihr einfach die Option "--no-tablespaces" vor dem Datenbanknamen ergänzen.
mysqldump -h hostName -u userName -p --no-tablespaces dbName > backup.sql
Wenn nun alles geklappt hat, solltet euch eine neue .sql-Datei zur Verfügung stehen, die wir jederzeit per Konsole wieder einspielen können.
Je nach Datenmenge und anderer Voraussetzungen, können unterschiedlich Operationen, wie beispielsweise rsync für die Sicherung unseres Shopware-Verzeichnisses sinnvoll sein. Für ein simples Backup nutzen wir in unserem heutigen Beispiel den zip Befehl, um aus unserem Zielordner ein Zip-Archiv zu erstellen.
mysql -h hostName -u userName dbName < backup.sql
Ist der Vorgang abgeschlossen erhalten wir eine .zip-Datei, die unseren Shop-Ordner enthält.
Nun haben wir eine .mysql- und eine .zip-Datei. Wenn nun beim Update etwas schief laufen sollte und wir die Änderungen Rückgängig machen möchten, müssen wir nichts weiter tun, als unseren Shopware-Ordner mit dem aus dem Zip-Archiv und die Datenbank mit der aus dem MySQL-Dump zu ersetzen.
Jetzt können wir sicher und mit innerem Seelenfrieden mit unserem Update fortfahren.
Plugins & Themes aktualisieren
Wie bereits angesprochen sollten wir nun unsere Erweiterungen, also Themes und Plugins, aktualisieren. In den meisten Fällen reicht es aus, dass wir auf die jeweils aktuellste Version updaten. Das können wir ganz einfach über den Admin-Bereich machen.
Benötigen wir eine spezifische Plugin-Version, weil es beispielsweise zu Kompatibilitätsproblemen kommt, so finden wir im Shopbetreiberbereich des Shopware Accounts unter https://account.shopware.com die vollständige Versionshistorie unserer Plugins.
Im Admin-Bereich unseres Shops navigieren wir zur Übersichtsseite der Erweiterungen unter "Erweiterungen" > "Meine Erweiterungen".
Hier sehen wir bereits durch den "Aktualisieren"-Link neben einem Plugin, ob eine Aktualisierung zur Verfügung steht. Durch Klick auf den Link können wir das Plugin aktualisieren. Voraussetzung bei kostenpflichtigen Plugins ist, dass eine aktive Subscription das jeweilige Plugin zur Verfügung steht. Wenn das nicht der Fall ist, oder eine abläuft, werdet ihr in der Regel rechtzeitig vorher benachrichtig.
Ich empfehle vor dem Update jedes einzelne Plugin zu aktualisieren und im Nachgang erneut die Kompatibilität auf der Update-Detailseite zu prüfen.
Nun da wir ein Backup erstellt und unsere Erweiterungen aktualisiert und auf Kompatibilität geprüft haben, kommen wir nun zum eigentlichen Update.
Wie bereits erwähnt gibt es da drei Möglichkeiten an der Zahl.
Methode 1: Automatisches Update über Admin-Oberfläche
Zunächst gibt es die Möglichkeit, das System auf einfachem Wege, über die Admin-Oberfläche auf die neuste Shopware-Version zu aktualisieren.
Zum Update gelangt ihr im Admin-Bereich entweder über das Update-Popup, wenn ihr auf "Update öffnen" klickt, oder über "Einstellungen" > "System" > "Shopware-Update".
Auf der sich öffnenden Seite könnt ihr das Feld "Update-Code" zunächst einfach ignorieren. Beim Feld "Update-Channel" sollte bei einem Shop im Produktivmodus immer "Stable" eingestellt sein.
Wir klicken also auf den Button "Nach Updates suchen" und wenn ein Update verfügbar ist, erhalten wir einen Dialog und wir wählen "Jetzt zum Update".
Nun sind wir wieder auf der Update-Detailseite und können nochmal einen prüfenden Blick auf die Daten werfen. Sind alle Lämpchen grün, klicken wir auf "Update starten" um mit dem Update-Prozess zu beginnen.
In einem Dialog müssen wir nochmal bestätigen, dass wir auch wirklich ein Backup durchgeführt haben. Haben wir, also starten wir das Update.
Der Rest passiert nun automatisch. Das Archiv mit dem Update wird heruntergeladen und entpackt, die Erweiterungen werden, wenn nötig deaktiviert und es werden Änderungen im Dateisystem und in der Datenbank vorgenommen.
Wenn der Vorgang abgeschlossen ist, müssen wir hier noch bestätigen, dass die Dateien aufgeräumt werden sollen. Das entfernt nicht mehr benötigte alte Dateien. Und durch "Update schließen" beenden wir das Update und gelangen wieder zur Admin-Oberfläche.
Damit ist das Update abgeschlossen. Wir sollten nun noch den Cache leeren.
Methode 2: Manueller Download des Update-Archives, Update über Browser
Kommen wir nun zur zweiten Möglichkeit: Der manuelle Download eines Update-Archivs, entpacken auf im Shopverzeichnis auf dem Server und Durchführung des Updates über den Browser.
Das macht immer dann Sinn, wenn wir nicht zwingend auf die aktuellste Shopware-Version updaten, sondern selbst bestimmen möchten, welche Version wir wählen. Das kann hilfreich sein, wenn man beispielsweise nicht auf die neuste Version aktualisieren kann, weil die verwendeten Plugins noch nicht kompatibel sind.
Das Update-Archiv können wir unter https://www.shopware.com/de/download/#shopware-6 herunterladen. Falls eine spezifische Version benötigt wird, findest du unter "Changelog" eine Auflistung aller Versionen und Features, mit Möglichkeit das Update-Archiv herunterzuladen.
Als nächstes müssen wir das Update-Archiv nun in den Shop-Ordner auf unserem Webserver hochladen und das Archiv entpacken.
Upload per FTP
Zum Upload könnt ihr ein FTP-Tool eurer Wahl, wie beispielsweise FileZilla, nutzen. Ich selbst nutze WinSCP.
Wir verbinden uns also mit dem Webserver, navigieren über das Dateisystem ins unseren Shop-Ordner und laden das Zip-Archiv mit dem Backup hoch. Typischerweise einfach per Drag and Drop.
Entpacken
Nun müssen wir das Archiv noch entpacken. Einige Hoster stellen auch Funktionen bereit, beispielsweise in einer WebFTP-Oberfläche, um Zip-Archive serverseitig zu entpacken. Wir nutzen dafür im heutigen Beispiel ganz einfach wieder das Terminal und den unzip-Befehl.
Dazu öffnen wir wieder unser Terminal, navigieren in unser Shopware-Verzeichnis und stellen sicher, dass das Archiv vorhanden und der Upload abgeschlossen ist.
Um das Archiv zu entpacken nutzen wir den unzip-Befehl.
unzip dateiName.zip
Bei der Nachfrage, ob Dateien überschrieben werden sollen, bestätigen wir mit "A", um alle Dateien zu ersetzen.
Update im Browser
Ist das Extrahieren abgeschlossen, können wir das Update im Browser starten, indem wir folgende Adresse aufrufen:
https://deine-domain.de/recovery/update/index.php
Nun öffnet sich wieder die von der ersten Methode bekannte Update-Oberfläche und wir können das Update wie gewohnt starten.
Nachdem alle Änderungen an Dateien und Datenbank vorgenommen wurden bestätigen wir wieder, dass Dateien aufgeräumt werden sollen. Nachdem das Update abgeschlossen ist, gelangen wir wieder in den Admin-Bereich und sollten zunächst wieder den Cache leeren.
Falls der Wartungsmodus noch aktiv sein sollte, müssen wir den Ordner "update-assets" in unserem Shopware-Verzeichnis löschen.
Dazu können wir folgenden Konsolenbefehl nutzen, wenn wir uns in unserem Shop-Verzeichnis befinden.
rm -rf update-assets/
Und damit ist das Update erledigt.
Methode 3: Update per Konsolenbefehl
Als dritte Möglichkeit können wir das auch Update komplett über die Konsole machen.
Zunächst benötigen wir wieder ein Zip-Archiv mit dem entsprechenden Update von https://www.shopware.com/de/download/#shopware-6.
Download des Archivs und entpacken per Konsolenbefehl
Das Archiv könnt ihr entweder wieder normal herunterladen und per FTP hochladen oder wir können in der Konsole den wget-Befehl nutzen, um das Archiv über einen Downloadlink herunterzuladen.
Dazu kopieren wir einfach den die Adresse des Downloadlinks, indem wir mit Rechts auf den Update-Link klicken und (bei Google Chrome) "Adresse des Links kopieren" wählen.
Zurück in unserem Terminal nutzen wir im Shop-Verzeichnis folgenden Befehl.
wget https://example.com/dateiName.zip
Nun wurde die Zip-Datei mit dem Update heruntergeladen und muss nur noch entpackt werden.
unzip dateiName.zip
Wie im vorherigen Beispiel nutzen wir wieder den unzip-Befehl und entpacken das Archiv.
Shopware 6 über Konsole updaten
Ist das Archiv entpackt, können wir den php-Befehl nutzen, um die Datei "public/recovery/update/index.php" auszuführen und damit das Update zu starten.
php public/recovery/update/index.php
Nun öffnet sich der Updater und wir können den Vorgang mit der Return-Taste starten.
Ist alles sauber durchgelaufen, müssen wir noch den Ordner "update-assets" löschen, um den Wartungsmodus zu deaktivieren. Dazu können wir folgenden Befehl nutzen:
rm -rf update-assets/
Damit ist das Update erledigt und wir können fortfahren.
Nach dem Update
Ist das Update abgeschlossen, empfiehlt es sich zunächst einmal den Cache zu leeren, um mögliche Rückstände zu bereinigen. Das könnt ihr entweder über den Admin-Bereich oder per Konsolenbefehl tun.
Falls ihr nicht mehr in die Admin-Oberfläche kommt und euch ein "White Screen" angezeigt wird, hilft es in der Regel, den Browsercache zu löschen.
Ist das erledigt, solltet ihr nun testen, ob alle Bereiche eures Onlineshops ordnungsgemäß funktionieren. Falls es Probleme gibt, könnt ihr jederzeit das angefertigte Backup nutzen, um zum alten Stand zurückzukehren.