Zweite Shopware 6 Instanz in einem Unterverzeichnis

Hi @h_lohaus‍

Vielen Dank für dein Update.

Das Unterverzeichnis ist nun aufrufbar, allerdings ist das Ganze noch etwas verbuggt.
Wenn ich über das Admin-Panel etwas z.B in den SalesChannels ändere hat das Auswirkungen auf den Staging-Shop und umgekehrt.
Beispiel:
Ich gehe auf das Admin-Panel meines Staging-Shops über meinshop.de/staging/admin und ändere den Namen des SalesChannels.
Nachdem ich das gemacht habe, kann ich in meinem Hauptshop nicht mehr aufs Frontend. Er sagt, dass er keinen SalesChannel mit der angegebenen Domain finden kann.
Jetzt gehe ich auf das Admin-Panel meines Hauptshops und klicke auf den SalesChannel und mir wird nun der geänderte Name aus dem Staging-Shop angezeigt.
Sogar die Domain-URLs sind die aus dem Staging-Shop.
Der Screenshot zeigt den Zustand im Admin-Panel des Hauptshops nach Anpassung des SalesChannel-Namens im Staging.

Wenn ich im Admin-Panel nun wieder den Namen ändere, speichere und die Seite aktualisiere, werden auch für die SalesChannels wieder die URLs aus dem Hauptshop verwendet und angezeigt (obwohl ich die nicht angepasst habe, ich habe nur den Namen des SalesChannels geändert und auf speichern geklickt).
Danach kann ich zwar wieder aufs Frontend im Hauptshop, aber wenn ich nun aufs Admin-Panel im Staging-Shop gehe, wird mir nun für den SalesChannel die Konfiguration für den Hauptshop angezeigt.
Die Datenbank bleibt hierbei komischerweise unberührt. Da bleiben die ganze Zeit die richtigen URLs für die jeweiligen Shops, egal, ob ich die Anpassung im Hauptshop, oder Staging-Shop mache.

Scheint also ein Bug der index.php zu sein?
Wenn ich das Vorgehen richtig verstanden habe, verwendest du einfach die Standard SW6 index.php und passt dort nur die Pfade für das Staging-Verzeichnis an, oder?
 

Hi,

hast du den die Datenbank kopiert und in der private/.env angepasst?

Gruß Heiner

Ja, hab ich gemacht.

Die Einträge in der Datenbank sind auch immer korrekt, auch wenn ich auf speichern klicke.

Kannst du den Fehler bei dir nicht reproduzieren?

Hallo Zusammen,

gibt es eigentlich auch eine „offizielle“ Lösung wie man eine zweite Test-Installation von SW6 unter der gleichen Domain (wegen Lizenz) komplett getrennt also Dateien und Datenbank einrichten kann ?
Bei der hier vorgestellten Lösung sind ja nur die Datenbanken getrennt so wie ich das gelesen habe…

Du kannst dir doch einfach eine Installation in den Public Ordner kopieren und dann die .env anpassen. Funktioniert einwandfrei.

Dann hast du einmal www.meinedomain.de und einmal www.meinedomain.de/Testinstallation/public

das hatte ich schon mal ausprobiert da hab ich aber Fehler bekommen…
hab dann erst mal mit einer Subdomain gearbeitet aber über kurz oder Lang nicht so optimal wegen der Lizenzen.

Was sollte man den in der .env anpassen nur die DB Verbindung oder gibts noch andere Sachen die angepasst werden sollten ?
In der /public/.htaccess muss doch auch die “RewriteBase” angepasst werden oder ?
Gibt’s ggf. ne kleine Liste was man alles anpassen muss damit die 2. Installation im Unterverzeichnis funktioniert ?

1 „Gefällt mir“

@kurznet schrieb:

das hatte ich schon mal ausprobiert da hab ich aber Fehler bekommen…
hab dann erst mal mit einer Subdomain gearbeitet aber über kurz oder Lang nicht so optimal wegen der Lizenzen.

Was sollte man den in der .env anpassen nur die DB Verbindung oder gibts noch andere Sachen die angepasst werden sollten ?
In der /public/.htaccess muss doch auch die „RewriteBase“ angepasst werden oder ?
Gibt’s ggf. ne kleine Liste was man alles anpassen muss damit die 2. Installation im Unterverzeichnis funktioniert ?

Das wäre sehr hilfreich. Kann jemand helfen?

Hallo zusammen!

Uns hat diese Anleitung weitergeholfen:
https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/testumgebung-anlegen

Hallo @Code108‍

Danke für den Link. Habe ich da auch schon dran versucht. Habe einen Symlink “stage” innerhalb von /public angelegt. Dieser verweist auf die Testinstanz mit separaten DB und Filesystem. Ich habe den Symlink einmal auf das Root-Dir sowie einmal auf /public der Testinstanz gesetzt. Beides funktioniert leider nicht. Ich erhalte beim Aufruf von LIVEURL.de/stage immer einen 404. Komme einfach nicht dahinter wo es schief läuft. Am Symlink wird es ja nicht liegen…?! Hattet ihr oder jemand hier im Verlauf ähnliche Probleme und konnte das Problem lösen? Wäre über den entscheidenden Tipp sehr dankbar.

 

Gruß Mike

Hallo @_MikeB‍ ,

was hast du bei deiner Verkaufskanal-Domain in den URL Feldern eingetragen? Bei uns hat es geklappt, als wir dort die URL mit public eingetragen haben, also Beispiel Domain (also das Gleiche, was wir in der .env Datei bei APP_URL eingetragen haben). Hast du das schon versucht? Wir haben keinen Symlink angelegt, sondern sind nur wie in der Anleitung vorgegangen.

Viele Grüße

@Code108 schrieb:

Hallo zusammen!

Uns hat diese Anleitung weitergeholfen:
https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/testumgebung-anlegen

Ich bin auch nach dieser Anleitung vorgegangen. Beim Kopieren der Dateien in den Unterordner wurden aber auf wundersame Weise die Permissions der .htaccess geändert und folgedessen konnte sie nicht mehr gelesen werden. Nach dem Anpassen der Permissions auf 755 klappt jetzt der Aufruf.

Hi.

Habe jetzt mal die URL mit der aktuellen Testystem URL über die DB gesetzt (Admin ist ja nicht aufrufbar). Bringt aber leider nichts. Immer noch 404 :frowning:

 

Gruß

Permissions waren bei mir, wie in der Livekennung, 644. Anpassung auf 755 bringt hier leider nichts. Immer noch 404 :frowning:

 

Hi zusammen,

legt die 2. Shopware Instanz doch einfach außerhalb der ersten ab und macht nen symlink in den „Hauptshop“. Also in /public/ auf …/…/anderedir/public.

Hallo Zusammen,

ich habe im Unterverzeichnis nach der offiziellen Shopware 6 Doku (https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/testumgebung-anlegen) den Shop im Unterverzeichnis dupliziert, allerdings bekomme ich Routen-Fehler. Der Webserver ist ein Nginx, kann es sein das in der Nginx Config für den Shop noch etwas für die Stagingumgebung angepasst werden muss?

Hallo Zusammen

Ich habe mich nun einige Stunden damit auseinandergesetzt und bin für mich auf eine Lösung gestossen (für 0815 Apache Hostings).
Die Dokumentation von Shopware ist bereits wegweisend, doch ein paar Tipps & Tricks auf den Weg.

Ausgangslage

Shopware 6.3.0.2 | Apache 2.4 | MySQL 5.7.26 | 0815 Hoster
Shopwareinstallation unter ~/foo/shop/
Domainmapping: ~/foo/shop/public/
Domain: www.foobar.ch

 

Anleitung

  1. Datenbank (z.B. foobar ) Dump erstellen und in neuer Datenbank (z.B. foobar_stage ) importieren

  2. Via rsync / cp / FTP die Dateien aus ~/foo/shop/ in den Ordner ~/foo/shop/ public/stage kopieren

  3. Prüfen ob versteckte Dateien (z.B. .htaccess) ebenfalls mitkopiert wurde (ansonsten Googlen, welchen Parameter / welche Option ihr bei eurem Tool nutzen müsst)

  4. Die Datei  ~/foo/shop/ public/stage/.env anpassen ( DATABASE_URL​ für Stage Datenbank anpassen)

  5. Die Datei  ~/foo/shop/ public/stage/.env anpassen** (neue APP_SECRET​ für Stage Umgebung erstellen und hinterlegen)**

    bin/console system:generate-app-secret

  6. Die beiden Dateien private.pem und public.pem  im Ordner ~/foo/shop/ public/stage/config/jwt löschen und frisch erstellen

    bin/console system:generate-jwt-secret

 

  1. Nun in der Stage Datenbank in der Tabelle sales_channel_domain die URL ergänzen mit eurem Ordnerpfad. In unserem Beispiel: www.foobar.ch /stage/public

  2. In der Kommandozeile nun innerhalb des Ordners ~/foo/shop/ public/stage/ den folgenden Befehl ausführen um den Cache zu leeren.

    bin/console cache:clear

 

  1. Nun die URL eures Shops aufrufen (in unserem Beispiel: www.foobar.ch/ stage/public")

LG Stefano

4 „Gefällt mir“

@mit3233 schrieb:

Hallo Zusammen,

ich habe im Unterverzeichnis nach der offiziellen Shopware 6 Doku (https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/testumgebung-anlegen) den Shop im Unterverzeichnis dupliziert, allerdings bekomme ich Routen-Fehler. Der Webserver ist ein Nginx, kann es sein das in der Nginx Config für den Shop noch etwas für die Stagingumgebung angepasst werden muss?

Ja, dies kann sehr gut sein.
In der nginx.conf sagst du dem Webserver, auf welche Domain er hört und wohin (in welchen Ordner) der Server dich leiten soll. Auf einem Apache Server gibt es für zusätzliche (aber nicht alle) Konfigurationen die .htaccess, wobei die Anpassungen bei einem Nginx Server (meist) direkt in der nginx.conf gemacht werden.
Darin würdest du auch festlegen, dass bei einer Anfrage auf „www.foobar.ch/stage“ der ganze Traffic in den Ordner „projekt-foobar/public/stage/public“ geleitet werden würde.

Hier ein Link für weitere Recherchen: https://docs.nginx.com/nginx/admin-guide/web-server/web-server/#locations

1 „Gefällt mir“

Hallo Stefano,

danke für den Input. Ich sitze gerade an einem ähnlichen Problem (Shop lokal fertig gemacht und dann auf einen Server kopierern, also genau die Konfiguration inkl. Datenbank). Dein beschriebenes Vorgehen funktioniert dafür natürlich genauso. Eine Frage hätte ich dazu noch:
Warum müssen wir das APP_SECRET und die JWT-Secrets ändern? Könntest du das kurz erläutern?

Viele Grüße
Tobias

 

Ciao @z_shopware_dev‍

Gerne :slight_smile:
Es spielt keine Rolle wenn du lokal etwas entwickelst und danach auf dem Server in der Liveumgebung veröffentlichst.
Ich gehe jedoch davon aus, dass die zwei Shopware 6 Instanzen sich mit gleichen Secrets in die Quere kommen, wenn du in einem Unterordner (einer laufenden Instanz) eine eine Testumgebung laufen lassen möchtest.

Warum das so ist, kann ich dir leider gerade nicht verständlich erklären.

LG
 

1 „Gefällt mir“

Hallo,

bin ebenfalls nachnder Anleitung von Shopware 6 - Testumgebung anlegen vorgegangen. Die Sales Channel Domains habe ich direkt über die Datenbank angepasst.

Shop ist auch aufrufbar, allerdings erhalte ich beim Aufruf der Admin-URL (http://mein-shop.de/testshop/public/admin) ein 

No route found for „GET /subshop/public/admin“

 

 

Hat noch jemand eine Idee?