In einigen Fällen kann es sinnvoll sein, Änderungen am Shop vorab in einer Testumgebung zu prüfen. Dies ist insbesondere für Updates zu empfehlen. Daher zeigen wir Dir in dieser Dokumentation, welche Möglichkeiten bestehen, eine Testumgebung aufzusetzen.
Die einfachste Möglichkeit, eine Testumgebung aufzusetzen ist, den Liveshop in ein Nebenverzeichnis zu kopieren. Der Public Ordner in diesem Verzeichnis kann dann beispielsweise über eine Subdomain des Hosters aufgerufen werden.
In Shopware 5 war es üblich, die Testumgebung in einem Unterverzeichnis des Hauptshops zu kopieren. In Shopware 6 raten wir davon ab und empfehlen ein Nebenverzeichnis zum Hauptshop zu wählen da es sonst zu Problemen im Betrieb der Testumgebung kommen kann.
Um den Liveshop in ein Nebenverzeichnis zu spiegeln, sind folgende Schritte notwendig.
Erstelle einen neuen Ordner neben dem Verzeichnis des Hauptshops, z.B. testshop.
Kopiere die Dateien Deiner Liveumgebung anschließend in den neu erstellten Ordner.
Es ist wichtig, dass Du auch die Dateien .env und .htaccess mitkopierst. Bitte beachte hierbei, dass Dateien, die mit einem "." beginnen, ggfs. nicht direkt angezeigt werden. In diesem Fall kann es erforderlich sein, die Anzeigeeinstellungen des Programms, mit dem Du den Kopiervorgang durchführen möchtest, anpasst. Weitere Informationen hierzu solltest Du in der Dokumentation des jeweiligen Programms erhalten.
Bei Deinem Hoster solltest Du nun eine Subdomain deiner Hauptdomain anlegen. Diese kann beispielsweise so aussehen: https://subdomain.mein-shop.de
Diese Domain routest Du nun auf den neu angelegten Ordner, in welchen Du den Hauptshop kopiert hast.
Diese Subdomain sollte sich von der Shopdomain unterscheiden, da sonst die Hauptdomain auf die Testumgebung routet.
Viele Hoster haben hierfür ihre eigenen Funktionen, welche Du normalerweise im Kundenbereich (o.ä.) nach dem Login beim Hoster findest und helfen an dieser Stelle gern weiter. Bei diesen Hostern stehen die nachfolgend erläuterten Beispiele gegebenenfalls nicht zur Verfügung.
Arbeiten in der Datenbank gehen immer mit einem Risiko einher. Bitte stelle sicher, dass ein Backup gemacht wurde, bevor die folgenden Schritte durchgeführt werden.
Öffne zunächst die Datenbankübersicht über den Punkt Neu (1) oder den Reiter Datenbanken. Dann trage einen Namen (2) für die Testdatenbank ein wähle als Kollation (3) "utf8mb4_unicode_ci" aus.
Klicke auf Create Database (1) und wähle in der nachfolgenden Maske einen Namen (2) und die Kollation (3) aus. Auch hier muss dies wieder "utf8mb4_unicode_ci" sein.
In der MySQL-Konsole kann natürlich ebenfalls eine neue Datenbank erstellt werden. Zunächst müssen wir uns hierzu in die MySQL-Konsole einloggen:
mysql -u Nutzername -p NameDerDatenbank
Nutzername und NameDerDatenbank musst Du natürlich entsprechend anpassen. Der Befehl zum Erstellen einer neuen Datenbank lautet nun:
CREATE DATABASE IF NOT EXISTS NameDeinerDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Passe die .env-Datei der Testumgebung entsprechend der neu angelegten Datenbank an. Die Datei liegt direkt im Hauptverzeichnis der Testumgebung
In der Datei ist die Zeile, die mit DATABASE_URL= beginnt, anzupassen. Hinter dem "=" stehen die Informationen der Datenbank. Ganz am Ende hinter dem "/" steht der Name der Datenbank, die verwendet werden soll. Hier trägst Du den Namen der neuen Datenbank ein.
Beispielsweise kann dies so aussehen:
DATABASE_URL=mysql://user:passwort@localhost:3306/testshop
Außerdem solltest Du den Eintrag APP_URL anpassen, sodass dort der vollständige Aufruf für den Testshop hinterlegt ist.
Dies könnte dann z.B. wie folgt lauten:
APP_URL=http://deinshop.de/testshop/public
Zusätzlich kann es erforderlich sein, den Eintrag unter COMPOSER_HOME anzupassen.
Dies ist nur notwendig, wenn der dort hinterlegte Pfad in Dein Shopware-Verzeichnis führt. Sollte Composer außerhalb von der Shopware-Installation liegen, ist keine Anpassung notwendig.
Kopiere den Inhalt der Live-Datenbank in die neu angelegte Test-Datenbank. Dies ist z.B. über die Export-/Import-Funktion innerhalb von phpMyAdmin, Adminer oder direkt in der SQL-Konsole möglich. Erwähnenswert ist an dieser Stelle, dass es aufgrund der Dateigröße und serverseitigen Timeout-Einstellungen notwendig sein kann, den Import üper CLI zu erledigen. Im Regelfall ist diese Variante darüber hinaus die schnellste und daher in der Praxis der Standard.
Für den Export wählst Du zunächst die Datenbank des Liveshops (1) aus und wechsle in den Tab Exportieren (2). An den Einstellungen musst du in der Regel keine Anpassungen vornehmen und kannst den Export mit einem Klick auf Ok (3) durchführen. Hierbei wird eine sql-Datei erstellt, die den Namen der Datenbank trägt.
Diese Datei kann nun in die Datenbank der Testumgebung importiert werden.
Um den Import durchzuführen, wähle als erstes die Datenbank der Testinstanz (1) aus. Öffne nun den Tab Importieren (2). Die exportierte Datei "liveshop.sql" kannst Du über die Durchsuchen-Schaltfläche (3) auswählen. Wenn Du beim Exportieren die Standardeinstellungen verwendet hast, brauchst Du hier normalerweise keine weiteren Anpassungen vornehmen und kannst den Import über den OK-Button (4) starten.
Für den Export, klicke zunächst auf Export (1). Die vorausgewählten Einstellungen sind für unsere Zwecke unter Umständen nicht optimal, daher wähle als Output save (2) aus. Ein weiterer Klick auf Export (3) führt den gewünschten Export nun durch und speichert bzw. gibt die Möglichkeit, den Export der Datenbank herunterzuladen.
Der Import in Adminer kann nun mit dem Menüpunkt Import (1) gestartet werden. Wähle hier zunächst die hochzuladene Datei aus (2) und bestätige dies abschließend mit Execute (3). Daraufhin wird der vorher gespeicherte Export importiert.
Ein Export der gesamten Datenbank (ein sogenanntes Dump) kann per CLI mit dem folgenden Befehl durchgeführt werden:
mysqldump -u Benutzername -p NameDerDatenbank > Dateiname.sql
Benutzername, NameDerDatenbank und Dateiname müssen natürlich entsprechend Deiner Konstellation für den Befehl angepasst werden.
Nun können wir den Dump mit dem folgenden Befehl einspielen:
mysql -u Benutzername -p NameDerDatenbank < NameDesExports.sql
Benutzername, NameDerDatenbank & NameDesExports müssen wieder angepasst werden. Bitte beachte auch, dass die Export-Datei - in diesem Beispiel NameDesExports.sql - sich in dem Verzeichnis befinden muss, aus welchem der Befehl ausgeführt wird. Andernfalls wird die Datei nicht gefunden.
Einige Erweiterungen speichern eine APP_URL in die Datenbank, welche die URL der Shopware Installation enthält. In der hier erstellten Kopie der Datenbank stimmt diese URL dann nicht mehr mit der URL der Testumgebung im Nebenverzeichnis überein. Dies führt beim ersten Aufruf des Admins zu einer Meldung:
Deine Shop-Domain hat sich geändert
Hier wählst Du die zweite Option Installiere Deine Apps neu. Hierdurch wird der Eintrag in der Datenbank automatisch angepasst.
Einige Erweiterungen wurden eventuell nicht aus dem Shopware Store heraus installiert oder verlangen eine monatliche Gebühr an den Hersteller des Plugins. Hier solltest Du auf jeden Fall Rücksprache mit dem Hersteller dieser Erweiterungen halten, damit es durch die Kopie der Datenbank nicht zu einer doppelten Abrechnung kommt.
Abschließend ist es erforderlich, im Admin die Domains der Verkaufskanäle anzupassen. Den Admin erreichst Du unter https://mein-shop.subdomain.de/admin
Im Admin wählst Du dazu im Menü auf der linken Seite den Verkaufskanal (1) aus. Im Bereich Domänen kannst Du nun die URL für den Verkaufskanal (2) anpassen. Die Bearbeitungsansicht erreichst Du über den "..."-Button auf der rechten Seite der jeweiligen Zeile. Damit der Testshop erreichbar ist, fügst Du ein /testshop am Ende hinzu. (Dies ist abhängig davon, wie Du den Ordner im 1. Schritt benannt hast). Nachdem Du die Änderung gespeichert hast, ist der Testshop in unserem Beispiel unter https://mein-shop.subdomain.de erreichbar.
Neben dem oben genannten Weg, eine Testumgebung im Nebenverzeichnis des Liveshops anzulegen, ist es auch möglich, eine lokale Umgebung aufzusetzen. Hierbei ist jedoch zu beachten, dass Plugins nur korrekt genutzt werden können, wenn die Testumgebung über die im Shopware-Account hinterlegte Domain aufgerufen wird. Da die lokale Umgebung normalerweise über eine andere URL erreichbar ist, lässt sich dies z.B. über einen hosts-Eintrag simulieren. Wie dies umgesetzt werden kann, beschreiben wir in diesem Abschnitt.
Zusätzlich ist es wichtig, dass die Testumgebung den Shopware-Server erreichen kann, um einen Abgleich des Plans durchführen zu können.
Um die Testumgebung von Deinem Rechner unter der URL, die im Shopware-Account hinterlegt ist, erreichen zu können
Zum besseren Verständnis verwenden wir in diesem Beispiel die Domain "mein-shop.de". Die Testumgebung ist unter der IP-Adresse 192.168.0.123 erreichbar.
Achte bei der der Domain darauf, ob Diese im Shopware-Account mit oder ohne "www" hinterlegt ist. Es ist erforderlich, dass Du genau die gleiche Schreibweise verwendest.
Windows
Die hosts-Datei in Windows befindet sich im Verzeichnis C:\WINDOWS\System32\drivers\etc.In diese Datei kannst Du dann die IP-Adresse der Testumgebung und zusätzlich die Plandomain eintragen.
Dies sieht für unser Beispiel so aus:
192.168.0.123 mein-shop.de
Linux (Ubuntu)
Die hosts-Datei in Ubuntu befindet sich im Verzeichnis /etc/. In der Datei fügst Du IP-Adresse der Testumgebung und Domain oberhalb der Zeile
# The following lines are desirable for IPv6 capable hosts
ein.
Dies sieht für unser Beispiel so aus:
192.168.0.123 mein-shop.de
MacOS
Bei MacOS befindet sich die hosts-Datei im Verzeichnis /etc/. Zum Bearbeiten kannst Du die Datei über das Terminal mittels
sudo nano /etc/hosts
aufrufen. In die Datei fügst Du dann die IP-Adresse der Testumgebung und die Domain an einer belieben Stelle ein (sinnvollerweise in einer eigenen Zeile).
Dies sieht für unser Beispiel so aus:
192.168.0.123 mein-shop.de
Nachdem Du die hosts-Datei auf Deinem Rechner angepasst hast, kannst Du die lokale Umgebung nun über die Domain des Liveshops aufrufen.
Wir erreichen in unserem Beispiel von unserem Rechner nur unter mein-shop.de nicht mehr den Liveshop, sondern die lokale Testumgebung.
Vorausgesetzt, dass die Testumgebung ins Internet kommunizieren kann, ist somit auch der Lizenzabgleich möglich und die erworbenen Plugins können ebenfalls in der Testumgebung genutzt werden.
Bitte beachte:
Solange der hosts-Eintrag für die lokale Testumgebung hinterlegt ist, kannst Du den Liveshop von Deinem Rechner aus nicht über die URL erreichen.