Krav för fullständig uppgradering
Skapat för:
- Erfaren
- Administratör
- Utvecklare
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 ta reda på vilken katalogsökmotor du vill använda:
-
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.
MySQL 8.4-ändringar
Adobe har lagt till stöd för MySQL 8.4 i version 2.4.8.
I det här avsnittet beskrivs viktiga ändringar av MySQL 8.4 som utvecklare bör känna till.
Inaktuell nyckel som inte är standard
Användning av icke-unika eller partiella nycklar som sekundärnycklar är inte standard och används inte i MySQL 8.4. Från och med MySQL 8.4.0 måste du uttryckligen aktivera sådana nycklar genom att ange restrict_fk_on_non_standard_key
till OFF
eller genom att starta servern med alternativet --skip-restrict-fk-on-non-standard-key
.
Uppgradera från MySQL 8.0 (eller tidigare versioner) till MySQL 8.4
För att kunna uppgradera MySQL från version 8.0 till version 8.4 måste du följa dessa steg för att:
-
Aktivera underhållsläge:
bin/magento maintenance:enable
-
Säkerhetskopiera databasen:
bin/magento setup:backup --db
-
Uppgradera MySQL till version 8.4.
-
Ange
restrict_fk_on_non_standard_key
somOFF
i[mysqld]
i filenmy.cnf
.[mysqld] restrict_fk_on_non_standard_key = OFF
WARNING
Om du inte ändrar värdet förrestrict_fk_on_non_standard_key
tillOFF
får du följande fel under importen:ERROR 6125 (HY000) at line 2164: Failed to add the foreign key constraint. Missing unique key for constraint 'CAT_PRD_FRONTEND_ACTION_PRD_ID_CAT_PRD_ENTT_ENTT_ID' in the referenced table 'catalog_product_entity'
1. Starta om MySQL-servern.
-
Importera säkerhetskopierade data till MySQL.
-
Rensa cachen:
bin/magento cache:clean
-
Inaktivera underhållsläge:
bin/magento maintenance:disable
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.
Se Uppgradera Elasticsearch för fullständiga instruktioner om hur du säkerhetskopierar data, identifierar potentiella migreringsproblem och testar uppgraderingar innan du distribuerar till produktionen. Beroende på vilken version av Elasticsearch du har behöver du kanske starta om hela klustret eller inte.
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 till Elasticsearch 7.10.2 efter Elasticsearch licensändring. I följande versioner av Adobe Commerce introduceras 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 Elasticsearch 7.x-servern till 8.x och se till 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.indices: id_field_data: enabled: true
INFO
För att ha stöd för Elasticsearch 8.x tillåter inte Adobe Commerce 2.4.6 egenskapenindices.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
.composer require magento/module-elasticsearch-8 --update-with-all-dependencies
Om du råkar ut för ett beroendefel för
psr/http-message
, klickar du för att expandera följande felsökningsavsnitt:FelsökningOm du stöter på beroendekonflikter när du installerar Elasticsearch 8, särskilt med
psr/http-message
, kan du lösa detta genom att följa de här stegen:-
Kräv först modulen Elasticsearch 8 utan att uppdatera andra beroenden:
composer require magento/module-elasticsearch-8 --no-update
-
Uppdatera sedan Elasticsearch 8-modulen och
aws/aws-sdk-php
-paketen:composer update magento/module-elasticsearch-8 aws/aws-sdk-php -W
Detta tillvägagångssätt fungerar för 2.4.7-p4 med PHP 8.3. Problemet uppstår eftersom
aws/aws-sdk-php
kräverpsr/http-message >= 2.0
, vilket kan orsaka konflikter. Ovanstående steg hjälper dig att lösa dessa beroendeproblem. -
-
Uppdatera dina projektkomponenter.
bin/magento setup:upgrade
-
Konfigurera Elasticsearch i Admin.
-
Indexera om katalogindexet.
bin/magento indexer:reindex catalogsearch_fulltext
-
Ta bort alla objekt från de aktiverade cachetyperna.
bin/magento cache:clean
Nedgradera Elasticsearch
Om du av misstag uppgraderar Elasticsearch-versionen 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 Elasticsearch 8.x-servern till 7.x och se till 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
.composer remove magento/module-elasticsearch-8
-
Uppdatera projektkomponenterna.
bin/magento setup:upgrade
-
Konfigurera Elasticsearch i Admin.
-
Indexera om katalogindexet.
bin/magento indexer:reindex catalogsearch_fulltext
-
Ta bort alla objekt från de aktiverade cachetyperna.
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 de öppna filerna ulimit anges 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
.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:
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 symptom på att cron 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:
export DATA_CONVERTER_BATCH_SIZE=100000
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:
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.composer require magento/composer-root-update-plugin ~2.0 --no-update
-
Uppdatera beroenden:
composer update