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, Geschäften 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 verwaltenoder ein Support-Ticket öffnen, um Unterstützung anzufordern. Darüber hinaus müssen Sie Senden eines Adobe Commerce-Support-Tickets , 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 verwaltenoder Senden eines Adobe Commerce-Support-Tickets um Hilfe zu ersuchen. Darüber hinaus müssen Sie die neue Domäne zum Domänen im Cloud Console:
https://<zone>.magento.cloud/projects/<project-ID>/edit
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:
-
Konfigurieren von Routen oder Orten—spezifizieren, wie eingehende URLs von Adobe Commerce verarbeitet werden
-
Einrichten von Websites, Geschäften und Speichern von Ansichten—konfigurieren Sie die Adobe Commerce Admin-Benutzeroberfläche
-
Variablen ändern—geben Sie die Werte der
MAGE_RUN_TYPE
undMAGE_RUN_CODE
Variablen inmagento-vars.php
file -
Bereitstellen und Testen von Umgebungen—stellen und testen Sie die
integration
Verzweigung
Konfigurationsaktualisierungen für Pro-Umgebungen
routes.yaml
und die Cron-Konfiguration in der .magento.app.yaml
-Datei. 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 entsprechenden Fehlermeldungen im Protokoll vorhanden sind, dann MUST Senden eines Adobe Commerce-Support-Tickets beschreibt die versucht Konfigurationsänderungen. 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 im routes.yaml
-Datei. 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
.magento/routes.yaml
in einem Texteditor. -
Definieren Sie die Domäne und Subdomänen. Die
mymagento
Upstream value ist derselbe Wert wie die name -Eigenschaft in.magento.app.yaml
-Datei.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
routes.yaml
-Datei. -
Weiter zu Einrichten von Websites, Geschäften und Speichern von Ansichten.
Orte für freigegebene Domänen konfigurieren
Wenn die Routenkonfiguration definiert, wie die URLs verarbeitet werden, wird die web
-Eigenschaft in der .magento.app.yaml
definiert, wie Ihre Anwendung im Internet verfügbar gemacht wird. Web locations mehr Granularität für eingehende Anforderungen. Wenn Ihre Domäne beispielsweise store.com
, können Sie /first
(Standardsite) und /second
für Anfragen an zwei verschiedene Stores, 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 Stamm.Der Alias ermöglicht Folgendes:
website
, um auf Werte vom Stammspeicherort zuzugreifen. In diesem Beispiel wird die Websitepassthru
ist online 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 Stamm (
/
) und für das statische (/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 der
pub
directory:pub/<website>
-
Kopieren Sie die
pub/index.php
in diepub/<website>
und aktualisieren Sie dasbootstrap
path (/../../app/bootstrap.php
).code language-none try { require __DIR__ . '/../../app/bootstrap.php'; } catch (\Exception $e) {
-
Erstellen Sie einen Pass-Through für die
index.php
-Datei.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
, kann die Push-Benachrichtigung die Force-Option erfordern.).magento.app.yaml
Einrichten von Websites, Geschäften und Speichern von Ansichten
Im Admin-Benutzeroberfläche, richten Sie Adobe Commerce ein. Websites, Stores, und Store-Ansichten. 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 magento-vars.php
-Datei.
Variablen ändern
Übergeben Sie anstelle der Konfiguration eines virtuellen NGINX-Hosts die MAGE_RUN_CODE
und MAGE_RUN_TYPE
Variablen, die magento-vars.php
-Datei in Ihrem Stammverzeichnis des Projekts.
So übergeben Sie Variablen mithilfe der magento-vars.php
file:
-
Öffnen Sie die
magento-vars.php
in einem Texteditor.Die default
magento-vars.php
file 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; }
-
Kommentar verschieben
if
blockieren, damit after diefunction
und nicht mehr kommentiert.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 in der
if (isHttpHost("example.com"))
block:-
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 der Storefrontstore
—laden Sie eine Store-Ansicht in der 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 die Host und URI:
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
magento-vars.php
-Datei.
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 mit dem
integration
-Verzweigung für eine weitere Bereitstellung.
Bereitstellen in Staging und Produktion
Befolgen Sie den Implementierungsprozess für Bereitstellung in Staging und Produktion. Für 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.