Krav för fullständig uppgradering

Det är viktigt att förstå vad som krävs för att köra Adobe Commerce. Du måste först granska systemkraven för den version du planerar att uppgradera till.

När du har granskat systemkraven måste du uppfylla följande krav innan du uppgraderar systemet:

  • Uppdatera all programvara
  • Kontrollera att en sökmotor som stöds är installerad
  • Konvertera databastabellformat
  • Ange gräns för öppna filer
  • Verifiera att cron-jobb körs
  • Ange DATA_CONVERTER_BATCH_SIZE
  • Verifiera behörigheter i filsystemet
  • Ange katalogroten pub/
  • Installera plugin-programmet för Composer-uppdatering

Uppdatera all programvara

Systemkraven beskriver exakt vilka versioner av tredjepartsprogram som har testats med Adobe Commerce-versioner.

Se till att du har uppdaterat alla systemkrav och beroenden i din miljö. Se PHP 7.4, PHP 8.0, PHP 8.1 och nödvändiga PHP-inställningar.

NOTE
För Adobe Commerce i molnbaserade infrastrukturproprojekt måste du skapa en supportbiljett för att kunna installera eller uppdatera tjänster i mellanlagrings- och produktionsmiljöer. Ange de tjänständringar som krävs och inkludera dina uppdaterade .magento.app.yaml- och services.yaml-filer och PHP-version i biljetten. Det kan ta upp till 48 timmar för molninfrastrukturteamet att uppdatera ditt projekt. Se Program och tjänster som stöds.

Kontrollera att en sökmotor som stöds är installerad

Adobe Commerce kräver att Elasticsearch eller OpenSearch är installerat för att du ska kunna använda programmet.

Om du uppgraderar från 2.3.x till 2.4 måste du kontrollera om du använder MySQL, Elasticsearch eller ett tillägg från tredje part som katalogsökmotor i din 2.3.x-instans. Resultatet avgör vad du måste göra innan uppgraderar till 2.4.

Om du uppgraderar korrigeringsutgåvor på versionslinjerna 2.3.x eller 2.4.x kan du migrera till OpenSearch om Elasticsearch 7.x redan är installerat.

Du kan använda kommandoraden eller Admin för att bestämma katalogsökmotorn:

  • Ange kommandot bin/magento config:show catalog/search/engine. Kommandot returnerar värdet mysql, elasticsearch (vilket anger att Elasticsearch 2 har konfigurerats), elasticsearch5, elasticsearch6, elasticsearch7 eller ett anpassat värde, vilket anger att du har installerat en sökmotor från tredje part. För tidigare versioner än 2.4.6 använder du värdet elasticsearch7 för Elasticsearch 7- eller OpenSearch-motorn. Använd värdet opensearch för OpenSearch-motorn för version 2.4.6 och senare.

  • Gå till Admin och kontrollera värdet för fältet Stores > Settings > Configuration > Catalog > Catalog > Catalog Search > Search Engine.

I följande avsnitt beskrivs vilka åtgärder du måste vidta innan du uppgraderar till 2.4.0.

MySQL

Från och med 2.4 är MySQL inte längre en katalogsökmotor som stöds. Du måste installera och konfigurera Elasticsearch eller OpenSearch innan du uppgraderar. Använd följande resurser för att hjälpa dig igenom den här processen:

Vissa katalogsökmotorer från tredje part körs ovanpå Adobe Commerce sökmotor. Kontakta leverantören för att avgöra om du måste uppdatera tillägget.

MariaDB

Omindexering av MariaDB 10.4 och 10.6 tar längre tid jämfört med tidigare versioner av MariaDB eller MySQL. För att påskynda omindexeringen rekommenderar vi att du ställer in följande konfigurationsparametrar för MariaDB:

Om prestandaförsämringar inte har att göra med indexering efter uppgradering till MariaDB 10.6 bör du aktivera inställningen --query-cache-type. Exempel: --query-cache-type=ON.

Innan du uppgraderar Adobe Commerce i molninfrastrukturprojekt kan du behöva uppgradera MariaDB (se MariaDB upgrade best practices).

Exempel:

  • Adobe Commerce 2.4.6 med MariaDB version 10.5.1 eller senare
  • Adobe Commerce 2.3.5 med MariaDB version 10.3 eller tidigare

Utöver dessa rekommendationer bör du rådfråga databasadministratören om hur du konfigurerar följande parametrar:

NOTE
De här inställningarna är endast tillgängliga för lokala distributioner. Adobe Commerce på molninfrastrukturkunder har inte tillgång till dessa inställningar.

Sökmotor

Du måste installera och konfigurera Elasticsearch 7.6 eller senare eller OpenSearch 1.2 innan du uppgraderar till 2.4.0. Adobe stöder inte längre Elasticsearch 2.x, 5.x och 6.x. Sökmotorkonfigurationen i Konfigurationshandboken beskriver de åtgärder du måste utföra efter att du har uppgraderat Elasticsearch till en version som stöds.

Mer information om hur du säkerhetskopierar data, identifierar potentiella migreringsproblem och testar uppgraderingar innan du distribuerar till produktionen finns i Uppgraderar Elasticsearch. Beroende på vilken version av Elasticsearch du använder behöver du kanske inte starta om hela klustret.

Elasticsearch kräver Java Development Kit (JDK) 1.8 eller senare. Se Installera Java Software Development Kit (JDK) för att kontrollera vilken version av JDK som är installerad.

OpenSearch

OpenSearch är en öppen källkodsgaffel i Elasticsearch 7.10.2 efter Elasticsearch licenschange. I följande versioner av Adobe Commerce finns stöd för OpenSearch:

  • 2.4.6 (OpenSearch har en separat modul och inställningar)
  • 2.4.5
  • 2.4.4
  • 2.4.3-p2
  • 2.3.7-p3

Du kan migrera från Elasticsearch till OpenSearch endast om du uppgraderar till en version av Adobe Commerce som listas ovan (eller senare).

OpenSearch kräver JDK 1.8 eller senare. Se Installera Java Software Development Kit (JDK) för att kontrollera vilken version av JDK som är installerad.

Sökmotorkonfigurationen beskriver de uppgifter du måste utföra efter att du har ändrat sökmotorer.

Uppgradera Elasticsearch

Stöd för Elasticsearch 8.x infördes i Adobe Commerce 2.4.6. Följande instruktioner visar ett exempel på hur du uppgraderar Elasticsearch från 7.x till 8.x:

  1. Uppgradera servern Elasticsearch 7.x till 8.x och kontrollera att den är igång. Se Elasticsearch-dokumentationen.

  2. Aktivera fältet id_field_data genom att lägga till följande konfiguration i filen elasticsearch.yml och starta om tjänsten Elasticsearch 8.x.

    code language-yaml
    indices:
      id_field_data:
        enabled: true
    
    note info
    INFO
    För att ge stöd för Elasticsearch 8.x tillåter Adobe Commerce 2.4.6 inte egenskapen indices.id_field_data som standard och använder fältet _id i egenskapen docvalue_fields.
  3. Uppdatera dina Composer-beroenden i Adobe Commerce-projektets rotkatalog för att ta bort modulen Magento_Elasticsearch7 och installera modulen Magento_Elasticsearch8.

    code language-bash
    composer require magento/module-elasticsearch-8 --update-with-all-dependencies
    
  4. Uppdatera projektkomponenterna.

    code language-bash
    bin/magento setup:upgrade
    
  5. Konfigurera Elasticsearch i Admin.

  6. Indexera om katalogindexet.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  7. Ta bort alla objekt från de aktiverade cachetyperna.

    code language-bash
    bin/magento cache:clean
    

Nedgradera Elasticsearch

Om du av misstag uppgraderar Elasticsearch på servern eller av någon annan anledning måste du också uppdatera dina Adobe Commerce projektberoenden. Om du till exempel vill nedgradera från Elasticsearch 8.x till 7.x

  1. Uppgradera servern Elasticsearch 8.x till 7.x och kontrollera att den är igång. Se Elasticsearch-dokumentationen.

  2. Uppdatera dina Composer-beroenden i Adobe Commerce-projektets rotkatalog för att ta bort modulen Magento_Elasticsearch8 och dess Composer-beroenden och installera modulen Magento_Elasticsearch7.

    code language-bash
    composer remove magento/module-elasticsearch-8
    
  3. Uppdatera projektkomponenterna.

    code language-bash
    bin/magento setup:upgrade
    
  4. Konfigurera Elasticsearch i Admin.

  5. Indexera om katalogindexet.

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. Ta bort alla objekt från de aktiverade cachetyperna.

    code language-bash
    bin/magento cache:clean
    

Tredjepartstillägg

Vi rekommenderar att du kontaktar din sökmotorleverantör för att avgöra om ditt tillägg är helt kompatibelt med en Adobe Commerce-release.

Konvertera databastabellformat

Du måste konvertera formatet för alla databastabeller från COMPACT till DYNAMIC. Du måste också konvertera lagringsmotortypen från MyISAM till InnoDB. Se bästa praxis.

Ange gräns för öppna filer

Genom att ange gränsen för antalet öppna filer (ulimit) kan du undvika fel vid flera rekursiva anrop av långa frågesträngar eller problem med att använda kommandot bin/magento setup:rollback. Det här kommandot är annorlunda för olika UNIX-skal. Mer information om kommandot ulimit finns i din individuella variant.

Adobe rekommenderar att du anger ulimit för de öppna filerna till 65536 eller mer, men du kan använda ett större värde om det behövs. Du kan ange gränsen på kommandoraden eller göra den till en permanent inställning för användarens skal.

Så här anger du gränsen från kommandoraden:

  1. Växla till filsystemets ägare.

  2. Ange gränsen till 65536.

    code language-bash
    ulimit -n 65536
    

Så här anger du värdet i Bash-skalet:

  1. Växla till filsystemets ägare.

  2. Öppna /home/<username>/.bashrc i en textredigerare.

  3. Lägg till följande rad:

    code language-bash
    ulimit -n 65536
    
  4. Spara ändringarna i filen .bashrc och avsluta textredigeraren.

IMPORTANT
Vi rekommenderar att du undviker att ange ett värde för egenskapen pcre.recursion_limit i filen php.ini eftersom det kan leda till ofullständiga återställningar utan felmeddelande.

Verifiera att cron-jobb körs

UNIX-uppgiftsschemaläggaren cron är viktig för de dagliga Adobe Commerce-åtgärderna. Det schemalägger saker som omindexering, nyhetsbrev, e-post och webbplatskartor. Flera funktioner kräver minst ett cron-jobb som körs som filsystemets ägare.

Kontrollera på fliken crontab genom att ange följande kommando som ägare av filsystemet för att kontrollera att ditt cron-jobb är korrekt konfigurerat:

NOTE
crontab är den konfigurationsfil som ansvarar för att köra cron-jobb.
crontab -l

Resultat som liknar följande ska visas:

#~ 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

Ett annat symtom på att kron inte körs är följande fel i Admin:

Om du vill visa felet klickar du på Systemmeddelanden högst upp i fönstret enligt följande:

Mer information finns i Konfigurera och köra cron.

Ange DATA_CONVERTER_BATCH_SIZE

Adobe Commerce 2.4 innehåller säkerhetsförbättringar som kräver att vissa data konverteras från serialiserade till JSON. Den här konverteringen sker under uppgraderingen och kan ta lång tid, beroende på hur mycket data som finns i databasen.

Följande tabeller påverkas mest:

  • catalogrule
  • core_config_data
  • magento_reward_history
  • quote_payment
  • quote
  • sales_order_payment
  • sales_order
  • salesrule
  • url_rewrite

Om du har en stor mängd data kan du förbättra prestandan genom att ange värdet för en miljövariabel, DATA_CONVERTER_BATCH_SIZE. Som standard är värdet 50,000.

Så här anger du miljövariabeln:

  1. Växla till filsystemets ägare.

  2. Ange variabeln:

    code language-bash
    export DATA_CONVERTER_BATCH_SIZE=100000
    
    note note
    NOTE
    DATA_CONVERTER_BATCH_SIZE kräver minne. Undvik att ange ett stort värde (ungefär 1 GB) utan att först testa det.
  3. När uppgraderingen är klar kan du ta bort variabeln:

    code language-bash
    unset DATA_CONVERTER_BATCH_SIZE
    

Verifiera behörigheter i filsystemet

Av säkerhetsskäl kräver Adobe Commerce vissa behörigheter i filsystemet. Behörigheter skiljer sig från ägarskap. Ägarskapet avgör vem som kan utföra åtgärder i filsystemet. Behörigheterna avgör vad användaren kan göra.

Kataloger i filsystemet måste vara skrivbara av filsystemets ägargrupp.

Om du vill verifiera att filsystembehörigheterna är korrekt loggar du antingen in på programservern eller använder värdtjänstleverantörens filhanterarprogram.

Ange till exempel följande kommando om programmet är installerat i /var/www/html/magento2:

ls -l /var/www/html/magento2

Exempel:

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

Se följande för en förklaring av exempelresultatet:

  • De flesta filerna är -rw-rw----, vilket är 660
  • drwxrwx--- = 770
  • -rw-rw-rw- = 666
  • Filsystemets ägare är magento_user

Om du vill ha mer detaljerad information anger du följande kommando:

ls -la /var/www/html/magento2/pub

Eftersom Adobe Commerce distribuerar statiska filresurser till underkataloger till pub är det en bra idé att verifiera behörigheter och ägarskap även där.

Mer information finns i Filsystembehörigheter och ägarskap.

Ange katalogroten pub/

Mer information finns i Förbättra säkerheten genom att ändra dokumentroten.

Installera plugin-programmet för Composer-uppdatering

magento/composer-root-update-plugin Composer-plugin-programmet åtgärdar ändringar som måste göras i rotprojektfilen composer.json innan det uppdateras till ett nytt produktkrav.

Plugin-programmet automatiserar delvis den manuella uppgraderingen genom att identifiera och hjälpa dig att lösa beroendekonflikter i stället för att kräva att du identifierar och åtgärdar dem manuellt.

Installera plugin-programmet:

  1. Lägg till paketet i din composer.json-fil.

    code language-bash
    composer require magento/composer-root-update-plugin ~2.0 --no-update
    
  2. Uppdatera beroenden:

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