Konfigurera flera webbplatser eller butiker
Du kan konfigurera Adobe Commerce så att det finns flera webbplatser eller butiker, till exempel en engelsk butik, en fransk butik och en tysk butik. Se Förstå webbplatser, butiker och butiksvyer.
Hur du konfigurerar flera arkiv beror på om du väljer att använda unika eller delade domäner.
Flera butiker med unika domäner:
https://first.store.com/
https://second.store.com/
Flera butiker med samma domän:
https://store.com/first/
https://store.com/second/
Lägg till domäner
Anpassade domäner kan läggas till i Pro Staging och valfri produktionsmiljö. De kan inte läggas till i integreringsmiljöer.
Hur du lägger till en domän beror på typen av molnkonto:
-
För Pro Staging and Production
Lägg till den nya domänen i Snabb, se Hantera domäner eller öppna en supportbiljett för att begära hjälp. Dessutom måste du skicka en Adobe Commerce-supportanmälan för att begära att nya domäner läggs till i ett kluster.
-
Endast för startproduktion
Lägg till den nya domänen i Snabb, se Hantera domäner eller Skicka en Adobe Commerce-supportanmälan för att få hjälp. Dessutom måste du lägga till den nya domänen på fliken Domäner i Cloud Console:
https://<zone>.magento.cloud/projects/<project-ID>/edit
Konfigurera lokal installation
Mer information om hur du konfigurerar din lokala installation så att du kan använda flera butiker finns i Flera webbplatser eller butiker i Konfigurationshandboken.
När du har skapat och testat den lokala installationen för att kunna använda flera butiker måste du förbereda din integreringsmiljö:
-
Konfigurera vägar eller platser - ange hur inkommande URL:er hanteras av Adobe Commerce
-
Konfigurera webbplatser, butiker och butiksvyer - konfigurera med användargränssnittet i Adobe Commerce Admin
-
Ändra variabler - ange värden för variablerna
MAGE_RUN_TYPE
ochMAGE_RUN_CODE
i filenmagento-vars.php
-
Distribuera och testa miljöer - distribuera och testa grenen
integration
Konfigurationsuppdateringar för Pro-miljöer
routes.yaml
och i cron-konfigurationen i filen .magento.app.yaml
. Adobe rekommenderar att du uppdaterar och testar YAML-konfigurationsfiler i en integreringsmiljö och sedan distribuerar ändringar i mellanlagringsmiljön. Om dina ändringar inte tillämpas på mellanlagringswebbplatser efter att du har omdistribuerat och det inte finns några relaterade felmeddelanden i loggen, MÅSTE Skicka en Adobe Commerce-supportanmälan som beskriver de konfigurationsändringar du har gjort. Inkludera eventuella uppdaterade YAML-konfigurationsfiler i biljetten.Konfigurera vägar för separata domäner
Rutorna definierar hur inkommande URL:er ska behandlas. Flera arkiv med unika domäner kräver att du definierar varje domän i filen routes.yaml
. Hur du konfigurerar vägar beror på hur du vill att webbplatsen ska fungera.
Så här konfigurerar du vägar i en integreringsmiljö:
-
Öppna filen
.magento/routes.yaml
i en textredigerare på din lokala arbetsstation. -
Definiera domänen och underdomänerna. Värdet
mymagento
uppströms är samma värde som egenskapen name i filen.magento.app.yaml
.code language-yaml "http://{default}/": type: upstream upstream: "mymagento:http" "http://<second-site>.{default}/": type: upstream upstream: "mymagento:http"
-
Spara ändringarna i filen
routes.yaml
. -
Fortsätt till Konfigurera webbplatser, butiker och butiksvyer.
Konfigurera platser för delade domäner
Där routningskonfigurationen definierar hur URL-adresserna behandlas, definierar egenskapen web
i filen .magento.app.yaml
hur ditt program exponeras för webben. Webb platser tillåter mer granularitet för inkommande begäranden. Om din domän till exempel är store.com
kan du använda /first
(standardplats) och /second
för begäranden till två olika butiker som delar en domän.
Så här konfigurerar du en ny webbplats:
-
Skapa ett alias för roten (
/
). I det här exemplet är aliaset&app
på rad 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 ...
-
Skapa en vidarekoppling för webbplatsen (
/website
) och referera till roten med hjälp av aliaset från föregående steg.Aliaset tillåter
website
att komma åt värden från rotplatsen. I det här exemplet finns webbplatsenpassthru
på rad 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 ...
Så här konfigurerar du en plats med en annan katalog:
-
Skapa ett alias för roten (
/
) och för de statiska (/static
) platserna.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"
-
Skapa en underkatalog för webbplatsen under katalogen
pub
:pub/<website>
-
Kopiera filen
pub/index.php
till katalogenpub/<website>
och uppdatera sökvägenbootstrap
(/../../app/bootstrap.php
).code language-none try { require __DIR__ . '/../../app/bootstrap.php'; } catch (\Exception $e) {
-
Skapa en vidarekoppling för filen
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 ...
-
Verkställ och skicka de ändrade filerna.
pub/<website>/index.php
(Om den här filen finns i.gitignore
kan push-funktionen kräva alternativet force.).magento.app.yaml
Konfigurera webbplatser, butiker och butiksvyer
Konfigurera dina webbplatser, Store och Store-vyer i administratörsgränssnittet. Se Konfigurera flera webbplatser, butiker och butiksvyer i Admin i Konfigurationshandboken.
Det är viktigt att du använder samma namn och kod för dina webbplatser, butiker och butiksvyer från din administratör när du konfigurerar din lokala installation. Du behöver dessa värden när du uppdaterar filen magento-vars.php
.
Ändra variabler
I stället för att konfigurera en virtuell NGINX-värd skickar du variablerna MAGE_RUN_CODE
och MAGE_RUN_TYPE
med hjälp av filen magento-vars.php
i projektets rotkatalog.
Så här skickar du variabler med magento-vars.php
file:
-
Öppna filen
magento-vars.php
i en textredigerare.standardfilen
magento-vars.php
ska se ut så här: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; }
-
Flytta det kommenterade
if
-blocket så att det är efterfunction
-blocket och inte längre kommenteras.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"; }
-
Ersätt följande värden i blocket
if (isHttpHost("example.com"))
:-
example.com
- med bas-URL:en för din webbplats -
default
- med den unika KODEN för din webbplats eller butiksvy -
store
- med ett av följande värden:website
- läs in webbplatsen i butikenstore
- läs in en butiksvy i butiken
För flera platser som använder unika domäner:
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"; }
För flera webbplatser med samma domän måste du kontrollera host och 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; }
-
-
Spara ändringarna i filen
magento-vars.php
.
Distribuera och testa på integreringsservern
Gör ändringar i er Adobe Commerce i molninfrastruktursintegreringsmiljö och testa er webbplats.
-
Lägg till, implementera och skicka kodändringar till fjärrgrenen.
code language-bash git add -A && git commit -m "Implement multiple sites" && git push origin <branch-name>
-
Vänta tills distributionen är klar.
-
Efter distributionen öppnar du din Store-URL i en webbläsare.
Använd formatet
http://<magento-run-code>.<site-URL>
med en unik domänExempel:
http://french.master-name-projectID.us.magentosite.cloud/
Använd formatet
http://<site-URL>/<magento-run-code>
med en delad domänExempel:
http://master-name-projectID.us.magentosite.cloud/french/
-
Testa webbplatsen noggrant och sammanfoga koden till grenen
integration
för ytterligare distribution.
Distribuera till mellanlagring och produktion
Följ distributionsprocessen för distribution till Förproduktion och produktion. I Starter- och Pro-miljöer använder du Cloud Console för att skicka kod mellan miljöer.
Adobe rekommenderar att du gör en fullständig testning i mellanlagringsmiljön innan du går vidare till produktionsmiljön. Gör kodändringar i integreringsmiljön och börja distribuera i olika miljöer igen.