Hallo liebe Freunde der Shopware Backups! Es freut mich sehr, dass ich euch für das Thema Shopware Backup interessiert, denn dieses Thema ist etwas womit sich jeder der mit Shopware arbeitet mindestens einmal beschäftigen muss! Muss! Muss! Musssss!
Ich kann es nicht oft genug betonen denn Shopware Backups sind bei der Arbeit an Shopware 5 Shops mit das wichtigste was man sich überhaupt vorstellen kann, knapp gefolgt vom Cache löschen.
Hier kommt eine kleine Übersicht über das was euch erwartet:
- Das FTP Backup Zeitalter
- SSH ist die Lösung.
- Den richtigen Ordner finden
- Packen wir’s
- Packen wir’s professioneller
- Packen für den Umzug
- Weiterführende Links & Quellen
1. Shopware Backups – Das FTP Backup Zeitalter
Ok das Ding ist ich komme noch aus dem Zeitalter von Shopware 4 und da konnte man es zum Beispiel seinem FTP Programm noch zumuten mal eben die Dateien alle einzeln vom Server zu laden. Will man aber heute ein Shopware Backup mit FileZilla runterladen muss man schon ein sehr geduldiger Mensch sein oder einfach nur Spaß am Zeit verschwenden haben. Es dauert einfach unendlich lange und gerade wenn man während einer dringenden Reparaturarbeit am Shop mehrere Backups am Tag machen will ist das nicht das gelbe vom Ei.
Besser nicht:
2. Shopware Backups – SSH ist die Lösung
Was ist die Lösung? Richtig SSH bzw. der Zugang auf den Server über die Konsole, Mac User kennen es als Terminal – ist die Lösung. (Manche nennen es auch Shell Zugang – wahrscheinlich ist das der richtigste Begriff.) Über die Konsole bzw. das Terminal können wir nämlich mit ein paar Befehlen die ganzen Shopware Dateien noch auf dem Server packen um sie dann im Anschluss in einem Rutsch mit einer groben Zeitersparnis von 95% vom Server zu laden.
Was braucht man dafür? – Wer bisher nur mit FTP Programmen gearbeitet hat muss seinen Wortschatz um folgenden Begriff erweitern: „SSH Zugang“. Loggt euch bei eurem Webhosting Anbieter ein und sucht nach euren SSH Zugangsdaten, notfalls hilft auch ein Anruf oder eine Mail an den Provider. Bei TImme Hosting braucht man nicht nach dem SSH Zugang zu suchen, hier wird man eher auf der Suche nach dem Begriff Shell-Zugang fündig werden.
Wenn ihr eure SSH Zugangsdaten habt loggt ihr euch erst einmal auf dem Server ein, hier einmal am Beispiel eines fiktiven SSH Logins wie er bei Host Europe aussähe:
SSH Zugang mit fiktivem Login bei Hosteurope, Mit WP User:
$ ssh wp1071115@wp1071115.server-he.de
SSH Zugang mit fiktivem Login bei Hosteurope, Mit FTP User:
$ ssh ftp1071115@ftp1071115.server-he.de
Bei Mittwald hingegen könnte es so aussehen:
ssh p1234567890.mittwaldserver.info -l p1234567890
Geheimer Geheimtipp: Auf der Anleitungsseite von Mittwald selbst wird der Login per SSH auf andere Art beschrieben, was bei mir nicht funktionierte. Wenn ihr da also mal landet und merkt dass es nicht geht, dann erinnert euch an diesen Beitrag.
Noch ein Wort zu Hosteurope: Die Zeiten in denen ich Hosteurope Server für das Shopware Hosting empfohlen habe sind leider vorbei. Mittlerweile möchte ich Ihnen grundsätzlich nur zu Anbietern raten die eine Partnerschaft mit Shopware haben bzw. zertifizierte Shopware Hosting Partner sind. Sehr gute Erfahrungen konnten wir mit dem Anbieter Timme Hosting machen. Die Service Mitarbeiter sind hochkompetent, hilfsbereit und vor allem schnell in der Umsetzung wenn Sie z.B einen Shop umziehen möchten.
Mittlerweile haben wir auch in Kooperation mit Timme Hosting unseren eigenen Hosting Service erschaffen. Für diesen Zweck haben wir Agentur-Server bei Timme Hosting angemietet und bieten Ihnen Shopware Hosting Pakete ab 39.- / Monat mit 25 GB SSD Speicher der neuesten Generation.
3. Shopware Backups – Den richtigen Ordner finden
Für gewöhnlich wird man zunächst in einem Oberverzeichnis rauskommen wo außer dem Shopware Shop noch zahlreiche für unseren Shopware Backup unnötigen Dateien liegen. Bei Hosteurope und einigen anderen Anbietern ist das meist der www Ordner. Um sich anzeigen zu lassen welche Ordner sich auf der Ebene in der man sich gerade eingeloggt hat befindet kann man folgenden Befehl nutzen:
ls
Das ist ein kleines L und ein kleines S was die Abkürzung für list also das englische Wort für Liste ist. Da ist es nur logisch dass der Befehl dafür sorgt, dass eine Liste mit den enthaltenen Ordnern ausspuckt. Ist dort nur ein Ordner enthalten ist die Liste eben sehr kurz und dürfte sich theoretisch gar nicht mehr Liste nennen aber das lassen wir jetzt mal durchgehen.
Ok im nächsten Schritt des besten und schlausten Wegs ein Shopware Backup auszuführen ist es nun wichtig zunächst einmal den richtigen Ordner zu lokalisieren. Hat uns der ls Befehl beispielsweise den Ordner www ausgegeben müssen wir nun eine Ebene tiefer gehen, also bildlich gesehen auf den www Ordner klicken und schauen was da drin steckt. Mit folgendem Befehl „klicken“ wir auf den Ordner „www“:
cd www
Na, wer fühlt sich gerade in Zeiten seines alten Commodore C64 zurückversetzt? Genau, das sind diese ganz alten Befehle von damals die man teilweise noch kennt und teilweise aber auch wieder vergessen hat. Wer kann sich wieder erinnern, wie man wieder einen Eben hoch komm, wenn man wollte? Genau:
cd ..
Um zu sehen was nun im www Ordner ist geben wir wieder ls ein. Liegt dort mehr als eine Datei / Ordner wird immer noch keine wirklich saubere Liste angezeigt, sondern die Dateien und Ordner werden hintereinander mit je 3 Leerzeichen Abstand angezeigt was nicht wirklich übersichtlich ist. Wer es übersichtlicher haben möchte kann die professionelle Version des list Befehls verwenden die da folgendermaßen aussieht:
ls -l
Bei dieser Version werden die Verzeichnisse nicht nur untereinander aufgelistet, sondern ihr bekommt noch zusätzliche Infos wie die Dateigröße angezeigt was auch sehr hilfreich sein kann.
4. Shopware Backups – Packen wir’s
4.1 Den Order packen, in dem sich die Shop Dateien befinden
Wenn ihr euch nun durch eure Ordner „geklickt“ habt und dann in der Liste den Ordner eures Shopware Shops angezeigt bekommt könnt ihr diesen Befehl hier verwenden um die Dateien auf dem Server zu packen:
tar cfzv backup_20180615.tar.gz shop/
In dem Beispiel gehen wir davon aus, dass der Ordner schlicht shop heißt und nennen die Datei dann backup_ gefolgt vom jeweiligen Datum. So mache ich das zumindest, wie ihr die Datei nennt ist euch natürlich selbst überlassen. Verwendet aber bitte keine Umlaute oder Hieroglyphen. Noch einmal um es ganz klar zu machen: In diesem Beispiel befinden wir uns einen Order über den eigentlichen Shop Dateien.
UND ganz wichtig gehen wir auch davon aus, dass sich in dem besagten Ordner auch NUR Shopware befindet. Denn manche Spezialisten laden ja auch gerne noch eine WordPress-Seite oder beispielsweise Piwik in den gleichen Ordner wovon ich grundsätzlich abraten würde.
4.2 Den Inhalt des Shop Ordner packen
Die zweite Möglichkeit die Dateien zu packen ist in den Ordner hinein zu navigieren. Heißt der Ordner wir in dem obigen Beispiel Shop müsste man also noch einmal folgendes eingeben um in den eigentlichen Shop Ordner hinein zu navigieren:
cd shop
Ist dies getan gibt mal der Professionalität halber noch einmal das hier ein:
ls -l
Wir können sicher sein im richtigen Ordner zu sein wenn uns das Terminal in etw folgendes Ergebnis ausspuckt:
5. Shopware Backups – Packen wir’s professioneller
Da es in der Praxis aber nunmal oft genug vorkommt, dass man den einen oder anderen Ordner nicht für das Backup benötigt, brauchen wir an der Stelle eine überarbeitetet Version unseres Befehls, nämlich diesen hier:
tar -pczf backups/backup_sw_20180615_nomedia.tar.gz --exclude='shop/piwik' shop/
Mit dem Befehl gehen wir sogar gleich noch einen Schritt weiter und legen die erstellte Datei mit unserem Shopware Backup gleich im Ordner backups ab. Dafür müsst ihr nochmal in den Ordner über euren Ordner so dass wenn ihr ls -l eingebt den Ordner eures Shops seht. Jetzt legt ihr mit diesem Befehl hier ganz einfach einen Order auf der selben Ebene eures Shops:
mkdir backups
mkdir steht wie man schon erahnt für make directory. Also hier noch einmal der komplette Befehl, zur Vereinfachung einmal ohne Datum im Dateinamen:
tar -pczf backups/deinbackup.tar.gz --exclude='shop/piwik' shop/
Am Anfang wird gesagt wo die Datei hin soll und wie sie genannt werden soll. Am Ende wird „erklärt“ dass der Ordner piwik, der ein Unterordner des Ordners shop ist, ausgeschlossen werden soll. Zuletzt wird der zu packende Ordner definiert. Eigentlich ganz einfach, oder? Ok ich gebe zu bei mir hat es bei den ersten Malen länger gedauert bis ich endlich den genau richtigen Befehl raus hatte. Daher hoffe ich mal dass ich dem einen oder anderen das Shopware Backup Leben ein wenig erleichtern kann.
Der Befehl ist im übrigen auch sehr nützlich wenn man einfach nur den media Ordner ausschließen will. Das macht Sinn wenn man mehrmals täglich Shopware Backups bei einer Anpassung am Live System machen muss man aber nicht jedes Mal 10 Millionen Bilder mit runterladen will.
Während die Datei gepackt wird könnt ihr übrigens nichts besonderes beobachten, außer dass einige Minuten lang nichts passiert. In der Zeit kann man auch nichts eingeben und wartet einfach nur. Irgendwann wird dann wieder die normale Eingabezeile angezeigt. Dann weiß man dass das Backup gepackt wurde und im backups Ordner abliegt. Von da aus kann man es dann per FTP relativ zügig vom Server laden.
Wenn ihr fertig seid schreibt ihr exit und schließt damit wieder die Verbindung zum Server. Das war’s.
6. Shopware Backups – Packen für den Umzug
Wer ein Backup mit dem Ziel anlegt seinen Shopware Shop auf eine neue Umgebung umzuziehen, der sollte beim packen der Dateien die Cache Ordner ausschließen. Hierbei gehen wir davon aus, dass das Backup im gleichen Ordner der Shopware Installation und nicht in einem gesonderten Backups Ordner abgelegt werden soll. Optional haben wir auch die Möglichkeit den Cache manuell über das Backend zu löschen. Hierbei sollten vorsichtshalber alle Caches gelöscht werden.
Hierfür müssen einmal die Schritte aus dem Punkt 4.2 durchgeführt und über das Terminal in den Shop-Ordner hinein navigiert werden. Werden dort nun die Shop Dateien angezeigt können wir folgenden Befehl ausführen:
tar --exclude='./var/cache/production_*' -czf backup_20181214.tar.gz ./
Was befehlen wir mit dieser Zeile genau? Mit dem Befehl tar sagen wir dass wir etwas packen wollen, das –exclude sagt das etwas exkludiert / ausgeschlossen werden soll und darauf folgt der Befehl, der besagt dass alle Unterorder des var/cache Ordner deren Namen mit production beginnen betroffen sind.
Für gewöhnlich sieht es in dem besagten /car/cache/Ordner folgendermaßen aus. Wobei es auch schon mal einige Ordner mehr sind die da liegen und mit production beginnen. All diese Ordner werden mit diesem Befehl also ausgeschlossen.
Wenn mehrere Ordner, z.B. der Cache und der Media Ordner ausgeschlossen werden sollen könnte es stattdessen so aussehen:
tar --exclude='./var/cache/production_*' --exclude='./media' -czf backup_20181214.tar.gz ./
So ein Backup ist im Vergleich zu einem kompletten Backup auch viel schneller abgeschlossen.
7. Shopware Backups – Weiterführende Links & Quellen:
Die wichtigsten Shell Befehle:
https://www.shellbefehle.de/befehle/
https://www.checkdomain.de/support/webhosting-und-homepage/nutzung-einrichtung/was-sind-die-wichtigsten-ssh-befehle/
Der list Befehl:
https://wiki.ubuntuusers.de/ls/
https://de.wikipedia.org/wiki/Ls_(Unix)
Shell-Tiefenwissen zum Thema Ordner ausschließen:
http://germanylandofinnovation.com/questions/192/shell-befehl-zum-tar-verzeichnis-ohne-bestimmte-dateien-ordner
Einsteiger Infos zur Kommandozeile:
https://www.heise.de/mac-and-i/artikel/macOS-Terminal-Das-kleine-Einmaleins-der-Kommandozeile-3463440.html?seite=all
Login per Kommandozeile bei Timme Hosting:
https://timmehosting.de/webspace-anmelden-kommandozeile
SSH Zugriff bei Mittwald
https://www.mittwald.de/faq/frage/ssh-aktivieren-und-zugreifen
Unser geheimer Shopware Spickzettel:
https://great2gether.com/2018/02/shopware-5-cheat-sheet/
Shopware umziehen:
https://great2gether.com/2018/05/shopware-umziehen/
Shopware Server-Umzug, 8mylez Beitrag:
https://8mylez.com/blog/serverumzug-selbst-durchfuehren/
Was man bei einem Shopware Umzug beachten sollte, 8mylez Beitrag:
https://8mylez.com/blog/eine-neue-version-von-shopware-ist-verfuegbar/