Keeping Magento current is critical for security, performance, and compatibility. This step-by-step guide walks developers through upgrading from Magento 2.4.7 to 2.4.8, covering system requirements, pre-upgrade checks, Git workflow, Composer commands, and post-upgrade validation.
Updated September 28, 2026. The requirements now follow Adobe's current table, and the commands follow Adobe's documented upgrade procedure.
Magento 2.4.8 was released on April 8, 2025, and Adobe supports it until May 31, 2028. Staying on 2.4.7 gets harder to defend every month. Its standard support ends on May 31, 2027, and Adobe no longer supports it with any MySQL version newer than 8.0, which itself reached end of support on April 30, 2026. Here's how we typically handle the move.
Quick Navigation
- 1. System Requirements
- 2. Pre-Upgrade Checks
- 3. Git Workflow
- 4. Upgrade Commands
- 5. Post-Upgrade Tasks
- 6. Common Issues
- 7. Final Checklist
1. System Requirements
Adobe's system requirements page lists these versions for on-premises installations of 2.4.8 as released, and for 2.4.8-p5, the latest 2.4.8 security release at the time of writing:
| Dependency | 2.4.8 | 2.4.8-p5 |
|---|---|---|
| PHP | 8.4, 8.3 | 8.4, 8.3 |
| Composer | 2.9.3+ | 2.10 |
| MySQL | 8.4 | 8.4 |
| MariaDB | 11.4 | 11.4, 11.8 |
| OpenSearch | 2.19 | 3 |
| Elasticsearch | 8.17 | 8 |
| RabbitMQ | 4.1 | 4.3 |
| Valkey | 8 | 8.1 |
| Varnish | 7.6 | 8 |
| nginx | 1.26 | 1.30 |
Three rows decide how the upgrade goes.
- The database. Adobe supports 2.4.7 with no MySQL version newer than 8.0, and 2.4.8 requires MySQL 8.4. On MySQL there is no version both releases share, so the database upgrade and the code upgrade have to happen in the same maintenance window. MariaDB is easier, because the latest security releases of both lines, 2.4.7-p10 and 2.4.8-p5, list MariaDB 11.8. If your MySQL runs on Amazon RDS, the blue/green guide covers the database half.
- PHP. 2.4.7 runs on PHP 8.3 and 8.2, and 2.4.8 on 8.4 and 8.3. Switch to 8.3 while still on 2.4.7, upgrade, and move to 8.4 once your extensions support it.
- Search. Both lines support OpenSearch 2.19. If you still run Elasticsearch 7, move to OpenSearch first and reindex before touching the code.
2. Pre-Upgrade Checks
Don't skip this part.
- Back up everything: database, files, media and configuration. Magento's built-in backup commands are deprecated, so use a database dump or a binary tool such as Percona XtraBackup.
- Check that every custom and third-party module supports 2.4.8.
- Grep your code for deprecated functions and core overrides.
- Run the whole upgrade on a staging copy first.
- Install Adobe's Composer root update plugin once, if it is not there yet:
composer require magento/composer-root-update-plugin ~2.0 --no-update
composer update
3. Git Workflow
Always use a dedicated branch. If something breaks, you can roll back cleanly:
git checkout -b upgrade-to-2.4.8
git tag before-2.4.8-upgrade
Commit composer.json, composer.lock, and all theme and module files before moving forward.
4. Upgrade Commands
4.1 Stop Cron and Drain the Queues
bin/magento maintenance:enable
bin/magento cron:remove
bin/magento cron:run --group=consumers
# repeat until no 'bin/magento queue' process is left
ps aux | grep 'bin/magento queue'
Adobe warns that starting the upgrade while message queue consumers are running may corrupt data, which is why cron comes out first.
4.2 Update Magento via Composer
cp composer.json composer.json.bak
# target the latest 2.4.8 security release; Adobe Commerce uses magento/product-enterprise-edition
composer require-commerce magento/product-community-edition 2.4.8-p5 --no-update
composer update
4.3 Run the Magento Upgrade
rm -rf var/cache/* var/page_cache/* generated/code/*
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush
bin/magento maintenance:disable
bin/magento cron:install
The last command puts cron back. Adobe's upgrade page ends before it, and a store without cron quietly stops indexing, sending mail and running its queues.
5. Post-Upgrade Tasks
Check the indexers with bin/magento indexer:status. setup:upgrade marks indexers whose configuration changed as invalid, and cron rebuilds them. On a large catalog, let cron do that rather than running a full indexer:reindex during business hours. If an indexer stays at Processing or Reindex required, our indexer guide walks through the causes.
Check file ownership rather than resetting permissions wholesale. A blanket chmod 644 across vendor also strips the execute bit from the scripts that vendor/bin points to.
Then check var/log/exception.log and var/log/system.log. If there are errors, you want to catch them now, not after you've disabled maintenance mode on production. Walk through the storefront, test checkout, and log into the admin to make sure nothing's broken.
Finally, apply the security fixes released since your 2.4.8 version. Adobe now ships monthly isolated patch files without Composer packages, applied in release order on top of the latest -p release, and the 2.4.9 guide explains how they work.
6. Common Issues
- PHP errors. Usually the PHP version or a required extension is missing. Check with
php -m. - Database logins failing after the move to MySQL 8.4. On a self-hosted MySQL 8.4 the old
mysql_native_passwordplugin is disabled by default, so a Magento database user created on 8.0 cannot log in until it is moved tocaching_sha2_passwordor the plugin is enabled again. - Broken themes. Theme compatibility is the most common headache. Look for deprecated layout handles.
- Module errors. Third-party modules are the wild card. Disable them one at a time to isolate the problem.
- Deployment failures. Make sure
composer.lockis committed and caches are cleared before deploying.
7. Final Checklist
- Staging upgrade completed and tested
- Production backups verified and restorable
- Git repo clean, no uncommitted changes
- Database and PHP on versions 2.4.8 supports
- Cron reinstalled with
bin/magento cron:install - Isolated security patches applied
- Third-party integrations tested (SMTP, payment gateways, CDN)
- Team notified about the maintenance window
Note: If you need help with staging, backups, or a fully managed upgrade, our team at Private DevOps is ready to assist.
Wrap Up
The 2.4.8 upgrade is straightforward if you've done your homework. Good backups, a clean Git workflow, and testing on staging first will save you from most surprises. The database is the part that needs planning this time, since MySQL users move from 8.0 to 8.4 in the same window as the code. Once the store runs on 2.4.8, the 2.4.9 guide covers the next step.
Or read how we handle it in Magento 2 Speed Optimization.
Related Articles
How to Upgrade Magento 2.4.8 to 2.4.9 and What Changes
Magento 2.4.9 needs PHP 8.5, OpenSearch 3 and, for MariaDB users, version 12.3, and Adobe's own pages disagree on four of its requirements. This covers the upgrade order that 2.4.8-p5 makes possible, the commands Adobe documents, the library changes that break extensions, and the security patches a fresh 2.4.9 install still lacks.
MagentoHow to Completely Disable "Compare Products" in Magento 2
Magento's built-in Compare Products feature can add unnecessary clutter and slow down page loads. This guide shows you how to fully remove it using layout XML overrides, CSS rules, and a quick CLI deploy -- keeping your storefront clean and fast.
MagentoMagento 2 EU-Compliant Invoice Date PDF
By default, Magento 2 omits the invoice creation date from PDF invoices and ignores store-level locale settings. Our open-source PdfOverride module adds legally required dates, translates invoice text per store view, and ensures EU VAT Directive compliance out of the box.