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.
.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ärdetmysql
,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ärdetelasticsearch7
för Elasticsearch 7- eller OpenSearch-motorn. Använd värdetopensearch
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:
- Installera och konfigurera Elasticsearch
- Installerar Elasticsearch
- Konfigurera nginx eller Apache så att det fungerar med sökmotorn
- Konfigurera Commerce att använda Elasticsearch och indexera om
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:
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:
-
Uppgradera servern Elasticsearch 7.x till 8.x och kontrollera att den är igång. Se Elasticsearch-dokumentationen.
-
Aktivera fältet
id_field_data
genom att lägga till följande konfiguration i filenelasticsearch.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 egenskapendocvalue_fields
. -
Uppdatera dina Composer-beroenden i Adobe Commerce-projektets rotkatalog för att ta bort modulen
Magento_Elasticsearch7
och installera modulenMagento_Elasticsearch8
.code language-bash composer require magento/module-elasticsearch-8 --update-with-all-dependencies
-
Uppdatera projektkomponenterna.
code language-bash bin/magento setup:upgrade
-
Konfigurera Elasticsearch i Admin.
-
Indexera om katalogindexet.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
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
-
Uppgradera servern Elasticsearch 8.x till 7.x och kontrollera att den är igång. Se Elasticsearch-dokumentationen.
-
Uppdatera dina Composer-beroenden i Adobe Commerce-projektets rotkatalog för att ta bort modulen
Magento_Elasticsearch8
och dess Composer-beroenden och installera modulenMagento_Elasticsearch7
.code language-bash composer remove magento/module-elasticsearch-8
-
Uppdatera projektkomponenterna.
code language-bash bin/magento setup:upgrade
-
Konfigurera Elasticsearch i Admin.
-
Indexera om katalogindexet.
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
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:
-
Växla till filsystemets ägare.
-
Ange gränsen till
65536
.code language-bash ulimit -n 65536
Så här anger du värdet i Bash-skalet:
-
Växla till filsystemets ägare.
-
Öppna
/home/<username>/.bashrc
i en textredigerare. -
Lägg till följande rad:
code language-bash ulimit -n 65536
-
Spara ändringarna i filen
.bashrc
och avsluta textredigeraren.
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:
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:
-
Växla till filsystemets ägare.
-
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. -
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 är660
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:
-
Lägg till paketet i din
composer.json
-fil.code language-bash composer require magento/composer-root-update-plugin ~2.0 --no-update
-
Uppdatera beroenden:
code language-bash composer update