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
# 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:
| Module | Leverancier | Laatste update | 2.4 compatible? | Alternatief? |
|---|---|---|---|---|
| Betaalmodule | Mollie | 2024 | Ja, v2.30 | N.v.t. |
| Zoekverbetering | Custom | 2021 | Nee | Herschrijven |
| ERP-koppeling | Intern | 2022 | Deels | Aanpassen |
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:
# 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.
# 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:
// 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 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
# 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.
# 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.
# 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.
# 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
| Wijziging | Impact | Actie vereist |
|---|---|---|
| MySQL-search verwijderd | Hoog | Elasticsearch/OpenSearch installeren |
| PHP 8.1 vereist | Hoog | Code review + aanpassen |
| MySQL 8.0 vereist | Hoog | Database migreren |
| 2FA verplicht | Middel | Admins informeren + configureren |
| Magento Shipping verwijderd | Laag/Hoog | Alternatief zoeken indien gebruikt |
\Zend_Db_Select deprecated | Middel | Custom queries aanpassen |
Magento\Framework\App\Http\Context API gewijzigd | Middel | Custom modules controleren |
Rollback-strategie
Een upgrade zonder rollbackplan is roekeloos. Zorg vóór de upgrade voor:
# 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
| Fase | Duur | Opmerking |
|---|---|---|
| Inventarisatie en compatibiliteitscheck | 1-2 weken | Afhankelijk van aantal modules |
| Module-aanpassingen en maatwerk | 2-8 weken | Grootste variabele |
| Infrastructuur upgraden | 1 week | Parallel mogelijk |
| Testomgeving upgrade en testen | 1-2 weken | |
| Acceptatietesten | 1 week | |
| Productie-upgrade | 1 dag | Inclusief downtime-window |
| Totaal | 6-14 weken |
Veelgemaakte fouten
- Upgraden zonder testomgeving. Altijd eerst upgraden op een exacte kopie van productie. Nooit direct op productie beginnen.
- Module-compatibiliteit pas checken tijdens de upgrade. De inventarisatie hoort aan het begin. Verrassingen op dag 1 van de uitvoering kosten tijd.
- Elasticsearch overslaan. Sommige teams proberen de upgrade door te zetten zonder Elasticsearch te installeren. Dat werkt niet. De installer blokkeert de upgrade.
- PHP upgraden na Magento upgraden. Doe dit andersom. PHP eerst, dan Magento. Zo zie je PHP-compatibiliteitsproblemen in isolatie.
- 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.

Geschreven door Ruthger Idema
15+ jaar ervaring in e-commerce development. Gespecialiseerd in Magento, Shopify en Laravel maatwerk.
Meer over ons team →