Gestione configurazione archivio
Le configurazioni predefinite per l'archivio sono archiviate in config.xml
per il modulo appropriato. Quando si modificano le impostazioni nel comando Commerce Admin o CLI bin/magento config:set
, le modifiche vengono applicate al database di base, in particolare alla tabella core_config_data
. Queste impostazioni sovrascrivono le configurazioni predefinite memorizzate nel file config.xml
.
Le impostazioni dell'archivio, che fanno riferimento alle configurazioni nella sezione Archivi > Impostazioni > Configurazione dell'amministratore, vengono memorizzate nei file di configurazione della distribuzione in base al tipo di configurazione:
app/etc/config.php
: impostazioni di configurazione per archivi, siti Web, moduli o estensioni, ottimizzazione di file statici e valori di sistema correlati alla distribuzione di contenuti statici. Vedere il riferimento a config.php nella Guida alla configurazione.app/etc/env.php
—valori per le sostituzioni specifiche del sistema e le impostazioni sensibili che devono essere NOT archiviate nel controllo del codice sorgente. Vedere il riferimento a env.php nella Guida alla configurazione.
La gestione della configurazione consente di implementare impostazioni di archiviazione coerenti negli ambienti con tempi di inattività minimi tramite l’implementazione della pipeline. Il progetto Adobe Commerce on cloud infrastructure include il server di compilazione, gli script di compilazione e distribuzione e gli ambienti di distribuzione progettati tenendo presente la strategia di distribuzione della pipeline.
Schema di sostituzione configurazione
Tutte le configurazioni di sistema vengono impostate durante le fasi di generazione e distribuzione in base al seguente schema di sostituzione:
- Se esiste una variabile di ambiente, utilizza la configurazione personalizzata e ignora quella predefinita.
- Se non esiste una variabile di ambiente, utilizzare la configurazione di una coppia nome-valore
MAGENTO_CLOUD_RELATIONSHIPS
nel file.magento.app.yaml
. Ignora la configurazione predefinita. - Se una variabile di ambiente non esiste e
MAGENTO_CLOUD_RELATIONSHIPS
non contiene una coppia nome-valore, rimuovere tutte le configurazioni personalizzate e utilizzare i valori dalla configurazione predefinita.
Per riepilogare, le variabili di ambiente sovrascrivono tutti gli altri valori.
Se la stessa impostazione è configurata in più posizioni, l’applicazione si basa sulla seguente gerarchia di configurazione per determinare quale valore applicare all’ambiente:
Method
variabili di ambiente
.magento.app.yaml
variables
del file .magento.app.yaml
. Specifica qui i valori per garantire una configurazione coerente in tutti gli ambienti. Non specificare valori sensibili nel file .magento.app.yaml
. Vedere Impostazioni applicazione.app/etc/env.php
app:config:dump
. Imposta i valori sensibili e specifici del sistema utilizzando le variabili di ambiente o la CLI. Vedi Dati sensibili. Il file env.php
è not incluso nel controllo del codice sorgente.app/etc/config.php
app:config:dump
. I valori della configurazione condivisa sono stati aggiunti a config.php
. Imposta la configurazione condivisa dall’amministratore o utilizzando CLI. File config.php
incluso nel controllo del codice sorgente.config.xml
config.xml
per un modulo. Se Adobe Commerce non è in grado di trovare alcun valore impostato con uno dei metodi precedenti, viene utilizzato il valore predefinito, se impostato.Immagine configurazione
È possibile utilizzare il comando ece-tools
seguente per generare un file config.php
contenente tutte le configurazioni dell'archivio correnti:
./vendor/bin/ece-tools config:dump
I dati "scaricati" nel file app/etc/config.php
diventano bloccati, il che significa che il campo corrispondente nell'amministratore di Commerce diventa di sola lettura. Il file config.php
include solo le impostazioni configurate. Non blocca i valori predefiniti. Il blocco solo dei valori aggiornati assicura inoltre che tutte le estensioni utilizzate negli ambienti di staging e produzione non si interrompano a causa di configurazioni di sola lettura, in particolare Fastly.
ece-tools config:dump
non recupera le configurazioni dettagliate per i moduli, ad esempio B2B. Se è necessario un dump di configurazione completo, utilizzare il comando app:config:dump
, ma questo comando blocca i valori di configurazione in uno stato di sola lettura.Dati sensibili
Tutte le configurazioni sensibili vengono esportate nel file app/etc/env.php
quando si utilizza il comando bin/magento app:config:dump
. È possibile impostare valori sensibili utilizzando il comando CLI: bin/magento config:sensitive:set
. Consulta Impostazioni sensibili e specifiche dell'ambiente nella Guida delle estensioni Commerce PHP per scoprire come definire le impostazioni di configurazione sensibili o specifiche del sistema.
Vedere un elenco di impostazioni sensibili o specifiche del sistema nella Guida alla configurazione.
Prestazioni SCD
A seconda delle dimensioni dell’archivio, è possibile che sia presente un numero elevato di file di contenuto statico da distribuire. Normalmente, il contenuto statico viene distribuito durante la fase di distribuzione quando l’applicazione è in modalità Manutenzione. La configurazione ottimale consiste nel generare contenuto statico durante la fase di build. Vedere Scelta di una strategia di distribuzione.
Se dopo aver scaricato le configurazioni hai abilitato la gestione della configurazione, devi spostare le variabili SCD_* dalla fase di distribuzione alla fase di build per abilitare correttamente la generazione di contenuto statico durante la fase di build. Vedi Variabili di ambiente.
Prima della gestione della configurazione:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
SCD_STRATEGY: compact
SCD_MATRIX:
...
REDIS_USE_SLAVE_CONNECTION: 1
Dopo aver abilitato Gestione configurazione:
Sposta le variabili SCD_* nella fase di build:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
REDIS_USE_SLAVE_CONNECTION: 1
build:
SCD_STRATEGY: compact
SCD_MATRIX:
...
Procedura per gestire le impostazioni
Di seguito viene illustrata una panoramica di alto livello di questo processo:
Per configurare l'archivio e generare un file di configurazione:
-
Completa tutte le configurazioni per i negozi nell’Admin per uno degli ambienti:
- Starter: un ramo di sviluppo attivo
- Pro: un ramo attivo nell’ambiente di integrazione
Queste configurazioni non includono i prodotti effettivi a meno che non si pianifichi il download del database da questo ambiente agli ambienti di staging e produzione. In genere, i database di sviluppo non includono i dati dell'archivio completo.
-
Sulla workstation locale, passa alla directory del progetto.
-
Crea un dump locale del database remoto.
code language-bash magento-cloud db:dump
-
Aggiungere, eseguire il commit e inviare le modifiche al codice per aggiornare un ambiente remoto.
code language-bash git add app/etc/config.php
code language-bash git commit -m "Add system-specific configuration"
code language-bash git push origin <branch-name>
Al termine della distribuzione, accedi all’amministratore dell’ambiente aggiornato per verificare le impostazioni. Continua a unire eventuali configurazioni aggiuntive agli ambienti di staging e produzione, in base alle esigenze.
Aggiorna configurazioni
Quando modifichi l'ambiente tramite l'amministratore ed esegui nuovamente il comando, le nuove configurazioni vengono aggiunte al codice nel file config.php
.
config.php
negli ambienti di staging e produzione, è non consigliato. Il file consente di mantenere tutte le configurazioni coerenti in tutti gli ambienti. Non eliminare mai il file config.php
per ricrearlo. L’eliminazione del file può rimuovere configurazioni e impostazioni specifiche necessarie per i processi di build e distribuzione.Ripristina file di configurazione
Copie dei file app/etc/env.php
e app/etc/config.php
originali sono state create durante il processo di distribuzione e archiviate nella stessa cartella. Di seguito sono riportati i file BAK (backup file) e PHP (file originali) nella stessa cartella app/etc
:
...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...
Le configurazioni meno recenti utilizzavano il file app/etc/config.local.php
. Consulta Eseguire la migrazione di configurazioni precedenti.
Per ripristinare i file di configurazione:
-
Sulla workstation locale, utilizzare SSH per accedere al progetto e all'ambiente remoti.
code language-bash magento-cloud ssh
-
Verificare il percorso e la disponibilità dei file di backup.
code language-bash ./vendor/bin/ece-tools backup:list
Risposta di esempio:
code language-none The list of backup files: app/etc/env.php app/etc/config.php
-
Ripristinare i file di backup.
code language-bash ./vendor/bin/ece-tools backup:restore
Migra configurazioni meno recenti
Se si esegue l'aggiornamento ad Adobe Commerce su infrastruttura cloud 2.2 o versione successiva, è possibile migrare le impostazioni dal file config.local.php
al nuovo file config.php
. Se le impostazioni di configurazione dell'amministratore corrispondono al contenuto del file, seguire le istruzioni per generare e aggiungere il file config.php
.
In caso di differenze, è possibile aggiungere il contenuto del file config.local.php
al nuovo file config.php
:
-
Seguire le istruzioni per generare il file
config.php
. -
Aprire il file
config.php
ed eliminare l'ultima riga. -
Aprire il file
config.local.php
e copiare il contenuto. -
Incollare il contenuto nel file
config.php
, salvarlo e completare l'aggiunta a Git. -
Distribuisci nei tuoi ambienti.
Puoi completare questa migrazione solo una volta. Dopo la migrazione, utilizzare il file config.php
.
Cambia impostazioni internazionali
È possibile modificare le impostazioni internazionali dell'archivio senza seguire un processo di importazione ed esportazione di configurazione complesso, se hai abilitato SCD_ON_DEMAND. Puoi aggiornare le impostazioni internazionali utilizzando l’amministratore.
È possibile aggiungere un'altra lingua all'ambiente di staging o produzione abilitando SCD_ON_DEMAND
in un ramo di integrazione, generare un file config.php
aggiornato con le nuove informazioni sulle impostazioni internazionali e copiare il file di configurazione nell'ambiente di destinazione.
-
Nell'ambiente di integrazione, abilitare la variabile
SCD_ON_DEMAND
utilizzando il file.magento.env.yaml
. -
Aggiungi le lingue necessarie utilizzando il tuo amministratore.
-
Utilizzare SSH per accedere all'ambiente remoto e generare il file
/app/etc/config.php
contenente tutte le impostazioni internazionali.code language-bash ssh <SSH-URL> "./vendor/bin/ece-tools config:dump"
-
Copia il nuovo file di configurazione dall’ambiente di integrazione remota alla directory dell’ambiente locale.
code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Aggiungere, eseguire il commit e inviare le modifiche al codice per aggiornare un ambiente remoto.