Beispiel mit Umgebungsvariablen
In diesem Beispiel wird gezeigt, wie Sie in Ihrem Entwicklungssystem gemeinsame, systemspezifische und sensible Werte festlegen und dann alle Werte in Ihrem Produktionssystem mithilfe einer Kombination aus der freigegebenen Konfiguration, config.php
und PHP-Umgebungsvariablen festlegen.
Diese Konfigurationseinstellungen können von Entwicklungs- und Produktionssystemen gemeinsam verwendet werden:
MwSt.-Nummer und Speichername aus Stores > Einstellungen > Konfiguration > Allgemein > Allgemein
Diese Konfigurationseinstellungen sind entweder systemspezifisch oder vertraulich, wie angegeben:
- E-Mails an (vertraulich) senden von Stores > Einstellungen > Konfiguration > Allgemein > Kontakte
- Standard-E-Mail-Domäne (systemspezifisch) von Stores > Einstellungen > Konfiguration > Kunden > Kundenkonfiguration > Neue Kontooptionen erstellen
Sie können dasselbe Verfahren verwenden, um alle Einstellungen in den folgenden Referenzen zu konfigurieren:
Bevor Sie beginnen
Richten Sie zunächst Dateisystemberechtigungen und -eigentum ein, wie unter Voraussetzung für Entwicklungs-, Build- und Produktionssysteme beschrieben.
Annahmen
Dieses Thema enthält ein Beispiel für die Änderung der Konfiguration des Produktionssystems. Sie können bei Bedarf verschiedene Konfigurationsoptionen auswählen.
Für die Zwecke dieses Beispiels gehen wir von Folgendem aus:
- Verwenden Sie die Git-Quellsteuerung.
- Das Entwicklungssystem ist in einem Git-Remote-Repository mit dem Namen
mconfig
verfügbar - Ihre Git-Arbeitsverzweigung heißt
m2.2_deploy
Schritt 1: Konfiguration im Entwicklungssystem festlegen
So legen Sie die standardmäßige Gebietsschema- und Gewichtseinheiten in Ihrem Entwicklungssystem fest:
-
Melden Sie sich beim Administrator an.
-
Klicken Sie auf Stores > Einstellungen > Konfiguration > Allgemein > Allgemein.
-
Wenn mehr als eine Website verfügbar ist, verwenden Sie die Liste Store-Ansicht oben links, um zu einer anderen Website zu wechseln, wie in der folgenden Abbildung dargestellt.
-
Erweitern Sie im rechten Bereich den Eintrag Store Information.
-
Deaktivieren Sie bei Bedarf das Kontrollkästchen Standard verwenden neben dem Feld MwSt.-Nummer .
-
Geben Sie eine Zahl in das Feld ein (z. B.
12345
). -
Geben Sie im Feld Speichername einen Wert ein (z. B.
My Store
). -
Klicken Sie auf Konfiguration speichern.
-
Verwenden Sie die Liste Store-Ansicht , um die Standardkonfiguration auszuwählen, wie in der folgenden Abbildung dargestellt.
-
Klicken Sie im linken Navigationsbereich unter "General"auf Contacts.
-
Deaktivieren Sie das Kontrollkästchen Standard verwenden neben dem Feld E-Mails an senden .
-
Geben Sie eine E-Mail-Adresse in das Feld ein.
-
Klicken Sie auf Konfiguration speichern.
-
Klicken Sie im linken Bereich auf Customers > Kundenkonfiguration.
-
Erweitern Sie im rechten Bereich Neue Kontooptionen erstellen.
-
Deaktivieren Sie das Kontrollkästchen Systemwert verwenden neben dem Feld E-Mail-Standarddomäne .
-
Geben Sie einen Domänennamen in das Feld ein.
-
Klicken Sie auf Konfiguration speichern.
-
Wenn Sie dazu aufgefordert werden, leeren Sie den Cache.
Schritt 2: Konfiguration aktualisieren
Nachdem Sie die Konfiguration in Admin geändert haben, schreiben Sie die freigegebene Konfiguration in eine Datei, wie in diesem Abschnitt beschrieben.
So aktualisieren Sie die Konfiguration:
-
Melden Sie sich bei Ihrem Entwicklungssystem als Eigentümer des Dateisystems an oder wechseln Sie zu ihm.
-
Wechseln Sie zum Stammverzeichnis der Anwendung und führen Sie den Befehl dump aus.
code language-bash cd <Magento root dir> php bin/magento app:config:dump
Wenn beispielsweise Commerce in
/var/www/html/magento2
installiert ist, geben Sie Folgendes ein:code language-bash cd /var/www/html/magento2 php bin/magento app:config:dump
-
Bestätigen Sie, dass
app/etc/config.php
aktualisiert wurde.code language-bash git status
Beispielantwort:
code language-none On branch m2.2_deploy Changed but not updated: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: app/etc/config.php
note warning WARNING Übermitteln Sie nicht Änderungen an den Verzeichnissen generated
,pub/media
oderpub/static
an die Quell-Code-Verwaltung. Sie generieren diese Dateien auf Ihrem Build-System. Das Entwicklungssystem verfügt wahrscheinlich über Code, Designs usw., die nicht für die Verwendung im Produktionssystem bereit sind. -
Checken Sie Ihre Änderungen an
app/etc/config.php
nur für die Quell-Code-Verwaltung ein.code language-bash git add app/etc/config.php && git commit -m "Updated shared configuration" && git push mconfig m2.2_deploy
Beachten Sie, dass zwar app/etc/env.php
(die systemspezifische Konfiguration) aktualisiert wurde, Sie es jedoch nicht in der Quellcodeverwaltung einchecken. Sie werden später in diesem Verfahren dieselben Konfigurationseinstellungen für Ihr Produktionssystem erstellen.
Schritt 3: Aktualisieren Sie Ihr Build-System und generieren Sie Dateien.
Nachdem Sie Ihre Änderungen an der freigegebenen Konfiguration an die Quell-Code-Verwaltung übertragen haben, können Sie diese Änderungen in Ihrem Build-System abrufen, Code kompilieren und statische Dateien generieren. Der letzte Schritt besteht darin, diese Änderungen in Ihr Produktionssystem zu übernehmen.
So aktualisieren Sie das Build-System:
-
Melden Sie sich beim Build-System als Eigentümer des Dateisystems an.
-
Wechseln Sie zum Stammverzeichnis der Anwendung.
code language-bash cd <Magento root dir>
-
Ziehen Sie die Änderungen an
app/etc/config.php
aus der Quell-Code-Verwaltung.code language-bash git pull mconfig m2.2_deploy
-
Kompilieren Sie den Code.
code language-bash bin/magento setup:di:compile
-
Nachdem der Code kompiliert wurde, generieren Sie statische Ansichtsdateien.
code language-bash bin/magento setup:static-content:deploy -f
-
Überprüfen Sie die Änderungen in der Quell-Code-Verwaltung.
code language-bash git add -A && git commit -m "Updated files on build system" && git push mconfig m2.2_deploy
Schritt 4: Produktionssystem aktualisieren
Der letzte Schritt im Prozess besteht darin, Ihr Produktionssystem zu aktualisieren. Sie müssen dies in zwei Teilen tun:
- Aktualisieren der sensiblen und systemspezifischen Einstellungen
- Aktualisieren der freigegebenen Einstellungen
Aktualisieren der sensiblen und systemspezifischen Einstellungen
Um die sensiblen und systemspezifischen Einstellungen mithilfe von Umgebungsvariablen festzulegen, müssen Sie Folgendes wissen:
-
Umfang der einzelnen Einstellungen
Wenn Sie die Anweisungen in Schritt 1 befolgt haben, ist der Bereich für das Senden von E-Mails an global (d. h. der Bereich Standardkonfiguration ) und der Bereich für die Standard-E-Mail-Domäne ist website.
Sie müssen den Code der Website kennen, um den Konfigurationswert Standard-E-Mail-Domäne festzulegen. Weitere Informationen zum Auffinden finden Sie unter Umgebungsvariablen zum Außerkraftsetzen von Konfigurationseinstellungen verwenden .
-
Konfigurationspfad für jede Einstellung
Die in diesem Beispiel verwendeten Konfigurationspfade:
table 0-row-2 1-row-2 2-row-2 Einstellungsname Konfigurationspfad E-Mails an senden contact/email/recipient_email
Standard-E-Mail-Domain customer/create_account/email_domain
Sie finden alle sensiblen und systemspezifischen Konfigurationspfade in der Referenz Vertrauliche und systemspezifische Konfigurationspfade.
Konvertieren von Konfigurationspfaden in Variablennamen
Wie in Verwenden von Umgebungsvariablen zum Außerkraftsetzen von Konfigurationseinstellungen beschrieben, ist das Format von Variablen:
<SCOPE>__<SYSTEM__VARIABLE__NAME>
Der Wert von <SCOPE>
ist CONFIG__DEFAULT__
für den globalen Umfang oder CONFIG__WEBSITES__<WEBSITE CODE>
für den Website-Umfang.
Um den Wert von <SYSTEM__VARIABLE__NAME>
zu finden, ersetzen Sie jedes /
-Zeichen im Konfigurationspfad durch zwei Unterstriche.
Die Variablennamen folgen:
contact/email/recipient_email
CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL
customer/create_account/email_domain
CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN
BASE
, der für die Konfigurationseinstellung "Standard-E-Mail-Domäne"verwendet wird. Ersetzen Sie BASE
durch den entsprechenden Website-Code für Ihren Store.Variablen mithilfe von Umgebungsvariablen festlegen
Sie können die Variablenwerte im index.php
im folgenden Format festlegen:
$_ENV['VARIABLE'] = 'value';
So legen Sie Variablenwerte fest:
-
Melden Sie sich bei Ihrem Produktionssystem als Eigentümer des Dateisystems an oder wechseln Sie zu ihm.
-
Öffnen Sie
<Commerce root dir>/pub/index.php
in einem Texteditor. -
Legen Sie an beliebiger Stelle in
index.php
Werte für die Variablen ähnlich den folgenden fest:code language-php $_ENV['CONFIG__DEFAULT__CONTACT__EMAIL__RECIPIENT_EMAIL'] = 'myname@example.com'; $_ENV['CONFIG__WEBSITES__BASE__CUSTOMER__CREATE_ACCOUNT__EMAIL_DOMAIN'] = 'magento.com';
-
Speichern Sie Ihre Änderungen in
pub/index.php
und beenden Sie den Texteditor. -
Fahren Sie mit dem nächsten Abschnitt fort.
Aktualisieren der freigegebenen Einstellungen
In diesem Abschnitt wird beschrieben, wie Sie alle Änderungen abrufen, die Sie an Ihren Entwicklungs- und Build-Systemen vorgenommen haben. Dadurch werden die freigegebenen Konfigurationseinstellungen (Speichername und MwSt.-Nummer) aktualisiert.
So aktualisieren Sie das Produktionssystem:
-
Melden Sie sich beim Produktionssystem als Eigentümer des Dateisystems an.
-
Wechseln Sie zum Stammverzeichnis der Anwendung und aktivieren Sie den Wartungsmodus.
code language-bash cd <Magento root dir>
code language-bash bin/magento maintenance:enable
Weitere Optionen, wie die Möglichkeit, eine IP-Adressen-Whitelist festzulegen, finden Sie unter
magento maintenance:enable
. -
Beenden Sie laufende Warteschlangenarbeitskräfte, indem Sie
cron_run
wie folgt inapp/etc/env.php
auffalse
setzen:code language-php?start_inline=1 'cron_consumers_runner' => [ 'cron_run' => false ]
-
Aktualisieren Sie die Konfiguration.
code language-bash bin/magento app:config:import
-
Schließlich
kill
alle aktiven Verbraucherprozesse.code language-bash kill <PID>
Wobei
PID
die Prozess-ID ist, die beendet werden soll, z. B.:code language-bash kill 1234
-
Rufen Sie Code aus der Quell-Code-Verwaltung ab.
code language-bash git pull mconfig m2.2_deploy
-
Aktualisieren Sie die Konfiguration.
code language-bash bin/magento app:config:import
-
Bereinigen Sie den Cache.
code language-bash bin/magento cache:clean
-
Wartungsmodus beenden.
code language-bash bin/magento maintenance:disable
Konfigurationseinstellungen in der Admin-Konsole überprüfen
In diesem Abschnitt wird beschrieben, wie Sie die Konfigurationseinstellungen in Ihrem Produktionssystem-Admin überprüfen können.
Überprüfen der Konfigurationseinstellungen:
-
Melden Sie sich beim Administrator Ihres Produktionssystems an.
-
Klicken Sie auf Stores > Einstellungen > Konfiguration > Allgemein > Allgemein.
-
Verwenden Sie die Liste Store-Ansicht oben links, um zu einer anderen Website zu wechseln.
Die freigegebenen Konfigurationsoptionen, die Sie im Entwicklungssystem festlegen, werden in etwa wie folgt angezeigt:
note info INFO Das Feld Speichername kann im Website-Bereich bearbeitet werden. Wenn Sie jedoch zum Bereich "Standardkonfiguration"wechseln, ist es nicht bearbeitbar. Dies ist das Ergebnis der Festlegung der Optionen im Entwicklungssystem. Der Wert von MwSt.-Nummer kann im Website-Bereich nicht bearbeitet werden. -
Wechseln Sie, falls noch nicht geschehen, zum Bereich Standardkonfiguration .
-
Klicken Sie im linken Navigationsbereich unter "General"auf Contacts.
Das Feld E-Mails an senden kann nicht bearbeitet werden, wie in der folgenden Abbildung dargestellt. Dies ist eine sensible Einstellung.
-
Klicken Sie im linken Bereich auf Customers > Kundenkonfiguration.
-
Erweitern Sie im rechten Bereich Neue Kontooptionen erstellen.
Der Wert des Felds Standard-E-Mail-Domäne wird wie folgt angezeigt: Dies ist eine systemspezifische Einstellung.