Speicherkonfigurationsverwaltung
Die Standardkonfigurationen für Ihren Store werden in einer config.xml
für das entsprechende Modul. Wenn Sie Einstellungen in Commerce Admin oder CLI ändern bin/magento config:set
angegeben ist, werden die Änderungen in der Hauptdatenbank, insbesondere in der core_config_data
Tabelle. Diese Einstellungen überschreiben die Standardkonfigurationen, die in der Datei config.xml
-Datei.
Speichereinstellungen, die auf die Konfigurationen in der Admin-Konsole verweisen Stores > Einstellungen > Konfiguration -Abschnitt in den Konfigurationsdateien der Bereitstellung gespeichert werden, die auf dem Konfigurationstyp basieren:
app/etc/config.php
—Konfigurationseinstellungen für Stores, Websites, Module oder Erweiterungen, statische Dateioptimierung und Systemwerte für die Bereitstellung statischer Inhalte. Siehe config.php-Referenz im Konfigurationshandbuch.app/etc/env.php
—Werte für systemspezifische Außerkraftsetzungen und vertrauliche Einstellungen, die NOT in der Quell-Code-Verwaltung gespeichert werden. Siehe env.php-Referenz im Konfigurationshandbuch.
Das Konfigurationsmanagement bietet eine Möglichkeit, konsistente Speichereinstellungen in all Ihren Umgebungen bereitzustellen, ohne dass die Pipeline-Bereitstellung zu minimalen Ausfallzeiten führt. Das Projekt Adobe Commerce on Cloud-Infrastruktur umfasst die Build-Server-, Build- und Bereitstellungsumgebungen sowie die Bereitstellungsumgebungen, die mit dem Pipeline-Bereitstellungsstrategie im Hinterkopf.
Konfigurationsüberschreibungsschema
Alle Systemkonfigurationen werden während der Build- und Bereitstellungsphasen gemäß dem folgenden Überschreibungsschema festgelegt:
- Wenn eine Umgebungsvariable vorhanden ist, verwenden Sie die benutzerdefinierte Konfiguration und ignorieren Sie die Standardkonfiguration.
- Wenn keine Umgebungsvariable vorhanden ist, verwenden Sie die Konfiguration aus einer
MAGENTO_CLOUD_RELATIONSHIPS
Name-Wert-Paar in der.magento.app.yaml
file. Ignorieren Sie die Standardkonfiguration. - Wenn keine Umgebungsvariable vorhanden ist und
MAGENTO_CLOUD_RELATIONSHIPS
enthält kein Name-Wert-Paar, entfernen Sie alle angepassten Konfigurationen und verwenden Sie die Werte aus der Standardkonfiguration.
Zusammenfassend lässt sich sagen, dass Umgebungsvariablen alle anderen Werte außer Kraft setzen.
Wenn dieselbe Einstellung an mehreren Stellen konfiguriert ist, verlässt sich die Anwendung auf die folgende Konfigurationshierarchie, um zu bestimmen, welcher Wert auf die Umgebung angewendet werden soll:
Methode
Umgebungsvariablen
.magento.app.yaml
variables
Abschnitt .magento.app.yaml
-Datei. Geben Sie hier Werte an, um eine konsistente Konfiguration in allen Umgebungen sicherzustellen. Geben Sie keine sensiblen Werte im .magento.app.yaml
-Datei. Siehe Anwendungseinstellungen.app/etc/env.php
app:config:dump
Befehl. Legen Sie die systemspezifischen und sensiblen Werte mithilfe von Umgebungsvariablen oder der CLI fest. Siehe Sensible Daten. Die env.php
Datei ist not in der Quell-Code-Verwaltung enthalten ist.app/etc/config.php
app:config:dump
Befehl. Freigegebene Konfigurationswerte werden zu config.php
. Legen Sie die freigegebene Konfiguration über den Administrator oder mithilfe der CLI fest. Die config.php
-Datei ist in der Quell-Code-Verwaltung enthalten.config.xml
config.xml
-Datei für ein Modul. Wenn Adobe Commerce keinen Wert finden kann, der von einer der vorangehenden Methoden festgelegt wurde, wird der Standardwert zurückgesetzt, sofern festgelegt.Konfigurations-Dump
Sie können Folgendes verwenden: ece-tools
-Befehl zum Generieren einer config.php
-Datei, die alle aktuellen Speicherkonfigurationen enthält:
./vendor/bin/ece-tools config:dump
Die Daten wurden in die app/etc/config.php
wird locked, was bedeutet, dass das entsprechende Feld im Commerce Admin schreibgeschützt. Die config.php
enthält nur die Einstellungen, die Sie konfigurieren. Die Standardwerte werden nicht gesperrt. Durch das Sperren nur der von Ihnen aktualisierten Werte wird außerdem sichergestellt, dass alle in der Staging- und Produktionsumgebung verwendeten Erweiterungen aufgrund schreibgeschützter Konfigurationen nicht beschädigt werden, insbesondere schnell.
ece-tools config:dump
-Befehl ruft keine detaillierten Konfigurationen für Module ab, z. B. B2B. Wenn Sie eine umfassende Konfigurationsablage benötigen, verwenden Sie die app:config:dump
-Befehl, aber dieser Befehl sperrt Konfigurationswerte in einem schreibgeschützten Status.Sensible Daten
Alle sensiblen Konfigurationen, die in app/etc/env.php
-Datei, wenn Sie die bin/magento app:config:dump
Befehl. Sie können sensible Werte mithilfe des CLI-Befehls festlegen: bin/magento config:sensitive:set
. Siehe Sensible und umgebungsspezifische Einstellungen im Commerce-PHP-Erweiterungen Anleitung, um zu erfahren, wie Sie Konfigurationseinstellungen als vertraulich oder systemspezifisch festlegen.
Liste mit Sensible oder systemspezifische Einstellungen im Konfigurationshandbuch.
SCD-Leistung
Abhängig von der Größe Ihres Stores können Sie eine große Anzahl statischer Inhaltsdateien bereitstellen. Normalerweise werden statische Inhalte während der Bereitstellungsphase bereitgestellt, wenn sich die Anwendung im Wartungsmodus befindet. Die optimale Konfiguration besteht darin, während der Build-Phase statischen Inhalt zu generieren. Siehe Implementierungsstrategie auswählen.
Wenn Sie Configuration Management nach dem Ablegen der Konfigurationen aktiviert haben, sollten Sie die SCD_*-Variablen aus der Bereitstellungsphase in die Build-Phase verschieben, um während der Build-Phase die statische Inhaltserstellung ordnungsgemäß zu aktivieren. Siehe Umgebungsvariablen.
Vor der Konfigurationsverwaltung:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
SCD_STRATEGY: compact
SCD_MATRIX:
...
REDIS_USE_SLAVE_CONNECTION: 1
Nach der Aktivierung der Konfigurationsverwaltung:
Verschieben Sie die SCD_*-Variablen in die Build-Phase:
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
REDIS_USE_SLAVE_CONNECTION: 1
build:
SCD_STRATEGY: compact
SCD_MATRIX:
...
Verfahren zur Verwaltung Ihrer Einstellungen
Die folgende Abbildung zeigt einen allgemeinen Überblick über diesen Prozess:
So konfigurieren Sie Ihren Speicher und generieren eine Konfigurationsdatei:
-
Schließen Sie alle Konfigurationen für Ihre Stores in Admin für eine der Umgebungen ab:
- Starter: Eine aktive Entwicklungsverzweigung
- Pro: Eine aktive Verzweigung in der Integrationsumgebung
Diese Konfigurationen umfassen nicht die eigentlichen Produkte, es sei denn, Sie planen, die Datenbank aus dieser Umgebung in Staging- und Produktionsumgebungen zu lagern. In der Regel enthalten Entwicklungsdatenbanken nicht die vollständigen Store-Daten.
-
Wechseln Sie auf Ihrer lokalen Workstation zum Projektverzeichnis.
-
Erstellen Sie einen lokalen Dump der Remote-Datenbank.
code language-bash magento-cloud db:dump
-
Fügen Sie Code-Änderungen hinzu, übertragen und pushen Sie diese, um eine Remote-Umgebung zu aktualisieren.
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>
Melden Sie sich nach Abschluss der Bereitstellung beim Administrator für die aktualisierte Umgebung an, um die Einstellungen zu überprüfen. Führen Sie bei Bedarf weitere Konfigurationen mit den Staging- und Produktionsumgebungen zusammen.
Konfigurationen aktualisieren
Wenn Sie Ihre Umgebung über den Admin ändern und den Befehl erneut ausführen, werden neue Konfigurationen an den Code im config.php
-Datei.
config.php
in den Staging- und Produktionsumgebungen not empfohlen. Die Datei hilft dabei, alle Konfigurationen in allen Umgebungen konsistent zu halten. Löschen Sie niemals die config.php
-Datei, um sie neu zu erstellen. Durch Löschen der Datei können spezifische Konfigurationen und Einstellungen entfernt werden, die für Build- und Bereitstellungsprozesse erforderlich sind.Konfigurationsdateien wiederherstellen
Kopien des Originals app/etc/env.php
und app/etc/config.php
-Dateien wurden während des Bereitstellungsprozesses erstellt und im selben Ordner gespeichert. Im Folgenden werden die BAK (Backup-Dateien) und PHP (Original-Dateien) im selben app/etc
Ordner:
...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...
Ältere Konfigurationen verwendeten die app/etc/config.local.php
-Datei. Siehe Migration älterer Konfigurationen.
So stellen Sie Konfigurationsdateien wieder her:
-
Verwenden Sie auf Ihrer lokalen Workstation SSH, um sich beim Remote-Projekt und der Umgebung anzumelden.
code language-bash magento-cloud ssh
-
Überprüfen Sie den Speicherort und die Verfügbarkeit der Backup-Dateien.
code language-bash ./vendor/bin/ece-tools backup:list
Beispielantwort:
code language-terminal The list of backup files: app/etc/env.php app/etc/config.php
-
Wiederherstellen von Sicherungsdateien.
code language-bash ./vendor/bin/ece-tools backup:restore
Migration älterer Konfigurationen
Wenn Sie auf Adobe Commerce in Cloud-Infrastruktur 2.2 oder höher aktualisieren, sollten Sie Einstellungen aus dem config.local.php
in der neuen config.php
-Datei. Wenn die Konfigurationseinstellungen in Ihrem Admin mit dem Inhalt der Datei übereinstimmen, befolgen Sie die Anweisungen zum Generieren und Hinzufügen der config.php
-Datei.
Unterscheiden sich diese, können Sie Inhalte aus der config.local.php
in der neuen config.php
Datei:
-
Befolgen Sie die Anweisungen zum Generieren der
config.php
-Datei. -
Öffnen Sie die
config.php
und löschen Sie die letzte Zeile. -
Öffnen Sie die
config.local.php
und kopieren Sie den Inhalt. -
Fügen Sie den Inhalt in die
config.php
Datei speichern und abschließen, um sie Git hinzuzufügen. -
Bereitstellen in allen Umgebungen.
Sie führen diese Migration nur einmal durch. Verwenden Sie nach der Migration die config.php
-Datei.
Gebietsschemata ändern
Sie können Ihre Store-Gebietsschemata ändern, ohne einen komplexen Konfigurationsimport- und -exportprozess zu befolgen. if Sie haben SCD_ON_DEMAND aktiviert. Sie können die Gebietsschemata mithilfe des Administrators aktualisieren.
Sie können ein anderes Gebietsschema zur Staging- oder Produktionsumgebung hinzufügen, indem Sie SCD_ON_DEMAND
in einer Integrationsverzweigung eine aktualisierte config.php
-Datei mit den neuen Gebietsschema-Informationen und kopieren Sie die Konfigurationsdatei in die Zielumgebung.
-
Aktivieren Sie in der Integrationsumgebung die
SCD_ON_DEMAND
-Variable mithilfe der.magento.env.yaml
file. -
Fügen Sie die erforderlichen Gebietsschemata mithilfe Ihres Administrators hinzu.
-
Verwenden Sie SSH, um sich bei der Remote-Umgebung anzumelden und die
/app/etc/config.php
-Datei, die alle Gebietsschemas enthält.code language-bash ssh <SSH-URL> "./vendor/bin/ece-tools config:dump"
-
Kopieren Sie die neue Konfigurationsdatei aus der Remote-Integrationsumgebung in den lokalen Umgebungsordner.
code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Fügen Sie Code-Änderungen hinzu, übertragen und pushen Sie diese, um eine Remote-Umgebung zu aktualisieren.