Hantera butikskonfiguration
Standardkonfigurationerna för din butik lagras i en config.xml
för rätt modul. När du ändrar inställningarna i Commerce Admin eller CLI bin/magento config:set
återspeglas ändringarna i kärndatabasen, särskilt i tabellen core_config_data
. De här inställningarna skriver över standardkonfigurationerna som lagras i filen config.xml
.
Lagringsinställningarna, som refererar till konfigurationerna i avsnittet Admin Stores > Settings > Configuration , lagras i distributionskonfigurationsfilerna baserat på typen av konfiguration:
app/etc/config.php
- konfigurationsinställningar för butiker, webbplatser, moduler eller tillägg, statisk filoptimering och systemvärden för statisk innehållsdistribution. Se referensen config.php i konfigurationshandboken.app/etc/env.php
- värden för systemspecifika åsidosättningar och känsliga inställningar som INTE ska lagras i källkontrollen. Se referensen env.php i konfigurationshandboken.
Konfigurationshantering är ett sätt att driftsätta enhetliga lagringsinställningar i alla miljöer med minimalt antal driftavbrott med hjälp av driftsättning i pipeline. Adobe Commerce i molninfrastrukturprojektet innehåller byggservern, bygg och distribuera skript och distributionsmiljöer som utformats med pipeline-distributionsstrategin i åtanke.
Schema för åsidosättning av konfiguration
Alla systemkonfigurationer ställs in under bygg- och distributionsfaserna enligt följande åsidosättningsschema:
- Om det finns en miljövariabel använder du den anpassade konfigurationen och ignorerar standardkonfigurationen.
- Om det inte finns någon miljövariabel använder du konfigurationen från ett
MAGENTO_CLOUD_RELATIONSHIPS
namn/värde-par i.magento.app.yaml
file . Ignorera standardkonfigurationen. - Om det inte finns någon miljövariabel och
MAGENTO_CLOUD_RELATIONSHIPS
inte innehåller något namn/värde-par tar du bort all anpassad konfiguration och använder värdena från standardkonfigurationen.
Sammanfattningsvis åsidosätter miljövariabler alla andra värden.
Om samma inställning är konfigurerad på flera platser använder programmet följande konfigurationshierarki för att avgöra vilket värde som ska användas i miljön:
Metod
miljövariabler
.magento.app.yaml
variables
-avsnittet i filen .magento.app.yaml
. Ange värden här för att säkerställa en konsekvent konfiguration i alla miljöer. Ange inte känsliga värden i filen .magento.app.yaml
. Se Programinställningar.app/etc/env.php
app:config:dump
. Ange systemspecifika och känsliga värden med hjälp av systemvariabler eller CLI. Se Känsliga data. Filen env.php
ingår inte i källkontrollen.app/etc/config.php
app:config:dump
. Delade konfigurationsvärden läggs till i config.php
. Ange delad konfiguration från administratören eller med CLI. Filen config.php
ingår i källkontrollen.config.xml
config.xml
för en modul. Om Adobe Commerce inte hittar något värde som angetts av någon av de föregående metoderna, återgår det till standardvärdet, om det angetts.Konfigurationsdump
Du kan använda följande ece-tools
-kommando för att generera en config.php
-fil som innehåller alla aktuella lagringskonfigurationer:
./vendor/bin/ece-tools config:dump
Data"dumpade" till filen app/etc/config.php
blir låsta, vilket innebär att motsvarande fält i Commerce Admin blir skrivskyddade. Filen config.php
innehåller bara de inställningar som du konfigurerar. Standardvärdena låses inte. Genom att bara låsa de värden som du uppdaterar säkerställs också att alla tillägg som används i mellanlagrings- och produktionsmiljöer inte bryts på grund av skrivskyddade konfigurationer, speciellt Snabbt.
ece-tools config:dump
hämtar inte detaljerade konfigurationer för moduler, t.ex. B2B. Om du behöver en omfattande konfigurationsdump använder du kommandot app:config:dump
, men det här kommandot låser konfigurationsvärden i ett skrivskyddat läge.Känsliga data
Alla känsliga konfigurationer exporteras till filen app/etc/env.php
när du använder kommandot bin/magento app:config:dump
. Du kan ange känsliga värden med CLI-kommandot: bin/magento config:sensitive:set
. Mer information om hur du anger konfigurationsinställningar som känsliga eller systemspecifika finns i Känsliga och miljöspecifika inställningar i guiden Commerce PHP-tillägg .
Se en lista med känsliga eller systemspecifika inställningar i konfigurationshandboken.
SCD-prestanda
Beroende på storleken på din butik kan du ha ett stort antal statiska innehållsfiler att distribuera. Statiskt innehåll distribueras vanligtvis under distributionsfasen när programmet är i underhållsläge. Den optimala konfigurationen är att generera statiskt innehåll under byggfasen. Se Välja en distributionsstrategi.
Om du har aktiverat Configuration Management efter att ha dumpat konfigurationerna, bör du flytta SCD_*-variablerna från distributionsfasen till byggfasen för att korrekt aktivera statisk innehållsgenerering under byggfasen. Se Miljövariabler.
Före konfigurationshantering:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
SCD_STRATEGY: compact
SCD_MATRIX:
...
REDIS_USE_SLAVE_CONNECTION: 1
När konfigurationshantering har aktiverats:
Flytta SCD_*-variablerna till byggscenen:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
REDIS_USE_SLAVE_CONNECTION: 1
build:
SCD_STRATEGY: compact
SCD_MATRIX:
...
Procedur för att hantera dina inställningar
Följande illustrerar en översikt över processen på hög nivå:
Så här konfigurerar du arkivet och skapar en konfigurationsfil:
-
Slutför alla konfigurationer för butikerna i Admin för en av miljöerna:
- Startsida: En aktiv utvecklingsgren
- Pro: En aktiv gren i integreringsmiljön
Dessa konfigurationer inkluderar inte de faktiska produkterna såvida du inte planerar att dumpa databasen från den här miljön till mellanlagrings- och produktionsmiljöer. Utvecklingsdatabaser innehåller vanligtvis inte alla data i din butik.
-
Byt till din projektkatalog på din lokala arbetsstation.
-
Skapa en lokal dump av fjärrdatabasen.
code language-bash magento-cloud db:dump
-
Lägg till, implementera och push-ändra kod för att uppdatera en fjärrmiljö.
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>
När distributionen är klar loggar du in på Admin för den uppdaterade miljön för att verifiera inställningarna. Fortsätt att sammanfoga eventuella ytterligare konfigurationer till miljö för förproduktion och produktion efter behov.
Uppdatera konfigurationer
När du ändrar miljön via Admin och kör kommandot igen läggs nya konfigurationer till i koden i filen config.php
.
config.php
manuellt i miljö för förproduktion och produktion, men du bör inte göra det. Filen hjälper till att hålla alla konfigurationer konsekventa i alla miljöer. Ta aldrig bort filen config.php
för att återskapa den. Om du tar bort filen kan specifika konfigurationer och inställningar som krävs för bygg- och distributionsprocesser tas bort.Återställ konfigurationsfiler
Kopior av de ursprungliga app/etc/env.php
- och app/etc/config.php
-filerna skapades under distributionsprocessen och lagras i samma mapp. Följande visar BAK (säkerhetskopieringsfiler) och PHP (originalfiler) i samma app/etc
-mapp:
...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...
Äldre konfigurationer använde filen app/etc/config.local.php
. Se Migrera äldre konfigurationer.
Så här återställer du konfigurationsfiler:
-
Använd SSH på din lokala arbetsstation för att logga in på fjärrprojektet och -miljön.
code language-bash magento-cloud ssh
-
Kontrollera platsen och tillgängligheten för säkerhetskopieringsfilerna.
code language-bash ./vendor/bin/ece-tools backup:list
Exempelsvar:
code language-none The list of backup files: app/etc/env.php app/etc/config.php
-
Återställ säkerhetskopierade filer.
code language-bash ./vendor/bin/ece-tools backup:restore
Migrera äldre konfigurationer
Om du uppgraderar till Adobe Commerce i molninfrastruktur 2.2 eller senare kanske du vill migrera inställningar från filen config.local.php
till den nya config.php
-filen. Om konfigurationsinställningarna i din administratör matchar innehållet i filen följer du instruktionerna för att generera och lägga till filen config.php
.
Om de skiljer sig åt kan du lägga till innehåll från filen config.local.php
till den nya config.php
-filen:
-
Följ instruktionerna för att generera filen
config.php
. -
Öppna filen
config.php
och ta bort den sista raden. -
Öppna filen
config.local.php
och kopiera innehållet. -
Klistra in innehållet i filen
config.php
, spara och lägg sedan till det i Git. -
Driftsätt i olika miljöer.
Du slutför bara den här migreringen en gång. Efter migreringen använder du filen config.php
.
Ändra nationella inställningar
Du kan ändra språkinställningarna för din butik utan att följa en komplex import- och exportprocess för konfiguration, om du har SCD_ON_DEMAND aktiverat. Du kan uppdatera språkinställningarna med Admin.
Du kan lägga till ytterligare en språkinställning i förings- eller produktionsmiljön genom att aktivera SCD_ON_DEMAND
i en integrationsgren, generera en uppdaterad config.php
-fil med den nya språkinställningsinformationen och kopiera konfigurationsfilen till målmiljön.
-
Aktivera variabeln
SCD_ON_DEMAND
med.magento.env.yaml
file i integreringsmiljön. -
Lägg till de nödvändiga språkinställningarna med din administratör.
-
Använd SSH för att logga in i fjärrmiljön och generera filen
/app/etc/config.php
som innehåller alla språkområden.code language-bash ssh <SSH-URL> "./vendor/bin/ece-tools config:dump"
-
Kopiera den nya konfigurationsfilen från fjärrintegreringsmiljön till den lokala systemkatalogen.
code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Lägg till, implementera och push-ändra kod för att uppdatera en fjärrmiljö.