Esempio di utilizzo di variabili di ambiente

In questo esempio viene illustrato come impostare valori condivisi, specifici del sistema e sensibili nel sistema di sviluppo, quindi impostare tutti i valori nel sistema di produzione utilizzando una combinazione delle variabili di ambiente di configurazione condivisa, config.php e PHP.

Queste impostazioni di configurazione possono essere condivise tra i sistemi di sviluppo e produzione:

Partita IVA e nome archivio da Archivi > Impostazioni > Configurazione > Generale > Generale

Queste impostazioni di configurazione sono specifiche del sistema o sensibili, come indicato:

  • Invia e-mail a (sensibile) da Archivi > Impostazioni > Configurazione > Generale > Contatti
  • Dominio e-mail predefinito (specifico del sistema) da Archivi > Impostazioni > Configurazione > Clienti > Configurazione cliente > Crea nuove opzioni account

È possibile utilizzare la stessa procedura per configurare le impostazioni nei seguenti riferimenti:

Prima di iniziare

Prima di iniziare, configurare le autorizzazioni e la proprietà del file system come descritto in Prerequisiti per i sistemi di sviluppo, compilazione e produzione.

Presupposti

Questo argomento fornisce un esempio di modifica della configurazione del sistema di produzione. Se lo desideri, puoi scegliere diverse opzioni di configurazione.

Ai fini del presente esempio, si assume quanto segue:

  • Usa il controllo del codice sorgente Git
  • Il sistema di sviluppo è disponibile in un archivio remoto Git denominato mconfig
  • Il ramo di lavoro Git è denominato m2.2_deploy

Passaggio 1: impostare la configurazione nel sistema di sviluppo

Per impostare le impostazioni internazionali e le unità di misura predefinite nel sistema di sviluppo:

  1. Accedi all’amministratore.

  2. Fai clic su Archivi > Impostazioni > Configurazione > Generale > Generale.

  3. Se sono disponibili più siti Web, utilizzare l'elenco Visualizzazione store nell'angolo superiore sinistro per passare a un sito Web diverso, come illustrato nella figura seguente.

    Cambia siti Web

  4. Nel riquadro destro espandere Informazioni archivio.

  5. Se necessario, deselezionare la casella di controllo Usa predefinito accanto al campo Partita IVA.

  6. Immettere un numero nel campo, ad esempio 12345.

  7. Nel campo Nome archivio, immetti un valore (ad esempio My Store).

  8. Fai clic su Salva configurazione.

  9. Utilizzare l'elenco Visualizzazione archivio per selezionare la Configurazione predefinita, come illustrato nella figura seguente.

    Passa alla configurazione predefinita

  10. Nel menu di navigazione a sinistra, in Generale, fare clic su Contatti.

  11. Deselezionare la casella di controllo Usa predefinito accanto al campo Invia e-mail a.

  12. Immetti un indirizzo e-mail nel campo.

  13. Fai clic su Salva configurazione.

  14. Nel riquadro sinistro fare clic su Clienti > Configurazione cliente.

  15. Nel riquadro di destra espandere Crea nuove opzioni account.

  16. Deselezionare la casella di controllo Usa valore di sistema accanto al campo Dominio e-mail predefinito.

  17. Immetti un nome di dominio nel campo.

  18. Fai clic su Salva configurazione.

  19. Se richiesto, svuotare la cache.

Passaggio 2: aggiornare la configurazione

Dopo aver modificato la configurazione nell’amministratore, scrivi la configurazione condivisa in un file come descritto in questa sezione.

Per aggiornare la configurazione:

  1. Accedi al sistema di sviluppo come proprietario del file system o passa a tale proprietario.

  2. Passare alla radice dell'applicazione ed eseguire il comando dump.

    code language-bash
    cd <Magento root dir>
    php bin/magento app:config:dump
    

    Se ad esempio Commerce è installato in /var/www/html/magento2, immettere:

    code language-bash
    cd /var/www/html/magento2
    php bin/magento app:config:dump
    
  3. Conferma che app/etc/config.php è stato aggiornato.

    code language-bash
    git status
    

    Risposta di esempio:

    code language-terminal
    On branch m2.2_deploy
    Changed but not updated:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
           modified:   app/etc/config.php
    
    note warning
    WARNING
    non inviare le modifiche alle directory generated, pub/media o pub/static al controllo del codice sorgente. Puoi generare questi file sul sistema di build. Il sistema di sviluppo ha probabilmente codice, temi e così via, che non sono pronti per essere utilizzati nel sistema di produzione.
  4. Archivia le modifiche apportate a app/etc/config.php solo nel controllo del codice sorgente.

    code language-bash
    git add app/etc/config.php && git commit -m "Updated shared configuration" && git push mconfig m2.2_deploy
    

Tieni presente che anche se app/etc/env.php (la configurazione specifica del sistema) è stato aggiornato, non archiviarlo nel controllo del codice sorgente. Le stesse impostazioni di configurazione verranno create nel sistema di produzione più avanti in questa procedura.

Passaggio 3: aggiornare il sistema di generazione e generare i file

Dopo aver confermato le modifiche apportate alla configurazione condivisa nel controllo del codice sorgente, è possibile richiamarle nel sistema di generazione, compilare il codice e generare file statici. L’ultimo passaggio consiste nel richiamare tali modifiche nel sistema di produzione.

Per aggiornare il sistema di compilazione:

  1. Accedi al sistema di build come proprietario del file system.

  2. Passare alla directory radice dell'applicazione.

    code language-bash
    cd <Magento root dir>
    
  3. Estrarre le modifiche a app/etc/config.php dal controllo del codice sorgente.

    code language-bash
    git pull mconfig m2.2_deploy
    
  4. Compila il codice.

    code language-bash
    bin/magento setup:di:compile
    
  5. Dopo la compilazione del codice, generare i file di visualizzazione statica.

    code language-bash
    bin/magento setup:static-content:deploy -f
    
  6. Controllare le modifiche apportate al controllo del codice sorgente.

    code language-bash
    git add -A && git commit -m "Updated files on build system" && git push mconfig m2.2_deploy
    

Passaggio 4: aggiornare il sistema di produzione

L’ultimo passaggio del processo consiste nell’aggiornare il sistema di produzione. È necessario eseguire questa operazione in due parti:

  • Aggiornare le impostazioni sensibili e specifiche del sistema
  • Aggiornare le impostazioni condivise

Aggiornare le impostazioni sensibili e specifiche del sistema

Per impostare le impostazioni sensibili e specifiche del sistema utilizzando le variabili di ambiente, è necessario conoscere quanto segue:

  • Ambito per ogni impostazione

    Se hai seguito le istruzioni riportate nel passaggio 1, l’ambito per l’invio di e-mail a è globale (ovvero, l’ambito della configurazione predefinita) e l’ambito per il dominio e-mail predefinito è sito web.

    Devi conoscere il codice del sito web per impostare il valore di configurazione del dominio e-mail predefinito. Per ulteriori informazioni su come trovare le impostazioni di configurazione, vedere Utilizzare le variabili di ambiente per sostituire le impostazioni di configurazione.

  • Percorso di configurazione per ogni impostazione

    I percorsi di configurazione utilizzati in questo esempio seguono:

    table 0-row-2 1-row-2 2-row-2
    Nome impostazione Percorso di configurazione
    Invia e-mail a contact/email/recipient_email
    Dominio e-mail predefinito customer/create_account/email_domain

    Puoi trovare tutti i percorsi di configurazione sensibili e specifici del sistema in Riferimento percorsi di configurazione sensibili e specifici del sistema.

Convertire i percorsi di configurazione in nomi di variabili

Come descritto in Utilizzare le variabili di ambiente per sostituire le impostazioni di configurazione, il formato delle variabili è:

<SCOPE>__<SYSTEM__VARIABLE__NAME>

Il valore di <SCOPE> è CONFIG__DEFAULT__ per l'ambito globale o CONFIG__WEBSITES__<WEBSITE CODE> per l'ambito del sito Web.

Per trovare il valore di <SYSTEM__VARIABLE__NAME>, sostituire ogni carattere / nel percorso di configurazione con due caratteri di sottolineatura.

I nomi delle variabili sono i seguenti:

Nome
Percorso configurazione
Nome variabile
Invia e-mail a
contact/email/recipient_email
CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL
Dominio e-mail predefinito
customer/create_account/email_domain
CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN
INFO
Nella tabella precedente è presente un esempio di codice del sito Web, BASE, per l'impostazione di configurazione del dominio e-mail predefinito. Sostituisci BASE con il codice del sito Web appropriato per il tuo archivio.

Impostare le variabili utilizzando le variabili di ambiente

È possibile impostare i valori della variabile in index.php utilizzando il seguente formato:

$_ENV['VARIABLE'] = 'value';

Per impostare i valori della variabile:

  1. Accedi al sistema di produzione come proprietario del file system o passa a tale proprietario.

  2. Apri <Commerce root dir>/pub/index.php in un editor di testo.

  3. In qualsiasi punto di index.php, impostare valori per le variabili simili ai seguenti:

    code language-php
    $_ENV['CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL'] = 'myname@example.com';
    $_ENV['CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN'] = 'magento.com';
    
  4. Salvare le modifiche apportate a pub/index.php e uscire dall'editor di testo.

  5. Procedi alla sezione successiva.

Aggiornare le impostazioni condivise

Questa sezione illustra come richiamare tutte le modifiche apportate ai sistemi di sviluppo e di creazione, che aggiornano le impostazioni di configurazione condivise (Nome store e Partita IVA).

Per aggiornare il sistema di produzione:

  1. Accedi al sistema di produzione come proprietario del file system.

  2. Passa alla directory principale dell’applicazione e abilita la modalità di manutenzione.

    code language-bash
    cd <Magento root dir>
    
    code language-bash
    bin/magento maintenance:enable
    

    Per ulteriori opzioni, ad esempio la possibilità di impostare un indirizzo IP nella whitelist, vedere magento maintenance:enable.

  3. Arrestare i processi di lavoro in esecuzione impostando cron_run su false in app/etc/env.php nel modo seguente:

    code language-php?start_inline=1
    'cron_consumers_runner' => [
            'cron_run' => false
        ]
    
  4. Aggiorna la configurazione.

    code language-bash
    bin/magento app:config:import
    
  5. Infine, kill qualsiasi processo consumer attivo.

    code language-bash
    kill <PID>
    

    Dove PID è l'ID processo da terminare, ad esempio:

    code language-bash
    kill 1234
    
  6. Estrarre il codice dal controllo del codice sorgente.

    code language-bash
    git pull mconfig m2.2_deploy
    
  7. Aggiorna la configurazione.

    code language-bash
    bin/magento app:config:import
    
  8. Pulire la cache.

    code language-bash
    bin/magento cache:clean
    
  9. Termina modalità di manutenzione.

    code language-bash
    bin/magento maintenance:disable
    

Verificare le impostazioni di configurazione in Admin

Questa sezione descrive come verificare le impostazioni di configurazione nell’amministratore del sistema di produzione.

Per verificare le impostazioni di configurazione:

  1. Accedi all’amministratore del sistema di produzione.

  2. Fai clic su Archivi > Impostazioni > Configurazione > Generale > Generale.

  3. Utilizza l'elenco Visualizzazione archivio nell'angolo superiore sinistro per passare a un altro sito Web.

    Le opzioni di configurazione condivise impostate nel sistema di sviluppo vengono visualizzate in modo simile alle seguenti.

    Verifica le impostazioni nel sistema di produzione

    note info
    INFO
    Il campo Nome archivio è modificabile nell'ambito del sito Web ma non è modificabile se si passa all'ambito Configurazione predefinita. Questo è il risultato di come si impostano le opzioni nel sistema di sviluppo. Il valore di Partita IVA non è modificabile nell'ambito del sito Web.
  4. Se non lo hai già fatto, passa all’ambito Configurazione predefinita.

  5. Nel menu di navigazione a sinistra, in Generale, fare clic su Contatti.

    Il campo Invia e-mail a non è modificabile, come illustrato nella figura seguente. Si tratta di un’impostazione sensibile.

    Verifica le impostazioni nel sistema di produzione

  6. Nel riquadro sinistro fare clic su Clienti > Configurazione cliente.

  7. Nel riquadro di destra espandere Crea nuove opzioni account.

    Il valore del campo Dominio e-mail predefinito viene visualizzato come segue. Si tratta di un’impostazione specifica del sistema.

    Verifica le impostazioni nel sistema di produzione

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c