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_RELATIONSHIPSnamn/värde-par i.magento.app.yamlfile . Ignorera standardkonfigurationen. - Om det inte finns någon miljövariabel och
MAGENTO_CLOUD_RELATIONSHIPSinte 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.yamlvariables-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.phpapp: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.phpapp: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.xmlconfig.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.phpcode 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:listExempelsvar:
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.phpoch ta bort den sista raden. -
Öppna filen
config.local.phpoch 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_DEMANDmed.magento.env.yamlfile 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.phpsom 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ö.