Zweite Shopware 6 Instanz in einem Unterverzeichnis

Hallo, 

ich würde gerne eine zweite Shopware 6 Instanz in einem Unterverzeichnis von meiner Hauptinstanz aufsetzen.
Also sozusagen http://meinshop.de und der zweite Shop soll dann unter http://meinshop.de/test erreichbar sein.

Nun muss der Webserver ja so eingestellt sein, dass der DocumentRoot auf den public-Ordner der Shopware 6 files zeigt.
Entsprechend habe ich im public-Ordner einen weiteren Ordner test angelegt und dort einfach die Shopware 6 files entpackt.
Ich kann den Shop aber nun nur mit http://meinshop.de/test/public aufrufen.
Gibt es eine Möglichkeit den zweiten Shop nur über http://meinshop.de/test aufzurufen?
Wenn ich http://meinshop.de/test aufrufe, denkt das Shopware 6 aus meiner Hauptinstanz, es handelt sich um eine Route und gibt mir eine Fehlermeldung, dass er die Route /test nicht finden kann. "No route found for „GET /staging/“

Ich habe es mit einer .htaccess im test-Ordner probiert, die einfach auf den public-Ordner weiterleiten soll.

RewriteEngine On
RewriteRule ^$ /public [L]

Das hat aber nicht so geklappt.
Außerdem bin ich mir unschlüssig, was ich im SalesChannel als Domain eintragen muss. 
Derzeitig ist dort http://meinshop.de/test/public eingetragen.

Also Ziel ist eigentlich einfach eine zweite Installation in einem Unterverzeichnis, ohne diese immer mit /public noch aufrufen zu müssen.

PUSH

 

Wir stehen vor der gleichen Frage.

Ziel ist die Einrichtung eines Testshops in einem Unterverzeichnis.

Konkret auch die Frage, an welchen Stellen bspw. die Datenbank-Verbindung angepasst werden muss. Reicht hier die Änderung der Verbindungsdaten in der .env Datei? Oder muss diese noch an weiterer Stelle angepasst werden?

 

Viele Grüße

Dennis

Das würde uns auch interessieren!

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍ [@Stephan Pohl](http://forum.shopware.com/profile/2/Stephan Pohl “Stephan Pohl”)‍ oder jemand anders von Shopware: Könnt ihr dazu etwas beisteuern?

Das Thema ist denke ich für viele wichtig und interessant.

Viele Grüße
Dennis

https://github.com/hlohaus/shopware-subdir-project

Versuch das mal :slight_smile:

1 Like

@h_lohaus schrieb:

https://github.com/hlohaus/shopware-subdir-project

Versuch das mal :)

Hallo!

 

So ganz werde ich noch nicht aus der Ordnerstruktur schlau.

 

Ich habe also einen Staging Shop bpsw. unter /public/ staging

Wo genau muss nun der private Ordner liegen und vor allem wo muss die neue .env Datei liegen? Vom Hauptverzeichnis aus gesehen:

  • unter /private oder
  • unter /public/staging/private oder
  • unter /private/staging

 

reicht es für den Testshop aus, die DATABASE_URL in der .env Datei anzupassen?

Deine Lösung ist bestimmt eine gute, nur ist die Doku noch etwas schwammig :slight_smile:

 

Ebenfalls schreibst du auf GitHub, dass die beiden Shops die gleichen Dateien aber unterschiedliche Datenbanken nutzen. Wie kriegt man es hin, dass auch ein anderes zweites Dateiverzeichnis für den staging Shop genutz wird? Hast du dafür auch schon eine Lösung?

Ich bedanke mich schon mal und freue mich auf eine Antwort!

 

Viele Grüße

Dennis

So wie es da steht: 

mkdir public/your_subdir
cd public/your_subdir

im Ordner public/MEINSTAGING und alle andere werden dann aus der Ebene aus gelink,

…wobei ich mich frage ob css, js, und fonts nicht gelinkt werden müssen? @h_lohaus‍ ?

Also ich bin jetzt stumpf die Anleitung durchgegangen. Die Kopie der .env habe ich in den private Ordner von meinem staging Ordner gelegt (also public/staging/private).
In der .env habe ich entsprechend den Datenbanknamen der neuen Datenbank angegeben.
Die neue Datenbank ist eine 1:1 Kopie der ursprünglichen DB.

Auf meinem Dev-Server kann ich mein Unterverzeichnis überhaupt nicht aufrufen, ich bekomme einfach einen 500er Error.

Deshalb habe ich das ganze Mal in meiner Vagrant-VM installiert und da kommt zwar etwas zurück, aber das Theme sieht kaputt aus.
Außerdem werden die Links nicht richtig gesetzt.

Habe ich etwas übersehen?

Cache löschen half leider nicht :smiley:

Hier ist ein Screenshot:

 

Viele Grüße

…wobei ich mich frage ob css, js, und fonts nicht gelinkt werden müssen?

@brettvormkopp schrieb:

…wobei ich mich frage ob css, js, und fonts nicht gelinkt werden müssen?

Hat auch nicht geholfen. Habe anschließend auch den Cache von Shopware und den vom Browser gelöscht.

 

Viele Grüße 

Wie sehen denn die anderen Links aus? Ggf muss das Theme angepasst werden?

@brettvormkopp schrieb:

…wobei ich mich frage ob css, js, und fonts nicht gelinkt werden müssen?

5.) Link folders

ln -s ../bundels/ .
ln -s ../media/ .
ln -s ../theme/ .
ln -s ../thumbnail/ .

Hab ihr 5. beachtet? Das sind alle CSS/JS/Bild Ordner die benötigt werden. :slight_smile:

@brettvormkopp‍

Die anderen Links sind genauso aufgebaut, er hängt immer den richtigen Link, an den alten Link an.
Die Seiten sind grundsätzlich aufrufbar, wenn man den richtigen Link eingibt.

 

@h_lohaus‍

Ja Schritt 5 wurde auch befolgt.
Die zusätzlich Verlinkung der Ordner css, js und fonts hat auch nicht geholfen.

 

Viele Grüße

@compragmbh schrieb:

@brettvormkopp‍

Die anderen Links sind genauso aufgebaut, er hängt immer den richtigen Link, an den alten Link an.
Die Seiten sind grundsätzlich aufrufbar, wenn man den richtigen Link eingibt.

Das ist ein Bug in SW6, wenn man beim SaleChannel die URL nicht mit korrekten Pfad angibt. Wenn man ihn hinterlegt, passt der Pfad.

@compragmbh schrieb:

@brettvormkopp‍

Die anderen Links sind genauso aufgebaut, er hängt immer den richtigen Link, an 

@h_lohaus‍

Ja Schritt 5 wurde auch befolgt.
Die zusätzlich Verlinkung der Ordner css, js und fonts hat auch nicht geholfen.

Wie lauten den die Links im Quelltext? Wars du den im staging Verzeichnis, als du die Befehle ausgeführt hast?

@h_lohaus schrieb:

@compragmbh schrieb:

@brettvormkopp‍

Die anderen Links sind genauso aufgebaut, er hängt immer den richtigen Link, an den alten Link an.
Die Seiten sind grundsätzlich aufrufbar, wenn man den richtigen Link eingibt.

Das ist ein Bug in SW6, wenn man beim SaleChannel die URL nicht mit korrekten Pfad angibt. Wenn man ihn hinterlegt, passt der Pfad.

Stimmt, wenn ich meinedomain.de/staging/ als URL eintrage, werden die richtigen Links generiert. Ich kann jetzt durch die Seite klicken.
Danke dafür!
Das css, js etc. kommt aber noch nicht an.

 

Wie lauten den die Links im Quelltext? Wars du den im staging Verzeichnis, als du die Befehle ausgeführt hast?

Wenn ich aufs Frontend gehe, sehe ich in den Requests, dass er sich immer bei der all.cs, bei der demostore-logo.png und bei der all.js einen 500er Error zurückgibt.
Die Links sehen aber richtig aus. Beispielsweise für die demostore-logo.png sieht der Link folgendermaßen aus:

www.sw6.vm/staging/media/77/ee/b8/1575278494/demostore-logo.png

Im Staging-Verzeichnis ist auch die Verknüpfung zum übergeordneten media-Ordner, der Pfad sollte also passen.
Ich habe mal den Request via Postman ausgeführt und mir die Antwort angesehen.
Dort kommt: 

Argument 5 passed to Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer::__construct() must be a string or a callable, Symfony\Component\HttpFoundation\RequestStack given.

Außerdem hänge ich einen Screenshot von staging-Ordner an. Die dortigen Verknüpfungen funktionieren auch, sprich wenn ich auf media klicke, komme ich auf den Ordner /home/vagrant/www/shopware/public/media

 

Viele Grüße

 

 

Gut. Ich hab übrigens ein Fix für dein Problem.

Ich konnte es doch bei mir nachstellen.

Ich weiß nur nicht, wieso es funktiniert. :smiley:

https://github.com/hlohaus/shopware-subdir-project/commit/d60847792ca9091ccc66b77c64fed274cd98d08a

1 Like

Tatsache, das hat geholfen!

Genial, vielen Dank!

Hey @h_lohaus‍, 

mir ist aufgefallen, dass dein subdir-project nur mit dem Development-Template funktioniert.
Mit einer Release-Version, also der Version, die man sich auf der offiziellen Seite holen kann, funktioniert das Ganze dann nicht mehr.
Er fliegt dann bei der index.php in Zeile 46 hin weil er den namespace Shopware\Development\Kernel nicht findet.

Hättest du dafür einen Fix?

Trotzdem natürlich vielen Dank im Voraus für deine Arbeit.

@compragmbh‍

Ich hab es geupdatet:

https://github.com/hlohaus/shopware-subdir-project/commits/master

Viele Grüße Heiner