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.

WARNING
I dati del catalogo aumentano con l’aumentare del numero di siti web e store. A seconda dell’architettura del progetto, gli archivi aggiuntivi possono comportare un processo di indicizzazione più lungo e tempi di risposta più lenti per le pagine di catalogo non memorizzate nella cache. L’Adobe consiglia di monitorare attentamente le prestazioni del sito.

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/
TIP
Per aggiungere una visualizzazione archivio all'URL di base del sito, non è necessario creare più directory. Vedere Aggiungere il codice dell'archivio all'URL di base nella Guida alla configurazione.

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:

  1. Configura route o percorsi. Specificare la modalità di gestione degli URL in ingresso da parte di Adobe Commerce

  2. Configura siti Web, store e visualizzazioni dello store—configura utilizzando l'interfaccia utente di amministrazione di Adobe Commerce

  3. Modifica variabili—specifica i valori delle variabili MAGE_RUN_TYPE e MAGE_RUN_CODE nel file magento-vars.php

  4. Distribuisci e verifica ambienti—distribuisci e verifica il ramo integration

TIP
È possibile utilizzare un ambiente locale per configurare più siti Web o store. Consulta le istruzioni di Cloud Docker per configurare più siti Web o store.

Aggiornamenti alla configurazione degli ambienti Pro

WARNING
Alcuni progetti Pro richiedono un ticket di supporto per aggiornare la configurazione della route nel file 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:

  1. Nella workstation locale, apri il file .magento/routes.yaml in un editor di testo.

  2. 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"
    
  3. Salva le modifiche nel file routes.yaml.

  4. 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:

  1. 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
                ...
    
  2. 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 Web passthru 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:

  1. 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"
    
  2. Creare una sottodirectory per il sito Web nella directory pub: pub/<website>

  3. Copiare il file pub/index.php nella directory pub/<website> e aggiornare il percorso bootstrap (/../../app/bootstrap.php).

    code language-none
    try {
        require __DIR__ . '/../../app/bootstrap.php';
    } catch (\Exception $e) {
    
  4. 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
              ...
    
  5. 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:

  1. 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;
    }
    
  2. Spostare il blocco if commentato in modo che sia dopo il blocco function 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";
    }
    
  3. 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 vetrina
      • store—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;
    }
    
  4. 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.

  1. 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>
    
  2. Attendere il completamento della distribuzione.

  3. 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/

  4. 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.

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26