Technische Details
In diesem Abschnitt werden technische Implementierungsdetails zur Pipeline-Bereitstellung in Commerce 2.2 und höher erläutert. Die Verbesserungen lassen sich in folgende Bereiche unterteilen:
In diesem Thema wird auch der empfohlene Workflow für die Pipeline-Bereitstellung erläutert und einige Beispiele bereitgestellt, die Ihnen dabei helfen, die Funktionsweise zu verstehen.
Bevor Sie beginnen, lesen Sie die Voraussetzungen für Ihre Entwicklungs-, Build- und Produktionssysteme.
Konfigurationsverwaltung
Verwenden Sie das folgende Überschreibungsschema, um die Konfiguration Ihrer Entwicklungs- und Produktionssysteme synchronisieren und verwalten zu können.
Wie das Diagramm zeigt, werden die Konfigurationswerte in der folgenden Reihenfolge verwendet:
- Umgebungsvariablen überschreiben, falls vorhanden, alle anderen Werte.
- In den freigegebenen Konfigurationsdateien
env.php
undconfig.php
. Werte inenv.php
überschreiben Werte inconfig.php
. - Aus in der Datenbank gespeicherten Werten.
- Wenn in einer dieser Quellen kein Wert vorhanden ist, wird der Standardwert NULL verwendet.
Verwalten der freigegebenen Konfiguration
Die freigegebene Konfiguration wird in app/etc/config.php
gespeichert, das sich in der Quell-Code-Verwaltung befinden sollte.
Legen Sie die freigegebene Konfiguration im Admin-System in Ihrer Entwicklungsumgebung (oder im Adobe Commerce--) fest und schreiben Sie die Konfiguration mithilfe des magento app:config:dump
-Befehls in config.php
.
Verwalten der systemspezifischen Konfiguration
Die systemspezifische Konfiguration wird in app/etc/env.php
gespeichert, das nicht der Quell-Code-Verwaltung sein sollte.
Legen Sie die systemspezifische Konfiguration im Admin-System in Ihrem Entwicklungssystem (oder in Adobe Commerce für die Cloud-Infrastrukturintegration) fest und schreiben Sie die Konfiguration mithilfe des magento app:config:dump
-Befehls in env.php
.
Dieser Befehl schreibt auch vertrauliche Einstellungen in env.php
.
Verwalten der sensiblen Konfiguration
Die vertrauliche Konfiguration wird auch in app/etc/env.php
gespeichert.
Sie können die vertrauliche Konfiguration auf eine der folgenden Arten verwalten:
- Umgebungsvariablen
- Speichern Sie die vertrauliche Konfiguration in
env.php
auf Ihrem Produktionssystem mithilfe desmagento config:set:sensitive
Befehls
Konfigurationseinstellungen im Administrator gesperrt
Alle Konfigurationseinstellungen in config.php
oder env.php
sind im Administrator gesperrt, d. h. diese Einstellungen können im Administrator nicht geändert werden.
Verwenden Sie den Befehl magento config:set
oder magento config:set --lock
, um die Einstellungen in den config.php
- oder env.php
-Dateien zu ändern.
Der Commerce-Administrator
Der Administrator zeigt im Produktionsmodus das folgende Verhalten:
-
Cache-Typen können in Admin nicht aktiviert oder deaktiviert werden
-
Entwicklereinstellungen sind nicht verfügbar (Stores > Einstellungen > Konfiguration > Erweitert > Entwickler), einschließlich:
-
Minimieren von CSS, JavaScript und HTML
-
Zusammenführen von CSS und JavaScript
-
Server- oder Client-seitige LESS-Kompilierung
-
Inline-Übersetzungen
-
Wie bereits erwähnt, sind Konfigurationseinstellungen in
config.php
oderenv.php
gesperrt und können nicht in der Admin bearbeitet werden. -
Sie können das Admin-Gebietsschema nur in Sprachen ändern, die von bereitgestellten Designs verwendet werden
Die folgende Abbildung zeigt ein Beispiel der Liste Kontoeinstellung > Schnittstellengebietsschema in der Admin-Liste, wobei nur zwei bereitgestellte Gebietsschemata angezeigt werden:
-
-
Sie können die Gebietsschema-Konfigurationen für keinen Bereich mit der Admin ändern.
Es wird empfohlen, diese Änderungen vorzunehmen, bevor Sie in den Produktionsmodus wechseln.
Sie können das Gebietsschema weiterhin mithilfe von Umgebungsvariablen oder dem
config:set
CLI-Befehl mit demgeneral/locale/code
konfigurieren.
Installieren und Entfernen von Cron
In Version 2.2 helfen wir Ihnen zum ersten Mal, Ihren Cron-Auftrag einzurichten, indem wir den magento cron:install
Befehl bereitstellen. Mit diesem Befehl wird eine crontab als Benutzer eingerichtet, der den Befehl ausführt.
Außerdem können Sie die crontab mit dem Befehl magento cron:remove
entfernen.
Empfohlener Workflow zur Pipeline-Bereitstellung
Das folgende Diagramm zeigt, wie die Pipeline-Bereitstellung zur Verwaltung der Konfiguration empfohlen wird.
Entwicklungssystem
Auf Ihrem Entwicklungssystem nehmen Sie Konfigurationsänderungen in der Admin Console vor und generieren die freigegebene Konfiguration, die app/etc/config.php
und die systemspezifische Konfiguration, app/etc/env.php
. Überprüfen Sie den Commerce-Code und die freigegebene Konfiguration in die Quell-Code-Verwaltung und übertragen Sie sie auf den Build-Server.
Sie sollten auch Erweiterungen installieren und den Commerce-Code im Entwicklungssystem anpassen.
Auf Ihrem Entwicklungssystem:
-
Legen Sie die Konfiguration im Admin-Bereich fest.
-
Verwenden Sie den Befehl
magento app:config:dump
, um die Konfiguration in das Dateisystem zu schreiben.app/etc/config.php
ist die freigegebene Konfiguration, die alle Einstellungen (. B vertrauliche und systemspezifische Einstellungen enthält. Diese Datei sollte sich in der Quell-Code-Verwaltung befinden.app/etc/env.php
ist die systemspezifische Konfiguration, die Einstellungen enthält, die für ein bestimmtes System eindeutig sind (z. B. Hostnamen und Portnummern). Diese Datei sollte nicht in der Quell-Code-Verwaltung sein.
-
Fügen Sie den geänderten Code und die freigegebene Konfiguration zur Quell-Code-Verwaltung hinzu.
-
Um generierten PHP-Code und statische Assets-Dateien während der Entwicklung zu entfernen, führen Sie die folgenden Befehle aus:
code language-bash rm -r var/view_preprocessed/* rm -r pub/static/*/* rm -r generated/*/*
Nach Ausführung der Befehle zum Löschen der Assets generiert Commerce Arbeitsdateien.
.htacces
im generated
oder pub
Ordner kann Probleme verursachen.Build-System
Das Build-System kompiliert Code und generiert statische Ansichtsdateien für Designs, die in Commerce registriert sind. Sie benötigt keine Verbindung zur Commerce-Datenbank, sondern nur die Commerce-Code-Basis.
Auf Ihrem Build-System:
- Rufen Sie die freigegebene Konfigurationsdatei aus der Quell-Code-Verwaltung ab.
- Kompilieren Sie den Code mit dem Befehl
magento setup:di:compile
. - Verwenden Sie den Befehl
magento setup:static-content:deploy -f
, um statische Dateiansichtsdateien zu aktualisieren. - Überprüfen Sie die Aktualisierungen in der Quell-Code-Verwaltung.
Produktionssystem
Auf Ihrem Produktionssystem (d. h. Ihrem Live Store) rufen Sie generierte Assets und Code-Aktualisierungen von der Versionsverwaltung ab und legen Sie systemspezifische und vertrauliche Konfigurationseinstellungen mithilfe der Befehlszeile oder von Umgebungsvariablen fest.
Auf Ihrem Produktionssystem:
- Wartungsmodus starten.
- Abrufen von Code- und Konfigurationsaktualisierungen aus der Versionsverwaltung.
- Wenn Sie Adobe Commerce verwenden, stoppen Sie Warteschlangenarbeiter.
- Verwenden Sie den Befehl
magento app:config:import
, um Konfigurationsänderungen in das Produktionssystem zu importieren. - Wenn Sie Komponenten installiert haben, die das Datenbankschema geändert haben, führen Sie
magento setup:upgrade --keep-generated
aus, um das Datenbankschema und die Daten zu aktualisieren, wobei die generierten statischen Dateien beibehalten werden. - Um systemspezifische Einstellungen festzulegen, verwenden Sie entweder den Befehl
magento config:set
oder Umgebungsvariablen. - Verwenden Sie zum Festlegen sensibler Einstellungen entweder den Befehl
magento config:sensitive:set
oder Umgebungsvariablen. - Löschen Sie den Cache (auch flush genannt).
- Wartungsmodus beenden
Konfigurationsverwaltungsbefehle
Die folgenden Befehle helfen Ihnen bei der Verwaltung der Konfiguration:
-
magento app:config:dump
zum Schreiben der Admin-Konfigurationseinstellungen inconfig.php
undenv.php
(mit Ausnahme der sensiblen Einstellungen) -
magento config:set
, um die Werte der systemspezifischen Einstellungen im Produktionssystem festzulegen.Verwenden Sie die optionale Option "
--lock
", um die Option im Admin-Bereich zu sperren (d. h. die Einstellung nicht bearbeitbar zu machen). Wenn eine Einstellung bereits gesperrt ist, verwenden Sie die Option--lock
, um die Einstellung zu ändern. -
magento config:sensitive:set
, um die Werte der sensiblen Einstellungen im Produktionssystem festzulegen. -
magento app:config:import
zum Importieren von Konfigurationsänderungen ausconfig.php
undenv.php
in das Produktionssystem.
Beispiele für die Konfigurationsverwaltung
Dieser Abschnitt zeigt Beispiele für die Verwaltung der Konfiguration, sodass Sie sehen können, wie Änderungen an config.php
und env.php
vorgenommen werden.
Standardgebietsschema ändern
Dieser Abschnitt zeigt die Änderung, die an config.php
vorgenommen wurde, wenn Sie die standardmäßige Gewichtungseinheit mithilfe von Admin ändern (Stores > Einstellungen > Configuration > Allgemein Allgemein > Gebietsschema-Optionen).
Nachdem Sie die Änderung in der Admin vorgenommen haben, führen Sie bin/magento app:config:dump
aus, um den Wert in config.php
zu schreiben. Der Wert wird in das general
-Array unter locale
geschrieben, wie der folgende Ausschnitt aus config.php
zeigt:
'general' =>
array (
'locale' =>
array (
'code' => 'en_US',
'timezone' => 'America/Chicago',
'weight_unit' => 'kgs'
)
)
Ändern mehrerer Konfigurationseinstellungen
In diesem Abschnitt werden die folgenden Konfigurationsänderungen erläutert:
- Hinzufügen einer Website-, Store- und Store-Ansicht (Stores > Einstellungen > Alle Stores)
- Ändern der Standard-E-Mail-Domain Stores > Einstellungen > Konfiguration > Kunden > Kundenkonfiguration)
- Festlegen des PayPal-API-Benutzernamens und API-Kennworts (Stores > Einstellungen > Konfiguration > Verkauf Zahlungsmethoden > PayPal > Erforderliche PayPal-Einstellungen)
Nachdem Sie die Änderung in der Admin vorgenommen haben, führen Sie bin/magento app:config:dump
auf Ihrem Entwicklungssystem aus. Diesmal werden nicht alle Ihre Änderungen in config.php
geschrieben. Tatsächlich werden nur die Website-, Store- und Store-Ansicht in diese Datei geschrieben, wie die folgenden Ausschnitte zeigen.
config.php
config.php
enthält:
- Änderungen an der Website-, Store- und Store-Ansicht.
- Nicht-systemspezifische Suchmaschineneinstellungen
- Nicht sensible PayPal-Einstellungen
- Kommentare, die Sie über vertrauliche Einstellungen informieren, die bei der
config.php
weggelassen wurden
websites
:
'new' =>
array (
'website_id' => '2',
'code' => 'new',
'name' => 'New website',
'sort_order' => '0',
'default_group_id' => '2',
'is_default' => '0',
),
groups
:
2 =>
array (
'group_id' => '2',
'website_id' => '2',
'code' => 'newstore',
'name' => 'New store',
'root_category_id' => '2',
'default_store_id' => '2',
),
stores
:
'newview' =>
array (
'store_id' => '2',
'code' => 'newview',
'website_id' => '2',
'group_id' => '2',
'name' => 'New store view',
'sort_order' => '0',
'is_active' => '1',
),
payment
:
'payment' =>
array (
'paypal_express' =>
array (
'active' => '0',
'in_context' => '0',
'title' => 'PayPal Express Checkout',
'sort_order' => NULL,
'payment_action' => 'Authorization',
'visible_on_product' => '1',
'visible_on_cart' => '1',
'allowspecific' => '0',
'verify_peer' => '1',
'line_items_enabled' => '1',
'transfer_shipping_options' => '0',
'solution_type' => 'Mark',
'require_billing_address' => '0',
'allow_ba_signup' => 'never',
'skip_order_review_step' => '1',
),
env.php
Die systemspezifische Konfigurationseinstellung der Standard-E-Mail-Domain wird in app/etc/env.php
geschrieben.
Die PayPal-Einstellungen werden in keine der Dateien geschrieben, da der bin/magento app:config:dump
-Befehl keine sensiblen Einstellungen schreibt. Sie müssen die PayPal-Einstellungen auf dem Produktionssystem mit den folgenden Befehlen festlegen:
bin/magento config:sensitive:set paypal/wpp/api_username <username>
bin/magento config:sensitive:set paypal/wpp/api_password <password>