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.

NOTE
Voor Adobe Commerce op de Pro projecten van de wolkeninfrastructuur, moet u a 🔗 kaartje van de Steun {creëren 0} om de diensten in het Opvoeren en van de Productie milieu's te installeren of bij te werken. Geef aan welke servicewijzigingen nodig zijn en neem de bijgewerkte .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 waarde mysql, 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 de elasticsearch7 -waarde voor Elasticsearch 7 of de OpenSearch-engine. Voor versie 2.4.6 en hoger gebruikt u de opensearch -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:

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-typeplaatsen. 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:

NOTE
Deze montages zijn beschikbaar voor op-gebouw slechts plaatsingen. Adobe Commerce op klanten met cloudinfrastructuur hebben geen toegang tot deze instellingen.

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:

  1. 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.

  2. Schakel het veld id_field_data in door de volgende configuratie aan het elasticsearch.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 eigenschap docvalue_fields gebruikt.
  3. Werk in de hoofdmap van uw Adobe Commerce-project uw Composer-afhankelijkheden bij om de module Magento_Elasticsearch7 te verwijderen en de module Magento_Elasticsearch8 te installeren.

    code language-bash
    composer require magento/module-elasticsearch-8 --update-with-all-dependencies
    
  4. Werk uw projectcomponenten bij.

    code language-bash
    bin/magento setup:upgrade
    
  5. vorm Elasticsearchin Admin.

  6. Indexeer de catalogusindex opnieuw.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  7. 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

  1. Verlaag de Elasticsearch 8.x-server naar 7.x en zorg ervoor dat deze in gebruik is. Zie de documentatie van de Elasticsearch.

  2. 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 module Magento_Elasticsearch7 .

    code language-bash
    composer remove magento/module-elasticsearch-8
    
  3. Werk uw projectcomponenten bij.

    code language-bash
    bin/magento setup:upgrade
    
  4. vorm Elasticsearchin Admin.

  5. Indexeer de catalogusindex opnieuw.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. 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:

  1. Schakelaar aan de eigenaar van het dossiersysteem.

  2. Stel de limiet in op 65536 .

    code language-bash
    ulimit -n 65536
    

De waarde in de Bash-shell instellen:

  1. Schakelaar aan de eigenaar van het dossiersysteem.

  2. Open /home/<username>/.bashrc in een teksteditor.

  3. Voeg de volgende regel toe:

    code language-bash
    ulimit -n 65536
    
  4. Sla de wijzigingen op in het .bashrc -bestand en sluit de teksteditor af.

IMPORTANT
We raden u aan geen waarde in te stellen voor de eigenschap 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:

NOTE
De tab is het configuratiebestand dat verantwoordelijk is voor het uitvoeren van snijtaken.
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:

  1. Schakelaar aan de eigenaar van het dossiersysteem.

  2. 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.
  3. 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 is 660
  • 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-pluginComposer-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:

  1. Voeg het pakket toe aan het composer.json -bestand.

    code language-bash
    composer require magento/composer-root-update-plugin ~2.0 --no-update
    
  2. Werk de gebiedsdelen bij:

    code language-bash
    composer update
    
recommendation-more-help
83a60e0e-8849-4685-a8cd-c129ecd795ea