Vollständige Upgrade-Voraussetzungen
Es ist wichtig zu verstehen, was zum Ausführen von Adobe Commerce erforderlich ist. Sie müssen zunächst die Systemanforderungen für die Version, auf die Sie ein Upgrade durchführen möchten.
Nachdem Sie die Systemanforderungen überprüft haben, müssen Sie die folgenden Voraussetzungen erfüllen, bevor Sie das System aktualisieren:
- Alle Software aktualisieren
- Überprüfen, ob eine unterstützte Suchmaschine installiert ist
- Tabellenformat der Datenbank konvertieren
- Legen Sie die Grenze für geöffnete Dateien fest
- Überprüfen, ob Cron-Aufträge ausgeführt werden
- Satz
DATA_CONVERTER_BATCH_SIZE
- Überprüfen der Dateisystemberechtigungen
- Legen Sie die
pub/
Ordnerstamm - Installieren des Composer-Aktualisierungs-Plug-ins
Alle Software aktualisieren
Die Systemanforderungen Beschreiben Sie genau, welche Versionen von Drittanbietersoftware mit Adobe Commerce-Versionen getestet wurden.
Stellen Sie sicher, dass Sie alle Systemanforderungen und Abhängigkeiten in Ihrer Umgebung aktualisiert haben. Siehe PHP 7,4, PHP 8,0, PHP 8,1, und erforderliche PHP-Einstellungen.
.magento.app.yaml
und services.yaml
Dateien und PHP-Version im Ticket. Es kann bis zu 48 Stunden dauern, bis das Cloud-Infrastruktur-Team Ihr Projekt aktualisiert. Siehe Unterstützte Software und Dienste.Überprüfen, ob eine unterstützte Suchmaschine installiert ist
Adobe Commerce erfordert die Installation von Elasticsearch oder OpenSearch, um die Software verwenden zu können.
Wenn Sie von 2.3.x auf 2.4 aktualisieren müssen Sie überprüfen, ob Sie MySQL, Elasticsearch oder eine Drittanbietererweiterung als Ihre Katalogsuchmaschine in Ihrer 2.3.x-Instanz verwenden. Das Ergebnis bestimmt, was Sie tun müssen before Aktualisierung auf 2.4.
Wenn Sie ein Upgrade der Patch-Versionen in den Release-Zeilen 2.3.x oder 2.4.x durchführen Wenn Elasticsearch 7.x bereits installiert ist, können Sie optional zu OpenSearch migrieren.
Sie können die Befehlszeile oder den Admin verwenden, um Ihre Katalogsuchmaschine zu bestimmen:
-
Geben Sie die
bin/magento config:show catalog/search/engine
Befehl. Der Befehl gibt den Wertmysql
,elasticsearch
(dies zeigt an, dass Elasticsearch 2 konfiguriert ist),elasticsearch5
,elasticsearch6
,elasticsearch7
oder einen benutzerdefinierten Wert, der angibt, dass Sie eine Suchmaschine eines Drittanbieters installiert haben. Für Versionen vor 2.4.6 verwenden Sie die Variableelasticsearch7
-Wert für die Elasticsearch 7- oder OpenSearch-Engine. Verwenden Sie für Version 2.4.6 und höher denopensearch
-Wert für die OpenSearch-Engine. -
Überprüfen Sie im Admin den Wert der Stores > Settings > Configuration > Catalog > Catalog > Catalog Search > Search Engine -Feld.
In den folgenden Abschnitten werden die Aktionen beschrieben, die Sie vor der Aktualisierung auf Version 2.4.0 ausführen müssen.
MySQL
Ab Version 2.4 wird MySQL nicht mehr als Katalogsuchmaschine unterstützt. Vor der Aktualisierung müssen Sie Elasticsearch oder OpenSearch installieren und konfigurieren. Verwenden Sie die folgenden Ressourcen, um Sie durch diesen Prozess zu führen:
- Installieren und Konfigurieren von Elasticsearch
- Installieren von Elasticsearch
- Konfigurieren nginx oder Apache , um mit Ihrer Suchmaschine zu arbeiten
- Commerce für die Verwendung von Elasticsearch konfigurieren und reindex
Einige Katalogsuchmaschinen von Drittanbietern werden über der Adobe Commerce-Suchmaschine ausgeführt. Wenden Sie sich an Ihren Anbieter, um festzustellen, ob Sie Ihre Erweiterung aktualisieren müssen.
MariaDB
Die Neuindizierung auf MariaDB 10.4 und 10.6 nimmt im Vergleich zu früheren MariaDB- oder MySQL-Versionen mehr Zeit in Anspruch. Um die Neuindizierung zu beschleunigen, empfehlen wir, diese MariaDB-Konfigurationsparameter festzulegen:
Wenn die Leistung nach der Aktualisierung auf MariaDB 10.6 nicht mit der Indexierung in Zusammenhang steht, sollten Sie die Option --query-cache-type
-Einstellung. Beispiel: --query-cache-type=ON
.
Vor der Aktualisierung von Adobe Commerce auf Cloud-Infrastrukturprojekten müssen Sie möglicherweise auch MariaDB (Weitere Informationen finden Sie unter Best Practices für die MariaDB-Aktualisierung .).
Beispiel:
- Adobe Commerce 2.4.6 mit MariaDB-Version 10.5.1 oder höher
- Adobe Commerce 2.3.5 mit MariaDB-Version 10.3 oder früher
Zusätzlich zu diesen Empfehlungen sollten Sie sich an Ihren Datenbankadministrator wenden, um die folgenden Parameter zu konfigurieren:
Suchmaschine
Sie müssen Elasticsearch 7.6 oder höher oder OpenSearch 1.2 installieren und konfigurieren, bevor Sie auf 2.4.0 aktualisieren. Adobe unterstützt Elasticsearch 2.x, 5.x und 6.x nicht mehr. Suchmaschinenkonfiguration im Konfigurationshandbuch beschreibt die Aufgaben, die Sie nach dem Upgrade von Elasticsearch auf eine unterstützte Version ausführen müssen.
Siehe Abschnitt Upgrade von Elasticsearch umfassende Anweisungen zum Sichern Ihrer Daten, zur Erkennung potenzieller Migrationsprobleme und zum Testen von Upgrades vor der Bereitstellung in der Produktion. Abhängig von Ihrer aktuellen Version von Elasticsearch ist möglicherweise ein vollständiger Neustart des Clusters erforderlich.
Elasticsearch erfordert Java Development Kit (JDK) 1.8 oder höher. Siehe Java Software Development Kit (JDK) installieren , um zu überprüfen, welche Version von JDK installiert ist.
OpenSearch
OpenSearch ist eine Open-Source-Abspaltung von Elasticsearch 7.10.2 nach der Lizenzänderung von Elasticsearch. In den folgenden Versionen von Adobe Commerce wird OpenSearch unterstützt:
- 2.4.6 (OpenSearch verfügt über ein eigenes Modul und separate Einstellungen)
- 2,4,5
- 2,4,4
- 2.4.3-p2
- 2.3.7-p3
Sie können Migration von Elasticsearch zu OpenSearch nur dann, wenn Sie auf eine oben aufgeführte (oder höhere) Version von Adobe Commerce aktualisieren.
OpenSearch erfordert JDK 1.8 oder höher. Siehe Java Software Development Kit (JDK) installieren , um zu überprüfen, welche Version von JDK installiert ist.
Suchmaschinenkonfiguration beschreibt die Aufgaben, die Sie nach dem Ändern von Suchmaschinen ausführen müssen.
Upgrade-Elasticsearch
Die Unterstützung für Elasticsearch 8.x wurde in Adobe Commerce 2.4.6 eingeführt. Die folgenden Anweisungen zeigen ein Beispiel für die Aktualisierung von Elasticsearch von 7.x auf 8.x:
-
Aktualisieren Sie den Elasticsearch 7.x-Server auf 8.x und stellen Sie sicher, dass ausgeführt wird. Siehe Dokumentation zu Elasticsearch.
-
Aktivieren Sie die
id_field_data
durch Hinzufügen der folgenden Konfiguration zu Ihrerelasticsearch.yml
und starten Sie den Dienst Elasticsearch 8.x neu.code language-yaml indices: id_field_data: enabled: true
note info INFO Um Elasticsearch 8.x zu unterstützen, deaktiviert Adobe Commerce 2.4.6 die indices.id_field_data
-Eigenschaft standardmäßig verwendet und_id
im Felddocvalue_fields
-Eigenschaft. -
Aktualisieren Sie im Stammverzeichnis Ihres Adobe Commerce-Projekts Ihre Composer-Abhängigkeiten, um die
Magento_Elasticsearch7
und installieren Sie dasMagento_Elasticsearch8
-Modul.code language-bash composer require magento/module-elasticsearch-8 --update-with-all-dependencies
-
Aktualisieren Sie Ihre Projektkomponenten.
code language-bash bin/magento setup:upgrade
-
Elasticsearch konfigurieren im Admin.
-
Neuindizieren des Katalogindex.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Löschen Sie alle Elemente aus den aktivierten Cache-Typen.
code language-bash bin/magento cache:clean
Elasticsearch herunterladen
Wenn Sie versehentlich die Elasticsearch-Version auf Ihrem Server aktualisieren oder feststellen, dass Sie aus anderen Gründen ein Upgrade durchführen müssen, müssen Sie auch Ihre Adobe Commerce-Projektabhängigkeiten aktualisieren. So aktualisieren Sie beispielsweise von Elasticsearch 8.x auf 7.x
-
Aktualisieren Sie den Server von Elasticsearch 8.x auf 7.x und stellen Sie sicher, dass ausgeführt wird. Siehe Dokumentation zu Elasticsearch.
-
Aktualisieren Sie im Stammverzeichnis Ihres Adobe Commerce-Projekts Ihre Composer-Abhängigkeiten, um die
Magento_Elasticsearch8
-Modul und dessen Composer-Abhängigkeiten verwenden und dieMagento_Elasticsearch7
-Modul.code language-bash composer remove magento/module-elasticsearch-8
-
Aktualisieren Sie Ihre Projektkomponenten.
code language-bash bin/magento setup:upgrade
-
Elasticsearch konfigurieren im Admin.
-
Neuindizieren des Katalogindex.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Löschen Sie alle Elemente aus den aktivierten Cache-Typen.
code language-bash bin/magento cache:clean
Drittanbietererweiterungen
Wir empfehlen Ihnen, sich an Ihren Suchmaschinenanbieter zu wenden, um zu ermitteln, ob Ihre Erweiterung vollständig mit einer Adobe Commerce-Version kompatibel ist.
Tabellenformat der Datenbank konvertieren
Sie müssen das Format aller Datenbanktabellen aus COMPACT
nach DYNAMIC
. Sie müssen außerdem den Speicher-Engine-Typ von MyISAM
nach InnoDB
. Siehe Best Practices.
Legen Sie die Grenze für geöffnete Dateien fest
Das Festlegen der Grenze für offene Dateien (ulimit) kann dazu beitragen, Fehler durch mehrere rekursive Aufrufe langer Abfragezeichenfolgen oder Probleme bei der Verwendung der bin/magento setup:rollback
Befehl. Dieser Befehl unterscheidet sich für verschiedene UNIX-Shells. Lesen Sie Ihren individuellen Geschmack, um mehr über die ulimit
Befehl.
Adobe empfiehlt, die geöffneten Dateien festzulegen ulimit auf einen Wert von 65536
oder mehr, Sie können jedoch bei Bedarf einen größeren Wert verwenden. Sie können die ulimit in der Befehlszeile festlegen oder sie zu einer permanenten Einstellung für die Shell des Benutzers machen.
So legen Sie die ulimit über die Befehlszeile fest:
-
Wechseln Sie zu Dateisysteminhaber.
-
Setzen Sie die ulimit auf
65536
.code language-bash ulimit -n 65536
So legen Sie den Wert in Ihrer Bash-Shell fest:
-
Wechseln Sie zu Dateisysteminhaber.
-
Öffnen
/home/<username>/.bashrc
in einem Texteditor. -
Fügen Sie die folgende Zeile hinzu:
code language-bash ulimit -n 65536
-
Speichern Sie Ihre Änderungen in der
.bashrc
und beenden Sie den Texteditor.
pcre.recursion_limit
-Eigenschaft in der php.ini
-Datei, da dies zu unvollständigen Rollbacks ohne Fehlermeldung führen kann.Überprüfen, ob Cron-Aufträge ausgeführt werden
Die UNIX-Aufgabenplanung cron
ist für die laufenden Adobe Commerce-Vorgänge von entscheidender Bedeutung. Er plant Dinge wie Neuindizierung, Newsletter, E-Mails und Sitemaps. Mehrere Funktionen erfordern mindestens einen Cron-Auftrag, der als Dateisysteminhaber ausgeführt wird.
Um sicherzustellen, dass Ihr Cron-Auftrag ordnungsgemäß eingerichtet ist, überprüfen Sie die Registerkarte "crontab", indem Sie den folgenden Befehl als Dateisysteminhaber eingeben:
crontab -l
Ergebnisse, die dem Folgenden ähneln, sollten angezeigt werden:
#~ MAGENTO START c5f9e5ed71cceaabc4d4fd9b3e827a2b
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
#~ MAGENTO END c5f9e5ed71cceaabc4d4fd9b3e827a2b
Ein weiteres Symptom dafür, dass Cron nicht ausgeführt wird, ist der folgende Fehler im Admin:
Um den Fehler anzuzeigen, klicken Sie auf Systemmeldungen oben im Fenster wie folgt:
Siehe Cron konfigurieren und ausführen für weitere Informationen.
DATA_CONVERTER_BATCH_SIZE festlegen
Adobe Commerce 2.4 umfasst Sicherheitsverbesserungen, bei denen einige Daten von serialisierten Daten in JSON konvertiert werden müssen. Diese Konvertierung erfolgt während des Upgrades und kann abhängig von der Datenmenge in Ihrer Datenbank lange dauern.
Die folgenden Tabellen sind am stärksten betroffen:
catalogrule
core_config_data
magento_reward_history
quote_payment
quote
sales_order_payment
sales_order
salesrule
url_rewrite
Wenn Sie über eine große Datenmenge verfügen, können Sie die Leistung verbessern, indem Sie den Wert einer Umgebungsvariablen festlegen. DATA_CONVERTER_BATCH_SIZE
. Standardmäßig ist der Wert auf 50,000
.
So legen Sie die Umgebungsvariable fest:
-
Wechseln Sie zu Dateisysteminhaber.
-
Legen Sie die Variable fest:
code language-bash export DATA_CONVERTER_BATCH_SIZE=100000
note note NOTE DATA_CONVERTER_BATCH_SIZE
erfordert Arbeitsspeicher; vermeiden Sie, ihn auf einen großen Wert (ca. 1 GB) festzulegen, ohne ihn zuerst zu testen. -
Nach Abschluss des Upgrades können Sie die -Variable deaktivieren:
code language-bash unset DATA_CONVERTER_BATCH_SIZE
Überprüfen der Dateisystemberechtigungen
Aus Sicherheitsgründen erfordert Adobe Commerce bestimmte Berechtigungen für das Dateisystem. Berechtigungen unterscheiden sich von Eigentum. Die Eigentümerschaft bestimmt, wer Aktionen im Dateisystem durchführen kann. Durch Berechtigungen wird festgelegt, was der Benutzer tun kann.
Verzeichnisse im Dateisystem müssen von der des Dateisysteminhabers hinzugefügt.
Um zu überprüfen, ob Ihre Dateisystemberechtigungen richtig eingerichtet sind, melden Sie sich entweder beim Anwendungsserver an oder verwenden Sie die Dateiverwaltungsanwendung Ihres Hosting-Providers.
Geben Sie beispielsweise den folgenden Befehl ein, wenn die Anwendung in /var/www/html/magento2
:
ls -l /var/www/html/magento2
Beispielausgabe:
total 1028
drwxrwx---. 12 magento_user apache 4096 Jun 7 07:55 .
drwxr-xr-x. 3 root root 4096 May 11 14:29 ..
drwxrwx---. 4 magento_user apache 4096 Jun 7 07:53 app
drwxrwx---. 2 magento_user apache 4096 Jun 7 07:53 bin
-rw-rw----. 1 magento_user apache 439792 Apr 27 21:23 CHANGELOG.md
-rw-rw----. 1 magento_user apache 3422 Apr 27 21:23 composer.json
-rw-rw----. 1 magento_user apache 425214 Apr 27 21:27 composer.lock
-rw-rw----. 1 magento_user apache 3425 Apr 27 21:23 CONTRIBUTING.md
-rw-rw----. 1 magento_user apache 10011 Apr 27 21:23 CONTRIBUTOR_LICENSE_AGREEMENT.html
-rw-rw----. 1 magento_user apache 631 Apr 27 21:23 COPYING.txt
drwxrwx---. 4 magento_user apache 4096 Jun 7 07:53 dev
-rw-rw----. 1 magento_user apache 2926 Apr 27 21:23 Gruntfile.js
-rw-rw----. 1 magento_user apache 7592 Apr 27 21:23 .htaccess
-rw-rw----. 1 magento_user apache 6419 Apr 27 21:23 .htaccess.sample
drwxrwx---. 4 magento_user apache 4096 Jun 7 07:53 lib
-rw-rw----. 1 magento_user apache 10376 Apr 27 21:23 LICENSE_AFL.txt
-rw-rw----. 1 magento_user apache 30634 Apr 27 21:23 LICENSE_EE.txt
-rw-rw----. 1 magento_user apache 10364 Apr 27 21:23 LICENSE.txt
-rw-rw----. 1 magento_user apache 4108 Apr 27 21:23 nginx.conf.sample
-rw-rw----. 1 magento_user apache 1427 Apr 27 21:23 package.json
-rw-rw----. 1 magento_user apache 1659 Apr 27 21:23 .php_cs
-rw-rw----. 1 magento_user apache 804 Apr 27 21:23 php.ini.sample
drwxrwx---. 2 magento_user apache 4096 Jun 7 07:53 phpserver
drwxrwx---. 6 magento_user apache 4096 Jun 7 07:53 pub
-rw-rw----. 1 magento_user apache 2207 Apr 27 21:23 README_EE.md
drwxrwx---. 7 magento_user apache 4096 Jun 7 07:53 setup
-rw-rw----. 1 magento_user apache 3731 Apr 27 21:23 .travis.yml
drwxrwx---. 7 magento_user apache 4096 Jun 7 07:53 update
drwxrws---. 11 magento_user apache 4096 Jun 13 16:05 var
drwxrws---. 29 magento_user apache 4096 Jun 7 07:53 vendor
Eine Erläuterung der Beispielausgabe finden Sie im Folgenden:
- Die meisten Dateien sind
-rw-rw----
, der660
drwxrwx---
=770
-rw-rw-rw-
=666
- Der Dateisysteminhaber ist
magento_user
Um genauere Informationen zu erhalten, können Sie den folgenden Befehl eingeben:
ls -la /var/www/html/magento2/pub
Da Adobe Commerce statische Datei-Assets in Unterverzeichnissen von bereitstellt pub
, ist es eine gute Idee, auch dort Berechtigungen und Eigentumsrechte zu überprüfen.
Weitere Informationen finden Sie unter Dateisystemberechtigungen und -berechtigungen.
Legen Sie die pub/
Ordnerstamm
Siehe Basisverzeichnis zur Verbesserung der Sicherheit ändern für weitere Details.
Installieren des Composer-Aktualisierungs-Plug-ins
Die magento/composer-root-update-plugin
Das Composer-Plug-in löst Änderungen auf, die am Stammprojekt vorgenommen werden müssen composer.json
-Datei vor der Aktualisierung auf eine neue Produktanforderung.
Das Plug-in automatisiert die manuelle Aktualisierung teilweise, indem es Abhängigkeitskonflikte identifiziert und unterstützt, anstatt sie manuell zu identifizieren und zu beheben.
Installieren des Plug-ins:
-
Fügen Sie das Paket zu Ihrem
composer.json
-Datei.code language-bash composer require magento/composer-root-update-plugin ~2.0 --no-update
-
Aktualisieren Sie die Abhängigkeiten:
code language-bash composer update