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.
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.
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.
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.