Store-Konfigurationsverwaltung
Die Standardkonfigurationen für Ihren Store werden in einem config.xml
für das entsprechende Modul gespeichert. Wenn Sie Einstellungen im Commerce Admin- oder CLI-bin/magento config:set
ändern, werden die Änderungen in der Hauptdatenbank übernommen, insbesondere in der core_config_data
. Diese Einstellungen überschreiben die Standardkonfigurationen, die in der config.xml
-Datei gespeichert sind.
Store-Einstellungen, die auf die Konfigurationen im Abschnitt Admin Stores > Settings > Configuration verweisen, werden je nach Konfigurationstyp in den Bereitstellungskonfigurationsdateien gespeichert:
app/etc/config.php
- Konfigurationseinstellungen für Stores, Websites, Module oder Erweiterungen, statische Dateioptimierung und Systemwerte im Zusammenhang mit der Bereitstellung statischer Inhalte. Siehe die config.php im Konfigurationshandbuch.app/etc/env.php
- Werte für systemspezifische Überschreibungen und sensible Einstellungen, die NOT in der Quell-Code-Verwaltung gespeichert werden sollen. Siehe env.php-Referenz im Konfigurationshandbuch.
Die Konfigurationsverwaltung bietet eine Möglichkeit, mithilfe der Pipeline-Bereitstellung konsistente Speichereinstellungen in Ihren Umgebungen mit minimalen Ausfallzeiten bereitzustellen. Das Adobe Commerce on Cloud Infrastructure-Projekt umfasst den Build-Server, Build- und Bereitstellungsskripte sowie Bereitstellungsumgebungen, die mit Blick auf die Pipeline-Bereitstellungsstrategie entwickelt wurden.
Außerkraftsetzungsschema der Konfiguration
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 einem
MAGENTO_CLOUD_RELATIONSHIPS
Name-Wert-Paar in der.magento.app.yaml
. Ignorieren Sie die Standardkonfiguration. - Wenn eine Umgebungsvariable nicht vorhanden ist und
MAGENTO_CLOUD_RELATIONSHIPS
kein Name-Wert-Paar enthält, entfernen Sie alle benutzerdefinierten Konfigurationen und verwenden Sie die Werte aus der Standardkonfiguration.
Zusammenfassend lässt sich sagen, dass Umgebungsvariablen alle anderen Werte überschreiben.
Wenn dieselbe Einstellung an mehreren Stellen konfiguriert ist, verwendet die Anwendung die folgende Konfigurationshierarchie, um zu bestimmen, welcher Wert auf die Umgebung angewendet werden soll:
method
Umgebungsvariablen
.magento.app.yaml
variables
der .magento.app.yaml
Datei hinzugefügte Werte. Geben Sie hier Werte an, um eine konsistente Konfiguration über alle Umgebungen hinweg sicherzustellen. Geben Sie in der .magento.app.yaml
keine sensiblen Werte an. Siehe Anwendungseinstellungen.app/etc/env.php
app:config:dump
hinzugefügt. Legen Sie die systemspezifischen und sensiblen Werte mithilfe von Umgebungsvariablen oder der CLI fest. Siehe Sensible Daten. Die env.php
ist nicht in der Quell-Code-Verwaltung enthalten.app/etc/config.php
app:config:dump
hinzugefügt. Freigegebene Konfigurationswerte werden config.php
hinzugefügt. Legen Sie die freigegebene Konfiguration über den Administrator oder mithilfe der CLI fest. Die config.php
ist in der Quell-Code-Verwaltung enthalten.config.xml
config.xml
-Datei für ein Modul festgelegt. Wenn Adobe Commerce einen von einer der oben genannten Methoden festgelegten Wert nicht finden kann, wird er auf den Standardwert zurückgesetzt, falls dieser festgelegt ist.Konfigurations-Dump
Sie können den folgenden ece-tools
-Befehl verwenden, um eine config.php
-Datei zu generieren, die alle aktuellen Store-Konfigurationen enthält:
./vendor/bin/ece-tools config:dump
Die Daten, die in die app/etc/config.php
-Datei „geschrieben werden gesperrt, was bedeutet, dass das entsprechende Feld in Commerce Admin schreibgeschützt wird. Die config.php
enthält nur die von Ihnen konfigurierten Einstellungen. Die Standardwerte werden nicht gesperrt. Durch das Sperren nur der von Ihnen aktualisierten Werte wird auch sichergestellt, dass alle in der Staging- und Produktionsumgebung verwendeten Erweiterungen nicht aufgrund schreibgeschützter Konfigurationen beschädigt werden, insbesondere nicht durch Fastly.
ece-tools config:dump
ruft keine detaillierten Konfigurationen für Module wie B2B ab. Wenn Sie einen umfassenden Konfigurations-Dump benötigen, verwenden Sie den Befehl app:config:dump
, aber dieser Befehl sperrt Konfigurationswerte in einem schreibgeschützten Status.Sensible Daten
Alle sensiblen Konfigurationen werden in die app/etc/env.php
-Datei exportiert, wenn Sie den Befehl bin/magento app:config:dump
verwenden. Sie können vertrauliche Werte mithilfe des CLI-Befehls festlegen: bin/magento config:sensitive:set
. Siehe Sensitive und umgebungsspezifische Einstellungen im Handbuch Commerce PHP Extensions, um zu erfahren, wie Sie Konfigurationseinstellungen als sensibel oder systemspezifisch festlegen.
Eine Liste der sensiblen oder systemspezifischen Einstellungen finden Sie im Konfigurationshandbuch.
SCD-Leistung
Abhängig von der Größe Ihres Stores können Sie eine große Anzahl von statischen 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 statische Inhalte zu generieren. Siehe Auswählen einer Bereitstellungsstrategie.
Wenn Sie die Konfigurationsverwaltung nach dem Speichern der Konfigurationen aktiviert haben, sollten Sie die SCD_*-Variablen von der Bereitstellungsphase in die Erstellungsphase verschieben, um die Generierung statischer Inhalte während der Erstellungsphase 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 den Build-Schritt:
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 Store und generieren eine Konfigurationsdatei:
-
Schließen Sie alle Konfigurationen für Ihre Stores in Admin für eine der Umgebungen ab:
- Starter: Ein aktiver Entwicklungszweig
- Pro: Eine aktive Verzweigung in der Integrationsumgebung
Diese Konfigurationen enthalten nicht die eigentlichen Produkte, es sei denn, Sie planen, die Datenbank aus dieser Umgebung in Staging- und Produktionsumgebungen zu entladen. In der Regel enthalten Entwicklungsdatenbanken keine vollständigen Speicherdaten.
-
Wechseln Sie auf Ihrer lokalen Workstation in Ihr Projektverzeichnis.
-
Erstellen Sie einen lokalen Dump der Remote-Datenbank.
code language-bash magento-cloud db:dump
-
Code-Änderungen hinzufügen, übertragen und per Push übertragen, 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 bei der Administratorin bzw. dem Administrator der aktualisierten Umgebung an, um die Einstellungen zu überprüfen. Fahren Sie bei Bedarf mit dem Zusammenführen aller zusätzlichen Konfigurationen mit der Staging- und Produktionsumgebung fort.
Aktualisieren von Konfigurationen
Wenn Sie Ihre Umgebung über die Admin ändern und den Befehl erneut ausführen, werden neue Konfigurationen an den Code in der config.php
angehängt.
config.php
zwar manuell in der Staging- und Produktionsumgebung bearbeiten, dies wird jedoch empfohlen. Die Datei hilft, alle Konfigurationen über alle Umgebungen hinweg konsistent zu halten. Löschen Sie niemals die config.php
Datei, um sie neu zu erstellen. Durch das Löschen der Datei können bestimmte Konfigurationen und Einstellungen entfernt werden, die für Build- und Bereitstellungsprozesse erforderlich sind.Konfigurationsdateien wiederherstellen
Kopien der ursprünglichen app/etc/env.php
- und app/etc/config.php
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 dargestellt:
...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...
In älteren Konfigurationen wurde die app/etc/config.local.php
-Datei verwendet. Siehe Migrieren älterer Konfigurationen.
So stellen Sie Konfigurationsdateien wieder:
-
Verwenden Sie auf Ihrer lokalen Workstation SSH, um sich beim Remote-Projekt und in der Remote-Umgebung anzumelden.
code language-bash magento-cloud ssh
-
Überprüfen Sie den Speicherort und die Verfügbarkeit der Sicherungsdateien.
code language-bash ./vendor/bin/ece-tools backup:list
Beispielantwort:
code language-none 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
Migrieren älterer Konfigurationen
Wenn Sie auf Adobe Commerce auf Cloud-Infrastruktur 2.2 oder höher aktualisieren, empfiehlt es sich möglicherweise, die Einstellungen aus der config.local.php
in die neue config.php
zu migrieren. Wenn die Konfigurationseinstellungen in Ihrem Admin mit dem Inhalt der Datei übereinstimmen, befolgen Sie die Anweisungen zum Generieren und Hinzufügen der config.php
.
Wenn sie sich unterscheiden, können Sie Inhalte aus der config.local.php
an Ihre neue config.php
anhängen:
-
Befolgen Sie die Anweisungen zum Generieren der
config.php
. -
Ö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
ein, speichern Sie ihn und fügen Sie ihn vollständig zu Git hinzu. -
Bereitstellen in Ihren Umgebungen.
Sie schließen diese Migration nur einmal ab. Verwenden Sie nach der Migration die config.php
.
Gebietsschema ändern
Sie können Ihre Store-Gebietsschemata ändern, ohne einen komplexen Konfigurationsimport- und -exportprozess zu befolgen, wenn Sie SCD_ON_DEMAND aktiviert haben. Sie können die Gebietsschemata mithilfe von „Admin“ aktualisieren.
Sie können der Staging- oder Produktionsumgebung ein weiteres Gebietsschema hinzufügen, indem Sie SCD_ON_DEMAND
in einer Integrationsverzweigung aktivieren, eine aktualisierte config.php
mit den neuen Gebietsschema-Informationen generieren und die Konfigurationsdatei in die Zielumgebung kopieren.
-
Aktivieren Sie in der Integrationsumgebung die
SCD_ON_DEMAND
-Variable mithilfe der.magento.env.yaml
-Datei. -
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 zu generieren, die alle Gebietsschemata enthält.code language-bash ssh <SSH-URL> "./vendor/bin/ece-tools config:dump"
-
Kopieren Sie die neue Konfigurationsdatei aus der Remote-Integrationsumgebung in Ihr lokales Umgebungsverzeichnis.
code language-bash rsync <SSH-URL>:app/etc/config.php ./app/etc/config.php
-
Code-Änderungen hinzufügen, übertragen und per Push übertragen, um eine Remote-Umgebung zu aktualisieren.