Technische Details
In diesem Thema werden technische Implementierungsdetails zur Pipeline-Bereitstellung in Commerce 2.2 und höher erläutert. Die Verbesserungen lassen sich in folgende Bereiche unterteilen:
Dieses Thema behandelt auch die empfohlener Workflow für die Pipelinebereitstellung und bietet einige Beispiele, anhand derer Sie verstehen können, wie sie funktioniert.
Lesen Sie zunächst die Voraussetzungen für Ihre Entwicklungs-, Build- und Produktionssysteme.
Konfigurationsverwaltung
Verwenden Sie das folgende Überschreibungsschema, um die Konfiguration Ihrer Entwicklungs- und Produktionssysteme zu synchronisieren und zu verwalten.
Wie das Diagramm zeigt, werden die Konfigurationswerte in der folgenden Reihenfolge verwendet:
- Umgebungsvariablen überschreiben alle anderen Werte, sofern vorhanden.
- Aus den freigegebenen Konfigurationsdateien
env.php
undconfig.php
. Werte inenv.php
Werte überschreiben inconfig.php
. - Aus in der Datenbank gespeicherten Werten.
- Wenn in keiner dieser Quellen ein Wert vorhanden ist, wird der Standardwert oder NULL verwendet.
Verwalten der freigegebenen Konfiguration
Die freigegebene Konfiguration wird in app/etc/config.php
, die sich in der Quell-Code-Verwaltung befinden sollte.
Legen Sie die freigegebene Konfiguration in Admin in Ihrer Entwicklung fest (oder in Adobe Commerce in der Cloud-Infrastruktur). Integration) und schreiben Sie die Konfiguration in config.php
mithilfe der magento app:config:dump
command.
Systemspezifische Konfiguration verwalten
Die systemspezifische Konfiguration wird in app/etc/env.php
, die not sich in der Quell-Code-Verwaltung befinden.
Legen Sie die systemspezifische Konfiguration im Admin-System in Ihrem Entwicklungs- (oder Adobe Commerce-System für die Cloud-Infrastrukturintegration) fest und schreiben Sie die Konfiguration in env.php
mithilfe der magento app:config:dump
command.
Dieser Befehl schreibt auch vertrauliche Einstellungen in env.php
.
Vertrauliche Konfiguration verwalten
Die vertrauliche Konfiguration wird auch unter app/etc/env.php
.
Sie können die vertrauliche Konfiguration auf eine der folgenden Arten verwalten:
- Umgebungsvariablen
- Speichern Sie die vertrauliche Konfiguration in
env.php
in Ihrem Produktionssystem mithilfe dermagento config:set:sensitive
command
In Admin gesperrte Konfigurationseinstellungen
Alle Konfigurationseinstellungen in config.php
oder env.php
in Admin gesperrt sind, d. h. diese Einstellungen können nicht im Admin geändert werden.
Verwenden Sie die magento config:set
oder magento config:set --lock
-Befehl zum Ändern der Einstellungen im config.php
oder env.php
-Dateien.
Der Commerce-Administrator
Der Administrator weist im Produktionsmodus folgendes Verhalten auf:
-
Sie können Cache-Typen in Admin nicht aktivieren oder deaktivieren
-
Entwicklereinstellungen sind nicht verfügbar (Stores > Einstellungen > Konfiguration > Erweitert > Entwickler), einschließlich:
-
Minimieren von CSS, JavaScript und HTML
-
CSS und JavaScript zusammenführen
-
Serverseitige oder clientseitige LESS-Kompilierung
-
Inline-Übersetzungen
-
Wie zuvor erläutert, werden alle Konfigurationseinstellungen in
config.php
oderenv.php
ist gesperrt und kann nicht in Admin bearbeitet werden. -
Sie können das Gebietsschema "Admin"nur in Sprachen ändern, die von bereitgestellten Designs verwendet werden
Die folgende Abbildung zeigt ein Beispiel der Kontoeinstellungen > Gebietsschema der Benutzeroberfläche Liste im Admin mit nur zwei bereitgestellten Gebietsschemas:
-
-
Mit dem Admin können Sie die Gebietsschemakonfigurationen für keinen Bereich ändern.
Es wird empfohlen, diese Änderungen vorzunehmen, bevor Sie in den Produktionsmodus wechseln.
Sie können das Gebietsschema weiterhin mit Umgebungsvariablen oder der
config:set
CLI-Befehl mit dem Pfadgeneral/locale/code
.
Installieren und Entfernen von Cron
In Version 2.2 helfen wir Ihnen beim erstmaligen Einrichten Ihres Cron-Auftrags durch Bereitstellung der magento cron:install
command. Mit diesem Befehl wird eine Crontab als der Benutzer eingerichtet, der den Befehl ausführt.
Außerdem können Sie die Registerkarte "crontab"mit der magento cron:remove
Befehl.
Empfohlener Pipeline-Bereitstellungs-Workflow
Das folgende Diagramm zeigt, wie wir empfehlen, die Pipeline-Implementierung zur Verwaltung der Konfiguration zu verwenden.
Entwicklungssystem
Sie nehmen in Ihrem Entwicklungssystem Konfigurationsänderungen im Admin vor und generieren die freigegebene Konfiguration. app/etc/config.php
und der systemspezifischen Konfiguration, app/etc/env.php
. Überprüfen Sie den Commerce-Code und die freigegebene Konfiguration in die Quell-Code-Verwaltung und pushen Sie ihn an den Build-Server.
Sie sollten auch Erweiterungen installieren und Commerce-Code im Entwicklungssystem anpassen.
Auf Ihrem Entwicklungssystem:
-
Legen Sie die Konfiguration in Admin fest.
-
Verwenden Sie die
magento app:config:dump
-Befehl, um die Konfiguration in das Dateisystem zu schreiben.app/etc/config.php
ist die freigegebene Konfiguration, die alle Einstellungen enthält Außer vertrauliche und systemspezifische Einstellungen. 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 not sich in der Quell-Code-Verwaltung befinden.
-
Fügen Sie den modifizierten Code und die freigegebene Konfiguration zur Quell-Code-Verwaltung hinzu.
-
Führen Sie die folgenden Befehle aus, um während der Entwicklung generierten PHP-Code und statische Asset-Dateien zu entfernen:
code language-bash rm -r var/view_preprocessed/* rm -r pub/static/*/* rm -r generated/*/*
Nachdem Sie die Befehle zum Löschen der Assets ausgeführt haben, generiert Commerce Arbeitsdateien.
.htacces
s in der Datei generated
oder pub
-Ordner können Probleme verursachen.Build-System
Das Build-System kompiliert Code und generiert statische Ansichtsdateien für Designs, die in Commerce registriert sind. Es ist keine Verbindung zur Commerce-Datenbank erforderlich, sondern nur die Commerce-Codebase.
Auf Ihrem Build-System:
- Rufen Sie die freigegebene Konfigurationsdatei aus der Quell-Code-Verwaltung ab.
- Verwenden Sie die
magento setup:di:compile
-Befehl zum Kompilieren des Codes. - Verwenden Sie die
magento setup:static-content:deploy -f
-Befehl zum Aktualisieren der statischen Dateiansichtsdateien. - Überprüfen Sie die Aktualisierungen in der Quell-Code-Verwaltung.
Produktionssystem
Auf Ihrem Produktionssystem (d. h. Ihrem Live Store) rufen Sie generierte Assets und Codeaktualisierungen aus der Quellcodeverwaltung ab und legen systemspezifische und vertrauliche Konfigurationseinstellungen mithilfe der Befehlszeile oder Umgebungsvariablen fest.
In Ihrem Produktionssystem:
- Wartungsmodus starten
- Rufen Sie Code- und Konfigurationsaktualisierungen aus der Quell-Code-Verwaltung ab.
- Wenn Sie Adobe Commerce verwenden, beenden Sie die Warteschlangenarbeiter.
- Verwenden Sie die
magento app:config:import
-Befehl, 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
, um das Datenbankschema und die Daten zu aktualisieren und die erzeugten statischen Dateien beizubehalten. - Um systemspezifische Einstellungen festzulegen, verwenden Sie entweder die
magento config:set
-Befehl oder Umgebungsvariablen. - Verwenden Sie zum Festlegen vertraulicher Einstellungen entweder die
magento config:sensitive:set
-Befehl oder Umgebungsvariablen. - Saubere (auch als flush) den Cache.
- Wartungsmodus beenden.
Konfigurationsverwaltungsbefehle
Wir stellen die folgenden Befehle bereit, um Sie bei der Verwaltung der Konfiguration zu unterstützen:
-
magento app:config:dump
, um Admin-Konfigurationseinstellungen inconfig.php
undenv.php
(außer bei sensiblen Einstellungen) -
magento config:set
, um die Werte systemspezifischer Einstellungen im Produktionssystem festzulegen.Verwenden Sie das optionale
--lock
Option zum Sperren der Option in Admin (d. h., die Einstellung kann nicht bearbeitet werden). Wenn eine Einstellung bereits gesperrt ist, verwenden Sie die--lock
-Option, um die Einstellung zu ändern. -
magento config:sensitive:set
, um die Werte der sensiblen Einstellungen im Produktionssystem festzulegen. -
magento app:config:import
um Konfigurationsänderungen aus zu importierenconfig.php
undenv.php
in das Produktionssystem.
Beispiele für die Konfigurationsverwaltung
In diesem Abschnitt finden Sie Beispiele für die Verwaltung der Konfiguration, sodass Sie sehen können, wie Änderungen an config.php
und env.php
.
Standardgebietsschema ändern
Dieser Abschnitt zeigt die Änderung an config.php
wenn Sie die Standardgewichtseinheit mithilfe des Administrators ändern (Stores > Einstellungen > Konfiguration > Allgemein > Allgemein > Gebietsschemaoptionen).
Nachdem Sie die Änderung im Admin vorgenommen haben, führen Sie bin/magento app:config:dump
, um den Wert in config.php
. Der Wert wird in die general
Array unter locale
als folgendes Snippet aus config.php
zeigt an:
'general' =>
array (
'locale' =>
array (
'code' => 'en_US',
'timezone' => 'America/Chicago',
'weight_unit' => 'kgs'
)
)
Mehrere Konfigurationseinstellungen ändern
In diesem Abschnitt werden die folgenden Konfigurationsänderungen besprochen:
- Hinzufügen einer Website-, Store- und Store-Ansicht (Stores > Einstellungen > Alle Stores)
- Standardmäßige E-Mail-Domain ändern (Stores > Einstellungen > Konfiguration > Kunden > Kundenkonfiguration)
- PayPal API-Benutzername und -API-Kennwort festlegen (Stores > Einstellungen > Konfiguration > Vertrieb > Zahlungsmethoden > PayPal > Erforderliche PayPal-Einstellungen)
Nachdem Sie die Änderung im Admin vorgenommen haben, führen Sie bin/magento app:config:dump
auf Ihrem Entwicklungssystem. Diesmal werden nicht alle Ihre Änderungen in config.php
; tatsächlich werden nur die Website-, Store- und Store-Ansicht in diese Datei geschrieben, wie die folgenden Snippets zeigen.
config.php
config.php
enthält:
- Änderungen an der Website-, Store- und Store-Ansicht.
- Nicht systemspezifische Suchmaschineneinstellungen
- Nicht vertrauliche PayPal-Einstellungen
- Kommentare, die Sie über vertrauliche Einstellungen informieren, die in
config.php
websites
array:
'new' =>
array (
'website_id' => '2',
'code' => 'new',
'name' => 'New website',
'sort_order' => '0',
'default_group_id' => '2',
'is_default' => '0',
),
groups
array:
2 =>
array (
'group_id' => '2',
'website_id' => '2',
'code' => 'newstore',
'name' => 'New store',
'root_category_id' => '2',
'default_store_id' => '2',
),
stores
array:
'newview' =>
array (
'store_id' => '2',
'code' => 'newview',
'website_id' => '2',
'group_id' => '2',
'name' => 'New store view',
'sort_order' => '0',
'is_active' => '1',
),
payment
array:
'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 standardmäßige systemspezifische Konfigurationseinstellung der E-Mail-Domain wird in app/etc/env.php
.
Die PayPal-Einstellungen werden in beide Dateien geschrieben, da die bin/magento app:config:dump
-Befehl schreibt keine sensiblen Einstellungen. Sie müssen die PayPal-Einstellungen im 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>