Meerdere websites of winkels instellen
U kunt Adobe Commerce zo configureren dat er meerdere websites of winkels zijn, zoals een Engelse winkel, een Franse winkel en een Duitse winkel. Zie Begrijpend websites, opslag, en opslagmeningen.
Het proces voor het instellen van meerdere winkels hangt af van het feit of u ervoor kiest unieke of gedeelde domeinen te gebruiken.
Meerdere opslagruimten met unieke domeinen:
https://first.store.com/
https://second.store.com/
Meerdere opslagruimten met hetzelfde domein:
https://store.com/first/
https://store.com/second/
Domeinen toevoegen
Aangepaste domeinen kunnen worden toegevoegd aan Pro Staging en elke productieomgeving. Ze kunnen niet worden toegevoegd aan integratieomgevingen.
Het proces om een domein toe te voegen hangt af van het type Cloud-account:
-
Voor Pro Staging en Productie
Voeg het nieuwe domein aan Fastly toe, zie domeinenbeheren, of open een steunkaartje om hulp te verzoeken. Bovendien moet u een kaartje van de Steun van Adobe Commercevoorleggen om nieuwe domeinen te verzoeken om aan een cluster worden toegevoegd.
-
Alleen voor startproductie
Voeg het nieuwe domein aan Fastly toe, zie domeinenbeheren, of leg een kaartje van de Steun van Adobe Commercevoor om hulp te verzoeken. Bovendien moet u het nieuwe domein aan het lusje van Domeinen in Cloud Console toevoegen:
https://<zone>.magento.cloud/projects/<project-ID>/edit
Lokale installatie configureren
Om uw lokale installatie te vormen om veelvoudige opslag te gebruiken, zie Veelvoudige websites of opslagin de Gids van de Configuratie.
Nadat u de lokale installatie hebt gemaakt en getest om meerdere winkels te kunnen gebruiken, moet u de integratieomgeving voorbereiden:
-
vorm routes of plaatsen - specificeer hoe inkomende URLs door Adobe Commerce wordt behandeld
-
Opstelling websites, opslag, en opslagmeningen - vorm gebruikend Adobe Commerce Admin UI
-
wijzigt variabelen - specificeer de waarden van
MAGE_RUN_TYPE
enMAGE_RUN_CODE
variabelen in hetmagento-vars.php
dossier -
stelt en test milieu's op - stel en test de
integration
tak op
Configuratie-updates voor Pro-omgevingen
routes.yaml
dossier en de kroonconfiguratie in het .magento.app.yaml
dossier bij te werken. De Adobe adviseert het bijwerken van en het testen van de configuratiedossiers van YAML in een milieu van de Integratie, dan het opstellen van veranderingen in het het Opvoeren milieu. Als uw veranderingen niet op het Opvoeren plaatsen na u worden toegepast en er geen verwante foutenmeldingen in het logboek zijn, dan MOET u een kaartje van de Steun van Adobe Commercevoorleggen dat de geprobeerd configuratieveranderingen beschrijft. Neem de bijgewerkte YAML-configuratiebestanden op in het ticket.Vorm routes voor afzonderlijke domeinen
Routes bepalen hoe binnenkomende URLs wordt verwerkt. Voor meerdere opslagruimten met unieke domeinen moet u elk domein in het routes.yaml
-bestand definiëren. De manier u routes vormt hangt van af hoe u uw plaats wilt werken.
om routes in een integratiemilieu te vormen:
-
Open het bestand
.magento/routes.yaml
in een teksteditor op uw lokale werkstation. -
Definieer het domein en de subdomeinen. De waarde
mymagento
upstream is dezelfde waarde als de eigenschap name in het.magento.app.yaml
-bestand.code language-yaml "http://{default}/": type: upstream upstream: "mymagento:http" "http://<second-site>.{default}/": type: upstream upstream: "mymagento:http"
-
Sla de wijzigingen op in het
routes.yaml
-bestand. -
Ga aan Vastgestelde websites, opslag, en opslagmeningenvoort.
Locaties voor gedeelde domeinen configureren
Waar de routeneconfiguratie bepaalt hoe URLs wordt verwerkt, bepaalt het web
bezit in het .magento.app.yaml
dossier hoe uw toepassing aan het Web wordt blootgesteld. Het Web plaatsen staat meer granulariteit voor inkomende verzoeken toe. Als uw domein bijvoorbeeld store.com
is, kunt u /first
(standaardsite) en /second
gebruiken voor aanvragen bij twee verschillende winkels die een domein delen.
om een nieuwe Webplaats te vormen:
-
Creeer een alias voor de wortel (
/
). In dit voorbeeld is de alias&app
op regel 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 ...
-
Maak een pass-through voor de website (
/website
) en verwijs naar de hoofdmap met de alias van de vorige stap.Met de alias krijgt
website
toegang tot waarden vanaf de hoofdlocatie. In dit voorbeeld bevindt de websitepassthru
zich op regel 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 ...
om een plaats met een verschillende folder te vormen:
-
Creeer een alias voor de wortel (
/
) en voor de statische (/static
) plaatsen.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"
-
Maak een submap voor de website onder de map
pub
:pub/<website>
-
Kopieer het
pub/index.php
-bestand naar depub/<website>
-map en werk hetbootstrap
-pad (/../../app/bootstrap.php
) bij.code language-none try { require __DIR__ . '/../../app/bootstrap.php'; } catch (\Exception $e) {
-
Maak een doorvoerbewerking voor het
index.php
-bestand.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 ...
-
Leg de gewijzigde bestanden vast en duw erop.
pub/<website>/index.php
(Als dit bestand zich in.gitignore
bevindt, heeft de drukknop mogelijk de optie force nodig.).magento.app.yaml
Websites, winkels en winkels instellen
In Admin UI, opstelling uw Websites van Adobe Commerce , Sporen, en Mening van de Opslag. Zie Opstelling veelvoudige websites, opslag, en opslagmeningen in Adminin de Gids van de Configuratie.
Het is belangrijk om dezelfde naam en code van uw websites te gebruiken, en meningen van uw Admin op te slaan wanneer u opstelling uw lokale installatie. U hebt deze waarden nodig wanneer u het magento-vars.php
-bestand bijwerkt.
Variabelen wijzigen
In plaats van een virtuele NGINX-host te configureren, geeft u de variabelen MAGE_RUN_CODE
en MAGE_RUN_TYPE
door met behulp van het bestand magento-vars.php
in de hoofdmap van het project.
om variabelen over te gaan die het magento-vars.php
dossier gebruiken:
-
Open het
magento-vars.php
-bestand in een teksteditor.Het standaard
magento-vars.php
dossierzou als het volgende moeten kijken: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; }
-
Verplaats het gecommenteerde
if
blok zodat het na hetfunction
blok is en niet meer gecommentarieerd.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"; }
-
Vervang de volgende waarden in het blok
if (isHttpHost("example.com"))
:-
example.com
- met de basis URL van uw website -
default
- met unieke CODE voor uw website of opslagmening -
store
—met een van de volgende waarden:website
- laad de website in de storefrontstore
- laad a opslagmening in de storefront
Voor meerdere sites die unieke domeinen gebruiken:
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"; }
Voor veelvoudige plaatsen met het zelfde domein, moet u de gastheer en URI controleren:
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; }
-
-
Sla de wijzigingen op in het
magento-vars.php
-bestand.
Implementeren en testen op de integratieserver
Breng uw wijzigingen aan in uw Adobe Commerce op de integratieomgeving van de cloudinfrastructuur en test uw site.
-
Wijzigingen in de externe vertakking toevoegen, doorvoeren en doorvoeren.
code language-bash git add -A && git commit -m "Implement multiple sites" && git push origin <branch-name>
-
Wacht tot de implementatie is voltooid.
-
Na de implementatie opent u de URL van je winkel in een webbrowser.
Gebruik voor een uniek domein de volgende indeling:
http://<magento-run-code>.<site-URL>
Bijvoorbeeld:
http://french.master-name-projectID.us.magentosite.cloud/
Gebruik voor een gedeeld domein de volgende indeling:
http://<site-URL>/<magento-run-code>
Bijvoorbeeld:
http://master-name-projectID.us.magentosite.cloud/french/
-
Test uw site grondig en voeg de code samen naar de
integration
-vertakking voor verdere implementatie.
Distribueren naar Staging en Productie
Volg het plaatsingsproces voor het opstellen aan het Opvoeren en de Productie. Voor Starter- en Pro-omgevingen gebruikt u Cloud Console om code in verschillende omgevingen te plaatsen.
Adobe beveelt aan om volledig te testen in de testomgeving voordat naar de productieomgeving wordt geduwd. Breng codeveranderingen in het integratiemilieu aan en begin het proces om over milieu's opnieuw op te stellen.