Configurazione di più siti Web o store
Puoi configurare Adobe Commerce in modo che abbia più siti web o store, ad esempio uno in inglese, uno in francese e uno in tedesco. Consulta Informazioni su siti Web, store e visualizzazioni dello store.
Il processo di impostazione di più archivi dipende dalla scelta di utilizzare domini univoci o condivisi.
Più archivi con domini univoci:
https://first.store.com/
https://second.store.com/
Più archivi con lo stesso dominio:
https://store.com/first/
https://store.com/second/
Aggiungi domini
I domini personalizzati possono essere aggiunti a Pro Staging e a qualsiasi ambiente di produzione; non possono essere aggiunti agli ambienti di integrazione.
Il processo di aggiunta di un dominio dipende dal tipo di account Cloud:
-
Produzione e staging Pro
Aggiungi il nuovo dominio a Fastly, consulta Gestisci domini oppure apri un ticket di supporto per richiedere assistenza. È inoltre necessario Inviare un ticket di supporto Adobe Commerce per richiedere l'aggiunta di nuovi domini a un cluster.
-
Solo per la produzione iniziale
Aggiungi il nuovo dominio a Fastly. Consulta Gestione domini oppure Invia un ticket di supporto Adobe Commerce per richiedere assistenza. È inoltre necessario aggiungere il nuovo dominio alla scheda Domini in Cloud Console:
https://<zone>.magento.cloud/projects/<project-ID>/edit
Configurare l’installazione locale
Per configurare l'installazione locale per l'utilizzo di più archivi, vedere Più siti Web o archivi nella Guida alla configurazione.
Dopo aver creato e testato correttamente l’installazione locale per utilizzare più archivi, è necessario preparare l’ambiente di integrazione:
-
Configura route o percorsi. Specificare la modalità di gestione degli URL in ingresso da parte di Adobe Commerce
-
Configura siti Web, store e visualizzazioni dello store—configura utilizzando l'interfaccia utente di amministrazione di Adobe Commerce
-
Modifica variabili—specifica i valori delle variabili
MAGE_RUN_TYPE
eMAGE_RUN_CODE
nel filemagento-vars.php
-
Distribuisci e verifica ambienti—distribuisci e verifica il ramo
integration
Aggiornamenti alla configurazione degli ambienti Pro
routes.yaml
e la configurazione cron nel file .magento.app.yaml
. L’Adobe consiglia di aggiornare e testare i file di configurazione YAML in un ambiente di integrazione, quindi di distribuire le modifiche nell’ambiente di staging. Se le modifiche non vengono applicate ai siti di gestione temporanea dopo la ridistribuzione e non sono presenti messaggi di errore correlati nel registro, è NECESSARIO Inviare un ticket di supporto Adobe Commerce che descriva le modifiche di configurazione tentate. Includi nel ticket tutti i file di configurazione YAML aggiornati.Configurare route per domini separati
Le route definiscono come elaborare gli URL in ingresso. Più archivi con domini univoci richiedono di definire ogni dominio nel file routes.yaml
. La modalità di configurazione delle route dipende dal funzionamento del sito.
Per configurare le route in un ambiente di integrazione:
-
Nella workstation locale, apri il file
.magento/routes.yaml
in un editor di testo. -
Definisci il dominio e i sottodomini. Il valore upstream
mymagento
è lo stesso della proprietà name nel file.magento.app.yaml
.code language-yaml "http://{default}/": type: upstream upstream: "mymagento:http" "http://<second-site>.{default}/": type: upstream upstream: "mymagento:http"
-
Salva le modifiche nel file
routes.yaml
. -
Passare a Configurare siti Web, archivi e visualizzazioni dello store.
Configurare le posizioni per i domini condivisi
Dove la configurazione dei percorsi definisce la modalità di elaborazione degli URL, la proprietà web
nel file .magento.app.yaml
definisce la modalità di esposizione dell'applicazione al Web. Le posizioni Web consentono una maggiore granularità per le richieste in ingresso. Ad esempio, se il dominio è store.com
, è possibile utilizzare /first
(sito predefinito) e /second
per le richieste a due archivi diversi che condividono un dominio.
Per configurare un nuovo percorso Web:
-
Creare un alias per la radice (
/
). In questo esempio, l'alias è&app
nella riga 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 ...
-
Creare un pass-through per il sito Web (
/website
) e fare riferimento alla directory principale utilizzando l'alias del passaggio precedente.L'alias consente a
website
di accedere ai valori dalla posizione radice. In questo esempio, il sito Webpassthru
si trova alla riga 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 ...
Per configurare un percorso con una directory diversa:
-
Creare un alias per la radice (
/
) e per le posizioni statiche (/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"
-
Creare una sottodirectory per il sito Web nella directory
pub
:pub/<website>
-
Copiare il file
pub/index.php
nella directorypub/<website>
e aggiornare il percorsobootstrap
(/../../app/bootstrap.php
).code language-none try { require __DIR__ . '/../../app/bootstrap.php'; } catch (\Exception $e) {
-
Creare un pass-through per il file
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 ...
-
Eseguire il commit e il push dei file modificati.
pub/<website>/index.php
(se il file si trova in.gitignore
, il push potrebbe richiedere l'opzione force)..magento.app.yaml
Configurare siti Web, store e visualizzazioni dello store
Nell'interfaccia utente amministratore, configura i siti Web, archivi e visualizzazioni archivio di Adobe Commerce. Consulta Configurare più siti Web, store e visualizzazioni dello store in Admin nella Guida alla configurazione.
È importante usare lo stesso nome e lo stesso codice dei siti web, degli store e delle visualizzazioni dello store dall’amministratore quando configuri l’installazione locale. Per aggiornare il file magento-vars.php
sono necessari questi valori.
Modificare le variabili
Anziché configurare un host virtuale NGINX, passare le variabili MAGE_RUN_CODE
e MAGE_RUN_TYPE
utilizzando il file magento-vars.php
nella directory principale del progetto.
Per passare le variabili utilizzando il file magento-vars.php
:
-
Aprire il file
magento-vars.php
in un editor di testo.Il file predefinito
magento-vars.php
deve essere simile al seguente: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; }
-
Spostare il blocco
if
commentato in modo che sia dopo il bloccofunction
e non abbia più commentato.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"; }
-
Sostituire i seguenti valori nel blocco
if (isHttpHost("example.com"))
:-
example.com
—con l'URL di base del tuo sito Web -
default
—con il CODICE univoco per il sito Web o la visualizzazione archivio -
store
—con uno dei seguenti valori:website
—carica il sito Web nella vetrinastore
—caricare una visualizzazione archivio nella vetrina
Per più siti che utilizzano domini univoci:
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"; }
Per più siti con lo stesso dominio, è necessario controllare host e 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; }
-
-
Salva le modifiche nel file
magento-vars.php
.
Distribuire e testare nel server di integrazione
Invia le modifiche all’ambiente di integrazione dell’infrastruttura cloud di Adobe Commerce on e verifica il sito.
-
Aggiungi, conferma e invia modifiche al codice al ramo remoto.
code language-bash git add -A && git commit -m "Implement multiple sites" && git push origin <branch-name>
-
Attendere il completamento della distribuzione.
-
Dopo la distribuzione, apri l’URL dello store in un browser web.
Con un dominio univoco, utilizzare il formato:
http://<magento-run-code>.<site-URL>
Ad esempio:
http://french.master-name-projectID.us.magentosite.cloud/
Con un dominio condiviso, utilizzare il formato:
http://<site-URL>/<magento-run-code>
Ad esempio:
http://master-name-projectID.us.magentosite.cloud/french/
-
Eseguire il test completo del sito e unire il codice nel ramo
integration
per un'ulteriore distribuzione.
Distribuzione a staging e produzione
Segui il processo di distribuzione per distribuzione in staging e produzione. Per gli ambienti Starter e Pro, si utilizza Cloud Console per inviare il codice tra gli ambienti.
L’Adobe consiglia di eseguire test completi nell’ambiente di staging prima di eseguire il push all’ambiente di produzione. Apporta modifiche al codice nell’ambiente di integrazione e avvia di nuovo il processo di distribuzione tra gli ambienti.