Shopware 6 in Plesk duplizieren

In dieser Schritt-für-Schritt-Anleitung wird Ihnen gezeigt, wie Sie Ihren Shopware 6 Shop in Plesk duplizieren können.


Voraussetzungen

  • Managed Server
  • Shopware 6
  • Plesk Control Panel


Zusammenfassend bietet das Duplizieren eines Shopware 6 Shops in Plesk die Möglichkeit, Änderungen sicher zu testen, den Shop anzupassen, Entwicklungsvorgänge durchzuführen und die Skalierbarkeit zu verbessern.



Shopware 6 duplizieren


Öffnen Sie das Plesk Control Panel in Ihrem Webbrowser. Siehe auch: Anmeldung im Plesk Control Panel


Neue Webseite Anlegen

Legen Sie als Sie zuerst die neue Webseite in Plesk an, in die der Shop dupliziert werden soll.

Über die Schaltfläche Domain hinzufügen, können Sie eine neue Webseite erstellen. Tragen Sie hierzu die gewünschte Domain ein, unter der der kopierte Shopware Shop später erreichbar sein soll.


Plesk - Neue Domain hinzufügen

Plesk - Neue Domain hinzufügen


Für die Kopie können Sie z.B. die Arbeitsdomain des Shopware Servers nutzen. Diese entspricht der Syntax: sXXXX.creoline.cloud. Ersetzen Sie das Präfix mit Ihrer Server-ID.


Wählen Sie unter Webspace, den Webspace der Domain aus, der kopiert werden soll.

Plesk - Neue Domain & Systembenutzer hinzufügen

Plesk - Neue Domain & Systembenutzer hinzufügen


Legen Sie zusätzlich den Systembenutzernamen fest, der im späteren Verlauf Besitzer der Shopware Kopie auf dem Server wird.


Um Ihre Webseite zusätzlich via SSL/TLS abzusichern, können Sie für die Shop-Kopie ein kostenloses Let's Encrypt Zertifikat einrichten. Eine Schritt-für-Schritt-Anleitung finden Sie in dem Hilfecenter-Artikel Let's Encrypt Zertifikat einrichten.


Datenbank Anlegen

Navigieren Sie in Plesk zu Website & Domains und wählen Sie eine der beiden Domains aus, auf der Ihre Shopware 6 Kopie installiert ist oder werden soll.


Klicken Sie auf den Tab Datenbanken und erstellen Sie eine neue Datenbank, die für den duplizierten Shop vorgesehen ist. Siehe auch: MySQL Datenbank erstellen


Shopware 6 Shop kopieren

Entfernen Sie unter Hosting & DNS → Hosting-Einstellungen den Dokumentenpfad /public für die Dauer des Kopiervorgangs.


Ihr Shopware 6 Shop wird durch die Änderung für kurze Zeit nicht erreichbar sein. Nach dem Kopiervorgang können Sie das /public wieder einfügen.


Gehen Sie zurück zur Übersichtsseite der Domain und klicken Sie auf den Button „Website kopieren". Es öffnet sich die Plesk Oberfläche zum Kopieren einer Website.


Plesk - Website kopieren

Plesk - Website kopieren


Plesk - Website kopieren

Plesk - Website kopieren


Sie haben in Plesk die Wahl, ob Sie Ihren Shopware 6 Shop zu einer Website in Plesk kopieren möchten oder per FTP-Verbindung auf einen anderen Server.


Wir nutzen die Methode, die Website in Plesk zu kopieren und wählen den Namen der Website aus, auf den Shopware 6 kopiert werden soll. Falls Ihre Website oder Domain nicht angezeigt wird, müssen Sie diese zuerst in Plesk unter Domains anlegen. Sie können auch eine Subdomain wie z. B. dev.meinedomain.de oder dev.sXXXX.creoline.cloud verwenden.



Bitte beachten Sie, dass bei „Alle vorhandenen Dateien löschen" auf dem Zielverzeichnis alle Dateien unwiderruflich gelöscht werden.


Wir möchten in diesem Fall, dass alle Dateien im Zielverzeichnis gelöscht werden, da wir die Domain neu angelegt haben und somit keine wichtigen Dateien in dem Verzeichnis existieren. Die Auswahl können wir mit einem Klick auf „OK" bestätigen. Es erscheint folgende Meldung in Plesk:


Wichtig Fügen Sie unter Hosting & DNS → Hosting-Einstellungen bei beiden Domains den Dokumentenpfad /public hinzu, sodass Ihr Shopware 6 Shop wieder aufrufbar ist.



Datenbank kopieren


Beim Kopieren der Datenbank werden Tabellen zeitweise gesperrt, dadurch kann die Performance Ihrer Applikation kurzzeitig minimal beeinträchtigt werden.


Zu Beginn sollte die im aktuellen Shop verwendete Datenbank in der Shopware-Konfigurationsdatei unter /document_root/.env.local ermittelt werden.


Dort gibt die folgende Zeile an, welche Datenbank verwendet wird:

DATABASE_URL=mysql://[DB_USERNAME]:[DB_PASSWORD]@[DB_SERVER]:[DB_PORT]/[DB_DATABASE_NAME]

In unserem Fall sieht die .env.local Direktive folgendermaßen aus:

DATABASE_URL=mysql://shopware_6:password@localhost:3306/shopware_6


In Plesk navigieren wir zur Domain des aktuellen Shops → Datenbanken und wählen bei der zuvor ermittelten Datenbank „Kopieren" aus.



Dort angekommen können wir entweder eine neue Datenbank erstellen und benennen oder wir benutzen die zuvor erstelle Datenbank.


Wir möchten eine vollständige Kopie der Datenbank erstellen und bestätigen diese mit „OK".


Es wird empfohlen, die Option „Vollständige Kopie erstellen" zu wählen. So werden Komplikationen beim Kopiervorgang vermieden.

Danach erhalten wir folgende Meldung in Plesk und haben die Kopie erfolgreich durchgeführt:


Passen Sie anschließend die .env.local Datei, der Shop Kopie an, um die Datenbank-Kopie zu verwenden.

DATABASE_URL=mysql://[DB_USERNAME]:[DB_PASSWORD]@[DB_SERVER]:[DB_PORT]/[DB_DATABASE_NAME]

In unserem Fall sieht die .env.local Direktive anschließend z.B. folgendermaßen aus:

DATABASE_URL=mysql://shopware_6_copy:password@localhost:3306/shopware_6_copy



Cache leeren

Leeren Sie den Cache Ihres kopierten Shopware 6 Shops, in dem Sie sich per SSH mit dem Server verbinden.

Navigieren Sie zum Shop-Stamm-Verzeichnis, des kopierten Shops.

Der Befehl könnte z. B. folgendermaßen aussehen:

/var/www/vhosts/sXXXXX.creoline.cloud/swcopy.sXXXXX.creoline.cloud/

Und führen Sie dort angekommen folgenden CLI-Befehl aus:

php bin/console cache:clear


Shopware CLI Commands sollten immer als Systembenutzer ausgeführt werden. Das Ausführen als Root-Benutzer kann zu ungewollten Seiteneffekten führen.


Der Cache sollte geleert werden, falls ein Fehler auftreten sollte, versuchen Sie den Cache manuell zu leeren, in dem Sie zu folgendem Pfad navigieren:

/var/www/vhosts/sXXXXX.creoline.cloud/swcopy.sXXXXX.creoline.cloud/var/cache

und führen Sie dort folgenden Befehl aus:

rm -rf prod_*



Verkaufskanal anpassen

Um den Verkaufskanal Ihres Shopware 6 Shops anzupassen, loggen Sie sich in Ihrem Shopware 6 Administrations-Bereich ein, mit den Zugangsdaten, die Sie auch im vorherigen Shop verwendet haben.

Dort angekommen navigieren Sie zu Ihrem Shop und scrollen Sie etwas runter bis Sie den Reiter Domain sehen können und passen Sie beide Einträge so an, dass Sie der Domain des kopierten Shops entsprechen.

Nach der Anpassung des Verkaufskanals klicken Sie im oberen rechten Bereich auf Schaltfläche Speichern, um die Anpassung anzuwenden.


Nach der Anpassung der Domains ist das Frontend der Kopie der Shopware 6 Instanz unter der hinterlegten Domain im Browser ihrer Wahl erreichbar.


Damit haben Sie Ihren Shopware 6 Shop einmal vollständig dupliziert.