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.
NOTE
Eftersom Adobe Commerce i molninfrastrukturen endast stöder produktions- och underhållslägen är Avancerat > Utvecklare inte tillgängligt i Admin. Du måste ha systemadministratörsbehörighet för att kunna slutföra konfigurationshanteringsuppgifter. Du kan konfigurera ytterligare inställningar med miljövariabler.

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:

  1. Om det finns en miljövariabel använder du den anpassade konfigurationen och ignorerar standardkonfigurationen.
  2. 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.
  3. 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.

TIP
Se Konfigurationshantering i Konfigurationsguiden för mer information om åsidosättningsschemat för pipeline-distribution.

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:

Prioritet
Konfiguration
Metod
Beskrivning
1
Cloud Console
miljövariabler
Värden som lagts till från fliken Variabler i miljökonfigurationen i Cloud Console. Ange värden här för känsliga eller miljöspecifika konfigurationer. Inställningarna som anges här kan inte redigeras från administratören. Se Miljökonfigurationsvariabler.
2
.magento.app.yaml
Värden som lagts till i 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.
3
app/etc/env.php
Miljöspecifika konfigurationsvärden som lagras här läggs till med kommandot 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.
4
app/etc/config.php
Värden som lagras här läggs till med kommandot 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.
5
Databas
Värden som lagras här läggs till genom att konfigurationer ställs in i administratören. Konfigurationer som angetts med någon av ovanstående metoder är låsta (nedtonade) och kan inte redigeras från administratören.
6
config.xml
Många konfigurationer har standardvärden angivna i filen 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.

WARNING
Kommandot 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:
      ...
NOTE
Innan statiska filer distribueras komprimeras statiskt innehåll med GZIP i bygg- och distributionsfaserna. Komprimering av statiska filer minskar belastningen på servern och ökar platsens prestanda. Mer information om hur du anpassar eller inaktiverar filkomprimering finns i byggalternativ.

Procedur för att hantera dina inställningar

Följande illustrerar en översikt över processen på hög nivå:

Översikt över hanteringen av startkonfigurationen

Så här konfigurerar du arkivet och skapar en konfigurationsfil:

  1. 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.

  2. Byt till din projektkatalog på din lokala arbetsstation.

  3. Skapa en lokal dump av fjärrdatabasen.

    code language-bash
    magento-cloud db:dump
    
  4. 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.

WARNING
Du kan redigera filen 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:

  1. Använd SSH på din lokala arbetsstation för att logga in på fjärrprojektet och -miljön.

    code language-bash
    magento-cloud ssh
    
  2. 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
    
  3. Å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:

  1. Följ instruktionerna för att generera filen config.php.

  2. Öppna filen config.php och ta bort den sista raden.

  3. Öppna filen config.local.php och kopiera innehållet.

  4. Klistra in innehållet i filen config.php, spara och lägg sedan till det i Git.

  5. 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.

WARNING
Den här processen skriver över lagringskonfigurationen. Gör bara följande om miljöerna innehåller samma arkiv.
  1. Aktivera variabeln SCD_ON_DEMAND med .magento.env.yaml file i integreringsmiljön.

  2. Lägg till de nödvändiga språkinställningarna med din administratör.

  3. 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"
    
  4. 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
    
  5. Lägg till, implementera och push-ändra kod för att uppdatera en fjärrmiljö.

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26