Einrichten mehrerer Websites oder Stores
Sie können Adobe Commerce so konfigurieren, dass es über mehrere Websites oder Stores verfügt, z. B. einen englischen Store, einen französischen Store und einen deutschen Store. Siehe Grundlegendes zu Websites, Stores und Store-Ansichten.
Die Einrichtung mehrerer Stores hängt davon ab, ob Sie eindeutige oder freigegebene Domänen verwenden.
Mehrere Stores mit eindeutigen Domänen:
https://first.store.com/
https://second.store.com/
Mehrere Stores mit derselben Domäne:
https://store.com/first/
https://store.com/second/
Domänen hinzufügen
Benutzerdefinierte Domänen können zu Pro Staging- und beliebigen Produktionsumgebungen hinzugefügt werden. Sie können nicht zu Integrationsumgebungen hinzugefügt werden.
Der Prozess zum Hinzufügen einer Domäne hängt vom Typ des Cloud-Kontos ab:
-
Für Pro Staging und Produktion
Fügen Sie die neue Domäne zu Fastly hinzu, siehe Domänen verwalten oder öffnen Sie ein Support-Ticket, um Unterstützung anzufordern. Darüber hinaus müssen Sie ein Adobe Commerce Support-Ticket senden , um neue Domänen anzufordern, die einem Cluster hinzugefügt werden sollen.
-
Nur für Starterproduktion
Fügen Sie die neue Domäne zu Fastly hinzu, siehe Domänen verwalten oder Senden eines Adobe Commerce-Supporttickets , um Unterstützung anzufordern. Darüber hinaus müssen Sie die neue Domäne auf der Registerkarte Domänen im Feld Cloud Console:
https://<zone>.magento.cloud/projects/<project-ID>/edit
hinzufügen.
Lokale Installation konfigurieren
Informationen zum Konfigurieren der lokalen Installation für die Verwendung mehrerer Stores finden Sie unter Mehrere Websites oder Stores im Konfigurationshandbuch.
Nachdem Sie die lokale Installation erfolgreich erstellt und getestet haben, um mehrere Stores zu verwenden, müssen Sie Ihre Integrationsumgebung vorbereiten:
-
Routen oder Orte konfigurieren - geben Sie an, wie eingehende URLs von Adobe Commerce verarbeitet werden
-
Einrichten von Websites, Stores und Speichern von Ansichten - Konfigurieren Sie diese über die Administrator-Benutzeroberfläche von Adobe Commerce
-
Variablen ändern - geben Sie die Werte der Variablen
MAGE_RUN_TYPE
undMAGE_RUN_CODE
in der Dateimagento-vars.php
an -
Bereitstellen und Testen von Umgebungen - Bereitstellen und Testen des Zweigs
integration
Konfigurationsaktualisierungen für Pro-Umgebungen
routes.yaml
und die Cron-Konfiguration in der Datei .magento.app.yaml
zu aktualisieren. Adobe empfiehlt, die YAML-Konfigurationsdateien in einer Integrationsumgebung zu aktualisieren und zu testen und anschließend Änderungen in der Staging-Umgebung bereitzustellen. Wenn Ihre Änderungen nach der erneuten Bereitstellung nicht auf Staging-Sites angewendet werden und keine zugehörigen Fehlermeldungen im Protokoll vorhanden sind, senden Sie ein Adobe Commerce-Supportticket 🔗, in dem die versucht wurde, die Konfigurationsänderungen zu beschreiben. Schließen Sie alle aktualisierten YAML-Konfigurationsdateien in das Ticket ein.Routen für separate Domänen konfigurieren
Routen definieren, wie eingehende URLs verarbeitet werden. Bei mehreren Stores mit eindeutigen Domänen müssen Sie jede Domäne in der Datei routes.yaml
definieren. Wie Sie Routen konfigurieren, hängt davon ab, wie Ihre Site funktionieren soll.
So konfigurieren Sie Routen in einer Integrationsumgebung:
-
Öffnen Sie auf Ihrer lokalen Workstation die Datei
.magento/routes.yaml
in einem Texteditor. -
Definieren Sie die Domäne und Subdomänen. Der Upstream-Wert
mymagento
ist derselbe Wert wie die name -Eigenschaft in der Datei.magento.app.yaml
.code language-yaml "http://{default}/": type: upstream upstream: "mymagento:http" "http://<second-site>.{default}/": type: upstream upstream: "mymagento:http"
-
Speichern Sie Ihre Änderungen in der Datei "
routes.yaml
". -
Fahren Sie mit Einrichten von Websites, Geschäften und Speichern von Ansichten fort.
Orte für freigegebene Domänen konfigurieren
Wo die Routenkonfiguration definiert, wie die URLs verarbeitet werden, definiert die Eigenschaft web
in der Datei .magento.app.yaml
, wie Ihre Anwendung dem Web bereitgestellt wird. Web-Standorte ermöglichen eine größere Granularität für eingehende Anforderungen. Wenn Ihre Domäne beispielsweise store.com
ist, können Sie /first
(Standardsite) und /second
für Anforderungen an zwei verschiedene Stores verwenden, die eine Domäne teilen.
So konfigurieren Sie einen neuen Webspeicherort:
-
Erstellen Sie einen Alias für den Stamm (
/
). In diesem Beispiel lautet der Alias&app
in Zeile 3.code language-yaml web: locations: "/": &app # The public directory of the app, relative to its root. root: "pub" passthru: "/index.php" index: - index.php ...
-
Erstellen Sie einen Pass-Through für die Website (
/website
) und referenzieren Sie mithilfe des Alias aus dem vorherigen Schritt den Stammordner.Der Alias ermöglicht
website
den Zugriff auf Werte vom Stammspeicherort. In diesem Beispiel ist die Websitepassthru
in Zeile 21.code language-yaml web: locations: "/": &app # The public directory of the app, relative to its root. root: "pub" passthru: "/index.php" index: - index.php ... "/media": root: "pub/media" ... "/static": root: "pub/static" allow: true scripts: false passthru: "/front-static.php" rules: ^/static/version\d+/(?<resource>.*)$: passthru: "/static/$resource" "/<website>": *app ...
So konfigurieren Sie einen Speicherort mit einem anderen Ordner:
-
Erstellen Sie einen Alias für den Stammordner (
/
) und für die statischen Speicherorte (/static
).code language-yaml web: locations: "/": &root # The public directory of the app, relative to its root. root: "pub" passthru: "/index.php" index: - index.php ... "/static": &static root: "pub/static"
-
Erstellen Sie ein Unterverzeichnis für die Website unter dem Verzeichnis
pub
:pub/<website>
-
Kopieren Sie die Datei "
pub/index.php
" in das Verzeichnis "pub/<website>
" und aktualisieren Sie den Pfad "bootstrap
"(/../../app/bootstrap.php
).code language-none try { require __DIR__ . '/../../app/bootstrap.php'; } catch (\Exception $e) {
-
Erstellen Sie einen Pass-Through für die Datei
index.php
.code language-yaml web: locations: "/": &root # The public directory of the app, relative to its root. root: "pub" passthru: "/index.php" index: - index.php ... "/media": root: "pub/media" ... "/static": &static root: "pub/static" allow: true scripts: false passthru: "/front-static.php" rules: ^/static/version\d+/(?<resource>.*)$: passthru: "/static/$resource" "/<website>": <<: *root passthru: "<website>/index.php" "/<website>/static": *static ...
-
Übernehmen und pushen Sie die geänderten Dateien.
pub/<website>/index.php
(Wenn diese Datei in.gitignore
enthalten ist, erfordert der Push-Vorgang möglicherweise die erzwungene Option.).magento.app.yaml
Einrichten von Websites, Geschäften und Speichern von Ansichten
Richten Sie in der Admin-Benutzeroberfläche Ihre Adobe Commerce- Websites, Stores und Store-Ansichten ein. Siehe Einrichten mehrerer Websites, Stores und Speichern von Ansichten im Admin im Konfigurationshandbuch.
Es ist wichtig, bei der Einrichtung Ihrer lokalen Installation denselben Namen und Code Ihrer Websites, Stores und Ansichten von Ihrem Administrator zu verwenden. Sie benötigen diese Werte, wenn Sie die Datei magento-vars.php
aktualisieren.
Variablen ändern
Übergeben Sie anstelle der Konfiguration eines virtuellen NGINX-Hosts die Variablen MAGE_RUN_CODE
und MAGE_RUN_TYPE
mithilfe der Datei magento-vars.php
in Ihren Projektstammordner.
Übergeben von Variablen mithilfe der magento-vars.php
-Datei:
-
Öffnen Sie die Datei "
magento-vars.php
" in einem Texteditor.Die standardmäßige
magento-vars.php
-Datei sollte wie folgt aussehen:code language-php <?php // enable, adjust and copy this code for each store you run // Store #0, default one //if (isHttpHost("example.com")) { // $_SERVER["MAGE_RUN_CODE"] = "default"; // $_SERVER["MAGE_RUN_TYPE"] = "store"; //} function isHttpHost($host) { if (!isset($_SERVER['HTTP_HOST'])) { return false; } return $_SERVER['HTTP_HOST'] === $host; }
-
Verschieben Sie den kommentierten Block
if
so, dass er nach dem Blockfunction
liegt und nicht mehr kommentiert ist.code language-php <?php // enable, adjust and copy this code for each store you run // Store #0, default one function isHttpHost($host) { if (!isset($_SERVER['HTTP_HOST'])) { return false; } return $_SERVER['HTTP_HOST'] === $host; } if (isHttpHost("example.com")) { $_SERVER["MAGE_RUN_CODE"] = "default"; $_SERVER["MAGE_RUN_TYPE"] = "store"; }
-
Ersetzen Sie die folgenden Werte im Block
if (isHttpHost("example.com"))
:-
example.com
- mit der Basis-URL Ihrer Website -
default
- mit dem eindeutigen CODE für Ihre Website - oder Store-Ansicht -
store
—mit einem der folgenden Werte:website
- Laden Sie die Website in die Storefront.store
- Laden Sie eine Store-Ansicht in die Storefront.
Für mehrere Sites mit eindeutigen Domänen:
code language-php <?php function isHttpHost($host) { if (!isset($_SERVER['HTTP_HOST'])) { return false; } return $_SERVER['HTTP_HOST'] === $host; } if (isHttpHost("second.store.com")) { $_SERVER["MAGE_RUN_CODE"] = "<second-site>"; $_SERVER["MAGE_RUN_TYPE"] = "website"; }elseif (isHttpHost("store.com")){ $_SERVER["MAGE_RUN_CODE"] = "base"; $_SERVER["MAGE_RUN_TYPE"] = "website"; }
Bei mehreren Sites mit derselben Domäne müssen Sie den Host und den URI überprüfen:
code language-php <?php function isHttpHost($host) { if (!isset($_SERVER['HTTP_HOST'])) { return false; } return $_SERVER['HTTP_HOST'] === $host; } if (isHttpHost("store.com")) { $code = "base"; $type = "website"; $uri = explode('/', $_SERVER['REQUEST_URI']); if (isset($uri[1]) && $uri[1] == 'second') { $code = '<second-site>'; $type = 'website'; } $_SERVER["MAGE_RUN_CODE"] = $code; $_SERVER["MAGE_RUN_TYPE"] = $type; }
-
-
Speichern Sie Ihre Änderungen in der Datei "
magento-vars.php
".
Bereitstellen und Testen auf dem Integrationsserver
Übertragen Sie Ihre Änderungen in die Adobe Commerce-Integrationsumgebung der Cloud-Infrastruktur und testen Sie Ihre Site.
-
Fügen Sie Änderungen am Remote-Zweig hinzu, übertragen Sie diese und fügen Sie sie per Push-Benachrichtigung hinzu.
code language-bash git add -A && git commit -m "Implement multiple sites" && git push origin <branch-name>
-
Warten Sie, bis die Bereitstellung abgeschlossen ist.
-
Öffnen Sie nach der Bereitstellung Ihre Store-URL in einem Webbrowser.
Verwenden Sie für eine eindeutige Domäne das folgende Format:
http://<magento-run-code>.<site-URL>
Beispiel:
http://french.master-name-projectID.us.magentosite.cloud/
Bei einer freigegebenen Domäne verwenden Sie folgendes Format:
http://<site-URL>/<magento-run-code>
Beispiel:
http://master-name-projectID.us.magentosite.cloud/french/
-
Testen Sie Ihre Site gründlich und führen Sie den Code zur weiteren Bereitstellung mit der Verzweigung
integration
zusammen.
Bereitstellen in Staging und Produktion
Befolgen Sie den Bereitstellungsprozess für Bereitstellung in Staging und Produktion. In Starter- und Pro-Umgebungen verwenden Sie die Cloud Console, um Code über Umgebungen hinweg zu pushen.
Adobe empfiehlt vollständige Tests in der Staging-Umgebung, bevor sie an die Produktionsumgebung gesendet wird. Nehmen Sie Code-Änderungen in der Integrationsumgebung vor und starten Sie den Prozess zur erneuten Bereitstellung in allen Umgebungen.