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:
-
Accedi all’amministratore.
-
Fai clic su Archivi > Impostazioni > Configurazione > Generale > Generale.
-
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.
-
Nel riquadro destro espandere Informazioni archivio.
-
Se necessario, deselezionare la casella di controllo Usa predefinito accanto al campo Partita IVA.
-
Immettere un numero nel campo, ad esempio
12345
. -
Nel campo Nome archivio, immetti un valore (ad esempio
My Store
). -
Fai clic su Salva configurazione.
-
Utilizzare l'elenco Visualizzazione archivio per selezionare la Configurazione predefinita, come illustrato nella figura seguente.
-
Nel menu di navigazione a sinistra, in Generale, fare clic su Contatti.
-
Deselezionare la casella di controllo Usa predefinito accanto al campo Invia e-mail a.
-
Immetti un indirizzo e-mail nel campo.
-
Fai clic su Salva configurazione.
-
Nel riquadro sinistro fare clic su Clienti > Configurazione cliente.
-
Nel riquadro di destra espandere Crea nuove opzioni account.
-
Deselezionare la casella di controllo Usa valore di sistema accanto al campo Dominio e-mail predefinito.
-
Immetti un nome di dominio nel campo.
-
Fai clic su Salva configurazione.
-
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:
-
Accedi al sistema di sviluppo come proprietario del file system o passa a tale proprietario.
-
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
-
Conferma che
app/etc/config.php
è stato aggiornato.code language-bash git status
Risposta di esempio:
code language-none 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
opub/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. -
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:
-
Accedi al sistema di build come proprietario del file system.
-
Passare alla directory radice dell'applicazione.
code language-bash cd <Magento root dir>
-
Estrarre le modifiche a
app/etc/config.php
dal controllo del codice sorgente.code language-bash git pull mconfig m2.2_deploy
-
Compila il codice.
code language-bash bin/magento setup:di:compile
-
Dopo la compilazione del codice, generare i file di visualizzazione statica.
code language-bash bin/magento setup:static-content:deploy -f
-
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:
contact/email/recipient_email
CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL
customer/create_account/email_domain
CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN
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:
-
Accedi al sistema di produzione come proprietario del file system o passa a tale proprietario.
-
Apri
<Commerce root dir>/pub/index.php
in un editor di testo. -
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';
-
Salvare le modifiche apportate a
pub/index.php
e uscire dall'editor di testo. -
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:
-
Accedi al sistema di produzione come proprietario del file system.
-
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
. -
Arrestare i processi di lavoro in esecuzione impostando
cron_run
sufalse
inapp/etc/env.php
nel modo seguente:code language-php?start_inline=1 'cron_consumers_runner' => [ 'cron_run' => false ]
-
Aggiorna la configurazione.
code language-bash bin/magento app:config:import
-
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
-
Estrarre il codice dal controllo del codice sorgente.
code language-bash git pull mconfig m2.2_deploy
-
Aggiorna la configurazione.
code language-bash bin/magento app:config:import
-
Pulire la cache.
code language-bash bin/magento cache:clean
-
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:
-
Accedi all’amministratore del sistema di produzione.
-
Fai clic su Archivi > Impostazioni > Configurazione > Generale > Generale.
-
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.
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. -
Se non lo hai già fatto, passa all’ambito Configurazione predefinita.
-
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.
-
Nel riquadro sinistro fare clic su Clienti > Configurazione cliente.
-
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.