Volledige upgradevoorwaarden
Het is belangrijk te begrijpen wat nodig is om Adobe Commerce te runnen. U moet eerst de systeemvereistenvoor de versie herzien u van plan bent te bevorderen aan.
Nadat u de systeemvereisten hebt gecontroleerd, moet u aan de volgende voorwaarden voldoen voordat u de upgrade van uw systeem uitvoert:
- Alle software bijwerken
- Controleren of een ondersteund zoekprogramma is geïnstalleerd
- Database-tabelindeling converteren
- Limiet voor geopende bestanden instellen
- Controleren of uitsnijdtaken worden uitgevoerd
- Instellen
DATA_CONVERTER_BATCH_SIZE
- Controleren op bestandssysteemmachtigingen
- De hoofdmap van de map
pub/
instellen - De plug-in Composer-update installeren
Alle software bijwerken
De systeemvereistenbeschrijven precies welke versies van derdesoftware met de versies van Adobe Commerce zijn getest.
Zorg ervoor dat u alle systeemvereisten en afhankelijkheden in uw omgeving hebt bijgewerkt. Zie PHP 7.4, PHP 8.0, PHP 8.1, en vereiste PHP montages.
.magento.app.yaml
- en services.yaml
-bestanden en PHP-versie op in het ticket. Het kan tot 48 uur duren voordat het infrastructuurteam van de cloud uw project kan bijwerken. Zie Ondersteunde software en de diensten.Controleren of een ondersteund zoekprogramma is geïnstalleerd
Adobe Commerce vereist dat Elasticsearch of OpenSearch is geïnstalleerd om de software te kunnen gebruiken.
als u van 2.3.x aan 2.4 bevordert, moet u controleren of u MySQL, Elasticsearch, of een derdeuitbreiding als uw motor van de catalogusonderzoek in uw 2.3.x instantie gebruikt. Het resultaat bepaalt wat u vóór bevordering aan 2.4 moet doen.
als u flardversies binnen de 2.3.x of 2.4.x versielijnen bevordert, als Elasticsearch 7.x reeds geïnstalleerd is, kunt u naar keuze migreren aan OpenSearch.
U kunt de opdrachtregel of de beheerder gebruiken om de zoekengine voor de catalogus te bepalen:
-
Voer de opdracht
bin/magento config:show catalog/search/engine
in. De opdracht retourneert de waardemysql
,elasticsearch
(die aangeeft dat Elasticsearch 2 is geconfigureerd),elasticsearch5
,elasticsearch6
,elasticsearch7
of een aangepaste waarde, wat aangeeft dat u een zoekprogramma van derden hebt geïnstalleerd. Voor versies ouder dan 2.4.6 gebruikt u deelasticsearch7
-waarde voor Elasticsearch 7 of de OpenSearch-engine. Voor versie 2.4.6 en hoger gebruikt u deopensearch
-waarde voor de OpenSearch-engine. -
Controleer in Beheer de waarde van het veld Stores > Settings > Configuration > Catalog > Catalog > Catalog Search > Search Engine .
In de volgende secties wordt beschreven welke handelingen u moet uitvoeren voordat u de upgrade naar 2.4.0 uitvoert.
MySQL
Vanaf 2.4, is MySQL niet meer een gesteunde motor van de catalogusonderzoek. U moet Elasticsearch of OpenSearch installeren en configureren voordat u een upgrade uitvoert. Gebruik de volgende bronnen om u door dit proces te begeleiden:
- Elasticsearch installeren en configureren
- Installerend Elasticsearch
- Vorm nginxof Apacheom met uw onderzoeksmotor te werken
- vorm Commerce om Elasticsearchen herdex te gebruiken
Bepaalde zoekprogramma's voor catalogi van derden worden boven op de zoekfunctie van Adobe Commerce uitgevoerd. Neem contact op met de leverancier om te bepalen of u de extensie moet bijwerken.
MariaDB
Het opnieuw indexeren op MariaDB 10.4 en 10.6 vergt meer tijd in vergelijking met vorige versies MariaDB of MySQL. Om het opnieuw indexeren te versnellen, adviseren wij plaatsend deze MariaDB configuratieparameters:
Als u prestatiesdegradatie niet verwant met indexatie na bevordering aan MariaDB 10.6 ervaart, denk na toelatend het --query-cache-type
plaatsen. Bijvoorbeeld --query-cache-type=ON
.
Alvorens Adobe Commerce op de projecten van de wolkeninfrastructuur te bevorderen, kunt u ook MariaDB moeten bevorderen ( zie MariaDB beste praktijkenbevorderen).
Bijvoorbeeld:
- Adobe Commerce 2.4.6 met MariaDB versie 10.5.1 of hoger
- Adobe Commerce 2.3.5 met MariaDB versie 10.3 of lager
Naast deze aanbevelingen, zou u met uw gegevensbestandbeheerder over het vormen van de volgende parameters moeten raadplegen:
Zoekmachine
U moet of Elasticsearch 7.6 of hoger of OpenSearch 1.2 installeren en vormen alvorens aan 2.4.0 te bevorderen. Adobe ondersteunt Elasticsearch 2.x, 5.x en 6.x niet meer. de motorconfiguratie van het Onderzoekin de Gids van de Configuratie beschrijft de taken u na de bevordering van Elasticsearch aan een gesteunde versie moet uitvoeren.
Verwijs naar Bevorderende Elasticsearchvoor volledige instructies bij het steunen van uw gegevens, het ontdekken van potentiële migratiekwesties, en het testen van verbeteringen alvorens aan productie op te stellen. Afhankelijk van uw huidige versie van Elasticsearch is het mogelijk dat een volledige clusterherstart al dan niet vereist is.
Voor Elasticsearch is Java Development Kit (JDK) 1.8 of hoger vereist. Zie de Uitrusting van de Ontwikkeling van de Software van Java installeren (JDK)om te controleren welke versie van JDK geïnstalleerd is.
OpenSearch
OpenSearch is een open-source vork van Elasticsearch 7.10.2, na de licentiewijziging van de Elasticsearch. In de volgende versies van Adobe Commerce wordt ondersteuning voor OpenSearch geïntroduceerd:
- 2.4.6 (OpenSearch heeft een aparte module en instellingen)
- 2.4.5.
- 2.4.4.
- 2.4.3-p2
- 2.3.7-p3
U kunt migreren van Elasticsearch aan OpenSearchslechts als u aan een versie van hierboven vermelde Adobe Commerce (of hoger) bevordert.
Voor OpenSearch is JDK 1.8 of hoger vereist. Zie de Uitrusting van de Ontwikkeling van de Software van Java installeren (JDK)om te controleren welke versie van JDK geïnstalleerd is.
de motorconfiguratie van het Onderzoekbeschrijft de taken u na het veranderen van onderzoeksmotoren moet uitvoeren.
Upgrade Elasticsearch
Ondersteuning voor Elasticsearch 8.x werd geïntroduceerd in Adobe Commerce 2.4.6. De volgende instructies tonen een voorbeeld van het upgraden van Elasticsearch van 7.x naar 8.x:
-
Voer een upgrade uit van de Elasticsearch 7.x-server naar 8.x en zorg ervoor dat deze actief is. Zie de documentatie van de Elasticsearch.
-
Schakel het veld
id_field_data
in door de volgende configuratie aan hetelasticsearch.yml
-bestand toe te voegen en de service Elasticsearch 8.x opnieuw te starten.code language-yaml indices: id_field_data: enabled: true
note info INFO Ter ondersteuning van Elasticsearch 8.x wordt in Adobe Commerce 2.4.6 de eigenschap indices.id_field_data
standaard uitgeschakeld en wordt het veld_id
in de eigenschapdocvalue_fields
gebruikt. -
Werk in de hoofdmap van uw Adobe Commerce-project uw Composer-afhankelijkheden bij om de module
Magento_Elasticsearch7
te verwijderen en de moduleMagento_Elasticsearch8
te installeren.code language-bash composer require magento/module-elasticsearch-8 --update-with-all-dependencies
-
Werk uw projectcomponenten bij.
code language-bash bin/magento setup:upgrade
-
vorm Elasticsearchin Admin.
-
Indexeer de catalogusindex opnieuw.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Verwijder alle items uit de ingeschakelde cachetypen.
code language-bash bin/magento cache:clean
Elasticsearch verlagen
Als u per ongeluk de versie van de Elasticsearch op uw server bijwerkt of om een andere reden wilt verlagen, moet u ook uw Adobe Commerce-projectafhankelijkheden bijwerken. Bijvoorbeeld om van Elasticsearch 8.x aan 7.x te degraderen
-
Verlaag de Elasticsearch 8.x-server naar 7.x en zorg ervoor dat deze in gebruik is. Zie de documentatie van de Elasticsearch.
-
Werk in de hoofdmap van uw Adobe Commerce-project uw Composer-afhankelijkheden bij om de module
Magento_Elasticsearch8
en de bijbehorende Composer-afhankelijkheden te verwijderen en installeer de moduleMagento_Elasticsearch7
.code language-bash composer remove magento/module-elasticsearch-8
-
Werk uw projectcomponenten bij.
code language-bash bin/magento setup:upgrade
-
vorm Elasticsearchin Admin.
-
Indexeer de catalogusindex opnieuw.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
Verwijder alle items uit de ingeschakelde cachetypen.
code language-bash bin/magento cache:clean
Extensies van derden
We raden u aan contact op te nemen met uw leverancier van zoekprogramma's om te bepalen of uw extensie volledig compatibel is met een Adobe Commerce-versie.
Database-tabelindeling converteren
U moet de indeling van alle databasetabellen omzetten van COMPACT
in DYNAMIC
. U moet ook het type opslagengine omzetten van MyISAM
in InnoDB
. Zie beste praktijken.
Limiet voor geopende bestanden instellen
Door de limiet voor geopende bestanden in te stellen (ulimit), kan worden voorkomen dat meerdere recursieve aanroepen van lange querytekenreeksen mislukken of dat er problemen optreden met de opdracht bin/magento setup:rollback
. Deze opdracht is anders voor verschillende UNIX-schelpen. Raadpleeg uw eigen smaak voor details over het ulimit
bevel.
De Adobe adviseert plaatsend de open dossiers grensaan een waarde van 65536
of meer, maar u kunt een grotere waarde indien nodig gebruiken. U kunt de limiet instellen op de opdrachtregel of u kunt deze instellen als een permanente instelling voor de shell van de gebruiker.
U stelt de limiet in vanaf de opdrachtregel:
-
Schakelaar aan de eigenaar van het dossiersysteem.
-
Stel de limiet in op
65536
.code language-bash ulimit -n 65536
De waarde in de Bash-shell instellen:
-
Schakelaar aan de eigenaar van het dossiersysteem.
-
Open
/home/<username>/.bashrc
in een teksteditor. -
Voeg de volgende regel toe:
code language-bash ulimit -n 65536
-
Sla de wijzigingen op in het
.bashrc
-bestand en sluit de teksteditor af.
pcre.recursion_limit
in het php.ini
-bestand, omdat dit kan leiden tot onvolledige terugdraaiversies zonder foutmelding.Controleren of uitsnijdtaken worden uitgevoerd
De UNIX-taakplanner cron
is van essentieel belang voor dagelijkse Adobe Commerce-bewerkingen. Het plant dingen zoals het opnieuw indexeren, nieuwsbrieven, e-mail, en sitemaps. Voor verschillende functies is minstens één snijtaak vereist die wordt uitgevoerd als de eigenaar van het bestandssysteem.
Als u wilt controleren of de uitsnijdtaak op de juiste wijze is ingesteld, controleert u de tab door de volgende opdracht in te voeren als de eigenaar van het bestandssysteem:
crontab -l
Resultaten die vergelijkbaar zijn met het volgende, moeten worden weergegeven:
#~ 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
Een ander symptoom van niet-actieve kroon is de volgende fout in de Admin:
Om de fout te zien, klik Berichten van het Systeem bij de bovenkant van het venster als volgt:
Zie uitsnedevoor meer informatie vormen en in werking stellen.
DATA_CONVERTER_BATCH_SIZE instellen
Adobe Commerce 2.4 bevat beveiligingsverbeteringen waarvoor bepaalde gegevens moeten worden omgezet van geserialiseerde gegevens in JSON. Deze conversie vindt plaats tijdens de upgrade en kan lang duren, afhankelijk van de hoeveelheid gegevens in de database.
De volgende tabellen worden het meest beïnvloed:
catalogrule
core_config_data
magento_reward_history
quote_payment
quote
sales_order_payment
sales_order
salesrule
url_rewrite
Als u veel gegevens hebt, kunt u de prestaties verbeteren door de waarde van een omgevingsvariabele in te stellen, DATA_CONVERTER_BATCH_SIZE
. De waarde wordt standaard ingesteld op 50,000
.
De omgevingsvariabele instellen:
-
Schakelaar aan de eigenaar van het dossiersysteem.
-
Stel de variabele in:
code language-bash export DATA_CONVERTER_BATCH_SIZE=100000
note note NOTE Voor DATA_CONVERTER_BATCH_SIZE
is geheugen vereist. Stel dit niet in op een grote waarde (ongeveer 1 GB) zonder deze eerst te testen. -
Nadat de upgrade is voltooid, kunt u de instelling van de variabele ongedaan maken:
code language-bash unset DATA_CONVERTER_BATCH_SIZE
Controleren op bestandssysteemmachtigingen
Om veiligheidsredenen vereist Adobe Commerce bepaalde machtigingen voor het bestandssysteem. De toestemmingen zijn verschillend van eigendom. Eigendom bepaalt wie handelingen op het bestandssysteem kan uitvoeren; machtigingen bepalen wat de gebruiker kan doen.
De folders in het dossiersysteem moeten door de 🔗 groep van de eigenaar van het 0} dossiersysteem kunnen worden geschreven.
Om te controleren of de machtigingen voor het bestandssysteem correct zijn ingesteld, meldt u zich aan bij de toepassingsserver of gebruikt u de toepassing van het bestandsbeheer van de hostingprovider.
Voer bijvoorbeeld de volgende opdracht in als de toepassing is geïnstalleerd in /var/www/html/magento2
:
ls -l /var/www/html/magento2
Voorbeelduitvoer:
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
Zie het volgende voor een verklaring van de steekproefoutput:
- De meeste bestanden zijn
-rw-rw----
, dat is660
drwxrwx---
=770
-rw-rw-rw-
=666
- De eigenaar van het bestandssysteem is
magento_user
Als u meer gedetailleerde informatie wilt, voert u de volgende opdracht in:
ls -la /var/www/html/magento2/pub
Omdat Adobe Commerce statische bestandselementen naar submappen van pub
implementeert, is het een goed idee om ook daar machtigingen en eigendom te controleren.
Voor meer informatie, zie {de systeemtoestemmingen en eigendom van het 0} Dossier 🔗.
De hoofdmap van de map pub/
instellen
Zie docroot wijzigen om veiligheidvoor meer details te verbeteren.
De plug-in Composer-update installeren
De magento/composer-root-update-plugin
Composer-plug-in verhelpt wijzigingen die moeten worden aangebracht in het hoofdprojectbestand composer.json
voordat de toepassing wordt bijgewerkt naar een nieuwe productvereiste.
De plug-in automatiseert de handmatige upgrade gedeeltelijk door afhankelijkheidsconflicten te identificeren en te helpen oplossen in plaats van deze handmatig te hoeven identificeren en te corrigeren.
De insteekmodule installeren:
-
Voeg het pakket toe aan het
composer.json
-bestand.code language-bash composer require magento/composer-root-update-plugin ~2.0 --no-update
-
Werk de gebiedsdelen bij:
code language-bash composer update