Speicherkonfigurationsverwaltung
Die Standardkonfigurationen für Ihren Store werden in einem config.xml
für das entsprechende Modul gespeichert. Wenn Sie die Einstellungen im Commerce Admin- oder CLI bin/magento config:set
-Befehl ändern, werden die Änderungen in der Hauptdatenbank, insbesondere in der Tabelle core_config_data
, übernommen. Diese Einstellungen überschreiben die Standardkonfigurationen, die in der Datei config.xml
gespeichert sind.
Speichereinstellungen, die auf die Konfigurationen im Abschnitt Admin Stores > Einstellungen > Konfiguration verweisen, werden je nach Konfigurationstyp in den Konfigurationsdateien der Bereitstellung gespeichert:
app/etc/config.php
- Konfigurationseinstellungen für Stores, Websites, Module oder Erweiterungen, statische Dateioptimierung und Systemwerte für die Bereitstellung statischer Inhalte. Weitere Informationen finden Sie unter config.php reference im Konfigurationshandbuch.app/etc/env.php
- Werte für systemspezifische Überschreibungen und vertrauliche Einstellungen, die NOT in der Quell-Code-Verwaltung gespeichert werden sollen. Siehe den env.php-Verweis 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 den Build-Server, das Erstellen und Bereitstellen von Skripten sowie Bereitstellungsumgebungen, die unter Berücksichtigung der Pipeline-Bereitstellungsstrategie entwickelt wurden.
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 einem
MAGENTO_CLOUD_RELATIONSHIPS
Name-Wert-Paar in der.magento.app.yaml
Datei . Ignorieren Sie die Standardkonfiguration. - Wenn keine Umgebungsvariable vorhanden ist und
MAGENTO_CLOUD_RELATIONSHIPS
kein Name-Wert-Paar enthält, 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
der Datei .magento.app.yaml
hinzugefügt wurden. Geben Sie hier Werte an, um eine konsistente Konfiguration in allen Umgebungen sicherzustellen. Geben Sie keine sensiblen Werte in der Datei .magento.app.yaml
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 Datei env.php
ist nicht im Quellcode-Steuerelement enthalten.app/etc/config.php
app:config:dump
hinzugefügt. Gemeinsame Konfigurationswerte werden config.php
hinzugefügt. Legen Sie die freigegebene Konfiguration über den Administrator oder mithilfe der CLI fest. Die Datei "config.php
" ist im Quell-Code enthalten.config.xml
config.xml
für ein Modul Standardwerte festgelegt. 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 den folgenden ece-tools
-Befehl verwenden, um eine config.php
-Datei zu generieren, die alle aktuellen Speicherkonfigurationen enthält:
./vendor/bin/ece-tools config:dump
Die in die Datei "app/etc/config.php
" übertragenen Daten werden zu "locked", was bedeutet, dass das entsprechende Feld im Commerce-Admin "schreibgeschützt" wird. Die Datei 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
ruft keine detaillierten Konfigurationen für Module ab, z. B. B2B. Wenn Sie eine umfassende Konfigurationsablage benötigen, verwenden Sie den Befehl app:config:dump
, aber dieser Befehl sperrt die Konfigurationswerte in einem schreibgeschützten Status.Sensible Daten
Alle sensiblen Konfigurationen werden in die Datei app/etc/env.php
exportiert, wenn Sie den Befehl bin/magento app:config:dump
verwenden. Sie können sensible Werte mithilfe des CLI-Befehls festlegen: bin/magento config:sensitive:set
. Unter Vertrauliche und umgebungsspezifische Einstellungen im Handbuch Commerce PHP Extensions erfahren Sie, wie Konfigurationseinstellungen als vertraulich oder systemspezifisch gekennzeichnet werden.
Eine Liste der vertraulichen oder systemspezifischen Einstellungen finden Sie 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 Auswählen einer Bereitstellungsstrategie.
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 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 in der Datei config.php
angehängt.
config.php
" zwar in der Staging- und Produktionsumgebung manuell bearbeiten, jedoch wird dies nicht empfohlen. Die Datei hilft dabei, alle Konfigurationen in allen Umgebungen konsistent zu halten. Löschen Sie nie die Datei "config.php
", 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 der ursprünglichen 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 (Originaldateien) im selben Ordner app/etc
dargestellt:
...
config.php.bak
di.xml
env.php.bak
vendor_path.php
config.php
db_schema.xml
env.php
...
Ältere Konfigurationen verwendeten die Datei "app/etc/config.local.php
". 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-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
Migration älterer Konfigurationen
Wenn Sie auf Adobe Commerce in der Cloud-Infrastruktur 2.2 oder höher aktualisieren, sollten Sie Einstellungen aus der config.local.php
-Datei in Ihre neue config.php
-Datei migrieren. Wenn die Konfigurationseinstellungen in Ihrem Admin mit dem Inhalt der Datei übereinstimmen, befolgen Sie die Anweisungen zum Generieren und Hinzufügen der Datei "config.php
".
Wenn sie sich unterscheiden, können Sie Inhalt aus der config.local.php
-Datei an Ihre neue config.php
-Datei anhängen:
-
Befolgen Sie die Anweisungen zum Generieren der Datei "
config.php
". -
Öffnen Sie die Datei "
config.php
" und löschen Sie die letzte Zeile. -
Öffnen Sie die Datei "
config.local.php
" und kopieren Sie den Inhalt. -
Fügen Sie den Inhalt in die Datei
config.php
ein, speichern Sie sie und schließen Sie das Hinzufügen zu Git ab. -
Bereitstellen in allen Umgebungen.
Sie führen diese Migration nur einmal durch. Verwenden Sie nach der Migration die Datei "config.php
".
Gebietsschemata ändern
Sie können Ihre Store-Gebietsschemata ändern, ohne einen komplexen Konfigurationsimport- und -export-Prozess zu befolgen, wenn Sie SCD_ON_DEMAND aktiviert haben. Sie können die Gebietsschemata mithilfe des Administrators aktualisieren.
Sie können der Staging- oder Produktionsumgebung ein anderes Gebietsschema hinzufügen, indem Sie in einer Integrationsverzweigung die Option SCD_ON_DEMAND
aktivieren, eine aktualisierte config.php
-Datei mit den neuen Gebietsschemainformationen generieren und die Konfigurationsdatei in die Zielumgebung kopieren.
-
Aktivieren Sie in der Integrationsumgebung die Variable
SCD_ON_DEMAND
mit der Datei.magento.env.yaml
. -
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 mit allen Gebietsschemas zu generieren.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.