Magento 2 upgrade van 2.3 naar 2.4 — migratiegids
Terug naar blog

Magento 2 upgrade van 2.3 naar 2.4 — migratiegids

AuthorRuthger Idema
21 april 202612 min leestijd

Magento 2.3 ontvangt geen beveiligingsupdates meer. Elke dag dat je er nog op draait, vergroot het aanvalsoppervlak van je webshop. Dit is het stappenplan voor een veilige migratie naar 2.4.

Magento 2 upgrade van 2.3 naar 2.4 — migratiegids

Magento 2.3 bereikte End of Life in september 2022. Geen beveiligingspatches meer, geen bugfixes, geen ondersteuning. Elke webshop die nog op 2.3 draait, is een actief veiligheidsrisico.

De upgrade naar 2.4 is niet triviaal. Er zijn breaking changes, verplichte infrastructuurwijzigingen en module-compatibiliteitsproblemen. Dit stappenplan loodst je erdoorheen zonder verrassingen.

Wat je leert in dit artikel

  • Waarom 2.3 naar 2.4 fundamenteel anders is dan een minor upgrade
  • Welke infrastructuurwijzigingen verplicht zijn (Elasticsearch, PHP, MySQL)
  • Hoe je module-compatibiliteit inventariseert vóór je begint
  • Het stap-voor-stap upgradeplan met tijdindicaties
  • Hoe je rollback regelt als het misgaat

Waarom 2.3 naar 2.4 anders is dan een gewone upgrade

Magento 2.4 is niet gewoon "de volgende versie". Adobe heeft een aantal fundamentele keuzes gemaakt die de infrastructuurvereisten significant veranderen.

Elasticsearch is verplicht. MySQL-search is verwijderd in 2.4.0. Dit is de meest impactvolle wijziging voor bestaande installaties. Je hebt een draaiende Elasticsearch- of OpenSearch-instantie nodig vóórdat je kunt upgraden. PHP 7.3 en 7.4 worden niet meer ondersteund. Magento 2.4.4+ vereist PHP 8.1. Magento 2.4.6+ vereist PHP 8.2. Dit heeft directe impact op module-compatibiliteit. MySQL 5.7 is verlaten. MySQL 8.0 is vereist. Bestaande installaties op MariaDB of MySQL 5.7 moeten migreren. Two-Factor Authentication (2FA) is standaard ingeschakeld. Admin-toegang vereist een authenticator-app. Geen optionele instelling meer. Meerdere core modules zijn verwijderd. Magento Shipping, de geïntegreerde Amazon-koppeling en het Signifyd-fraudeplatform zijn uit de core verwijderd. Als je er gebruik van maakte, heb je een alternatief nodig.

Stap 1: Inventarisatie (1-2 weken)

Begin nooit met een upgrade zonder complete inventarisatie. Verrassingen tijdens een upgradetraject kosten tijd en geld.

Module-compatibiliteitscheck

bash
# Installeer de Magento Upgrade Compatibility Tool
composer require magento/upgrade-compatibility-tool

# Draai de tool tegen je doelversie
vendor/bin/uct upgrade:check --coming-version=2.4.6 /pad/naar/magento

De tool genereert een rapport met alle incompatibiliteiten, gecategoriseerd op ernst. Verwacht bij een gemiddelde webshop met 15-20 custom of third-party modules honderden warnings en tientallen errors.

Voorbeeld output:
CRITICAL  : 12 issues gevonden
  - Module X: deprecated API gebruik op 3 locaties
  - Module Y: niet compatibel met PHP 8.1
  - Aangepaste override van verwijderde class

WARNING   : 89 issues gevonden
  - 34x deprecated method calls
  - 12x type-declaratie mismatches
  - ...

NOTICE    : 156 issues gevonden

Third-party module inventarisatie

Maak een lijst van alle geïnstalleerde modules en controleer voor elk:

ModuleLeverancierLaatste update2.4 compatible?Alternatief?
BetaalmoduleMollie2024Ja, v2.30N.v.t.
ZoekverbeteringCustom2021NeeHerschrijven
ERP-koppelingIntern2022DeelsAanpassen

Voor elke incompatibele module heb je drie opties: de leverancier heeft een update beschikbaar, je schrijft de module om, of je vindt een alternatief. Die inventarisatie bepaalt je tijdlijn.

Infrastructuur-gap analyse

Controleer je huidige omgeving:

bash
# Huidige PHP-versie
php -v

# MySQL-versie
mysql --version

# Elasticsearch aanwezig?
curl -XGET 'localhost:9200'

Documenteer de gaps en plan de infrastructuurwijzigingen.

Stap 2: Infrastructuur upgraden (parallel uitvoeren)

Infrastructuurwijzigingen kun je parallel aan de module-compatibiliteitswerkzaamheden uitvoeren. Zorg dat je testomgeving als eerste up-to-date is.

Elasticsearch installeren

Magento 2.4.x werkt met Elasticsearch 7.x of OpenSearch 1.x/2.x. OpenSearch is de aanbevolen keuze voor nieuwe installaties omdat Adobe de migratie van Elasticsearch naar OpenSearch aankondigt.

bash
# OpenSearch installeren op Ubuntu
wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.11.0/opensearch-2.11.0-linux-x64.tar.gz
tar -xzf opensearch-2.11.0-linux-x64.tar.gz

# Of via package manager
apt-get install opensearch=2.11.0

Configureer Magento om OpenSearch te gebruiken:

php
// app/etc/env.php
'system' => [
    'default' => [
        'catalog' => [
            'search' => [
                'engine' => 'opensearch',
                'opensearch_server_hostname' => 'localhost',
                'opensearch_server_port' => '9200',
            ]
        ]
    ]
]

PHP upgraden

PHP 8.1 of 8.2 vereist aanpassingen aan alle code die deprecated functies gebruikt. De meest voorkomende problemen:

php
// PHP 8.1: properties moeten een type-declaratie hebben of een default waarde
// Oud (werkte in PHP 7.4):
class Product {
    public $name;
    public $price;
}

// Nieuw (PHP 8.1+):
class Product {
    public string $name;
    public float $price;
}

// PHP 8.2: dynamic properties zijn deprecated
// Oud:
$obj->dynamicProp = 'waarde'; // Deprecated warning in 8.2

// Nieuw: gebruik een array of declareer de property

MySQL upgraden naar 8.0

bash
# Dump de database voor de upgrade
mysqldump -u root -p magento_db > backup_voor_upgrade.sql

# Upgrade MySQL via package manager
apt-get upgrade mysql-server

# Controleer na upgrade
mysql -u root -p -e "SELECT VERSION();"

Let op: MySQL 8.0 heeft strikte mode standaard ingeschakeld. Dit kan queries breken die in 5.7 wel werkten. Test alle queries grondig in de testomgeving.

Stap 3: De upgrade uitvoeren

Met alle voorbereidingen gedaan, is de feitelijke Composer-upgrade relatief rechttoe rechtaan.

bash
# Schakel onderhoudsmodus in
php bin/magento maintenance:enable

# Composer-update uitvoeren
composer require magento/product-community-edition=2.4.6 \
    --no-update

# Dependencies bijwerken
composer update

# Setup upgraden
php bin/magento setup:upgrade

# DI opnieuw compileren
php bin/magento setup:di:compile

# Static content deployen
php bin/magento setup:static-content:deploy -f

# Cache legen
php bin/magento cache:flush

# Onderhoudsmodus uitschakelen
php bin/magento maintenance:disable

De totale duur van dit commando-blok op een gemiddelde webshop: 20-45 minuten.

Stap 4: Elasticsearch-reindex

Na de upgrade moet je de volledige index opnieuw opbouwen. De cataloguszoekopdracht werkt niet totdat dit gedaan is.

bash
# Alle indexers opnieuw uitvoeren
php bin/magento indexer:reindex

# Of specifiek de catalogus-search index
php bin/magento indexer:reindex catalogsearch_fulltext

# Status controleren
php bin/magento indexer:status

Voor een catalogus van 50.000 producten duurt de volledig reindex 15-45 minuten afhankelijk van servercapaciteit.

Stap 5: 2FA configureren

Magento 2.4 vereist twee-factor authenticatie voor admin-toegang. Na de upgrade kunnen admins niet inloggen totdat 2FA geconfigureerd is.

bash
# Tijdelijk 2FA uitschakelen voor configuratie (alleen in testomgeving)
php bin/magento security:tfa:disable

# Of een specifieke provider uitschakelen
php bin/magento security:tfa:reset admin gebruikersnaam

Zorg dat alle admin-gebruikers een authenticator-app hebben geïnstalleerd (Google Authenticator, Authy) vóórdat je naar productie gaat.

Breaking changes checklist

WijzigingImpactActie vereist
MySQL-search verwijderdHoogElasticsearch/OpenSearch installeren
PHP 8.1 vereistHoogCode review + aanpassen
MySQL 8.0 vereistHoogDatabase migreren
2FA verplichtMiddelAdmins informeren + configureren
Magento Shipping verwijderdLaag/HoogAlternatief zoeken indien gebruikt
\Zend_Db_Select deprecatedMiddelCustom queries aanpassen
Magento\Framework\App\Http\Context API gewijzigdMiddelCustom modules controleren

Rollback-strategie

Een upgrade zonder rollbackplan is roekeloos. Zorg vóór de upgrade voor:

bash
# 1. Volledige database backup
mysqldump -u root -p --single-transaction magento_db > backup_$(date +%Y%m%d_%H%M%S).sql

# 2. Bestandssysteem snapshot (of Git tag)
git tag pre-upgrade-2.3-$(date +%Y%m%d)
git push origin --tags

# 3. Media-bestanden backup
rsync -avz /var/www/magento/pub/media/ /backup/media/

# Rollback-procedure (als het misgaat):
# 1. Zet onderhoudsmodus aan
php bin/magento maintenance:enable
# 2. Herstel database
mysql -u root -p magento_db < backup_20240315_143000.sql
# 3. Herstel code via Git
git checkout pre-upgrade-2.3-20240315
# 4. Reset Composer
composer install
# 5. Onderhoudsmodus uit
php bin/magento maintenance:disable

Tijdlijn indicatie

FaseDuurOpmerking
Inventarisatie en compatibiliteitscheck1-2 wekenAfhankelijk van aantal modules
Module-aanpassingen en maatwerk2-8 wekenGrootste variabele
Infrastructuur upgraden1 weekParallel mogelijk
Testomgeving upgrade en testen1-2 weken
Acceptatietesten1 week
Productie-upgrade1 dagInclusief downtime-window
Totaal6-14 weken

Veelgemaakte fouten

  1. Upgraden zonder testomgeving. Altijd eerst upgraden op een exacte kopie van productie. Nooit direct op productie beginnen.
  1. Module-compatibiliteit pas checken tijdens de upgrade. De inventarisatie hoort aan het begin. Verrassingen op dag 1 van de uitvoering kosten tijd.
  1. Elasticsearch overslaan. Sommige teams proberen de upgrade door te zetten zonder Elasticsearch te installeren. Dat werkt niet. De installer blokkeert de upgrade.
  1. PHP upgraden na Magento upgraden. Doe dit andersom. PHP eerst, dan Magento. Zo zie je PHP-compatibiliteitsproblemen in isolatie.
  1. Geen rollback-test. Test je rollback-procedure in de testomgeving vóórdat je naar productie gaat. Een rollback die niet werkt is erger dan geen rollback.

Na de upgrade: wat nu?

Een succesvolle 2.3 naar 2.4 upgrade is een goed moment om ook andere technische schuld aan te pakken.

Overweeg na de upgrade:

  • Migratie naar Hyvä als frontend (aanzienlijke performance-impact)
  • Elasticsearch-configuratie optimaliseren voor betere zoekresultaten
  • PHP 8.2 instellen als je nog op 8.1 zit
  • Core Web Vitals meten en verbeteren

Bekijk ook onze Magento-diensten en het artikel over Magento 2 updatestrategie voor een bredere aanpak van technisch onderhoud. De officiële Adobe upgrade guide bevat de volledige compatibiliteitsmatrix per versie.

Conclusie

De upgrade van 2.3 naar 2.4 is werk, maar het is noodzakelijk werk. Een webshop op End-of-Life software is een veiligheidsrisico en een technische schuld die elke maand groeit.

Het stappenplan is helder: inventariseer eerst, bereid de infrastructuur voor, test grondig en ga dan pas naar productie. Met een goede rollback-strategie is het risico beheersbaar.

Hulp nodig bij jouw upgrade? Neem contact op — wij hebben dit traject tientallen keren doorlopen.

Veelgestelde vragen

Kan ik van 2.3 direct naar de laatste 2.4-versie?

Ja. Je hoeft niet via elke tussenversie te upgraden. Van 2.3.x direct naar 2.4.6 is technisch mogelijk. Controleer wel de compatibility tool output voor jouw specifieke 2.3-versie.

Hoe lang mag de webshop offline zijn tijdens de upgrade?

Met een goed voorbereid upgradeplan is de daadwerkelijke downtime van de productieomgeving 2-4 uur. De meeste upgradewerk gebeurt in de testomgeving. Op productiemoment draai je alleen de finale stappen.

Wat als een betaalde module niet compatible is met 2.4?

Neem eerst contact op met de leverancier. Serieuze extensie-leveranciers hebben 2.4-compatible versies beschikbaar of in planning. Als de leverancier geen update heeft en de module is business-critical, heb je twee opties: de module zelf aanpassen of een alternatief zoeken.

Is Hyvä compatible met Magento 2.4?

Ja. Hyvä is speciaal gebouwd voor Magento 2.4 en vereist minimaal versie 2.4.x. Een upgrade naar 2.4 is een goed moment om ook Hyvä in overweging te nemen.

Ruthger Idema

Geschreven door Ruthger Idema

15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.

Meer over ons team →
Deel dit artikel:

Wil je jouw e-commerce naar het volgende niveau?

Plan een vrijblijvend gesprek met onze experts over Magento, Shopify of Laravel maatwerk.

Plan een Tech Check