Magento 2.3 Upgrade: A Complete How-To Guide

Since the e-commerce market is in the digital space, a number of Magento e-store owners are striving to move ahead in the constantly evolving industry environment. Hence, online businesses are supporting the possibility of accommodating shopping carts with new features and moving data to the more advanced versions of the platforms. Magento 2.3 upgrade is no exception, so let’s identify the main aspects of the software transformation, as well as determine the best way to perform a task.

Magento 2.3 Upgrade: A Complete How-To Guide

Magento 2.3 Platform Requirements

Before diving deep into the Magento upgrade to 2.3, it is essential to pay attention to the Magento 2.3 system peculiarities since your existing setup can be outdated. In this case, you can avoid various issues that can break the entire store. Check out the following Magento 2.3 requirements to eliminate any unexpected pitfalls:

Operating Systems 

In order to run an upgrade properly, you should use the supported operating systems for Magento 2.3. They are Linux x86-64 distributions like RHEL, CentOS, Debian, Ubuntu, and others.

Memory Limit

The minimum amount of RAM required to perform a data upgrade to Magento 2.3 is 2GB. If your memory includes less than that amount, a swap file will be created to prevent an upgrade fail.

Composer Requirements

It is essential to install the latest version of Composer if you want to contribute to the codebase or develop extensions for Magento 2.3.

Web Server Peculiarities

Apache 2.2 or 2.4 and Nginx 1.x is used while upgrading to the new Magento version.

Database Options

MySQL 5.6 or 5.7 is the best fit for Magento 2.3. Also, you take advantage of the alternative options that are compatible with MySQL NDB Cluster, MariaDB, Percona, as well as other binary-compatible MySQL software.

PHP Considerations

There are several PHP requirements that should be taken into consideration during a Magento 2.3 update. First of all, 7.1.3+ and 7.2.x are the supported versions. Also, it is required to install a number of extensions. So, you should enable PHP OPcache for performance reasons. Note, the official Magento knowledge base advise particular PHP configuration settings like memory_limit to skip the problems when running Magento.

SSL and Mail Server Requirements

A valid HTTPS security certificate is required to upgrade your online business to Magento 2.3. It is important to remember that self-signed SSL certificates are not supported. In terms of the mail server, it is important to obtain a Mail Transfer Agent (MTA) or an SMTP server.

TLS Recommendations 

Both PayPal and TLS 1.1 or later versions are recommended for Magento 2.3.

Supported Software

In order to run Magento 2.3 upgrade in the right way, the following versions of technologies should be supported:

  • Redis 3.2 can be utilized for page caching and session storage
  • Varnish 4.x or 5.2 can be used. If you want to learn more information about Varnish installation on your Magento 2 store, check an article “How to Configure Magento 2 Varnish in a Few Clicks”
  • Elasticsearch: 5.2.x and 2.x for Magento Commerce; Elasticsearch PHP client version 5.2
  • RabbitMQ 3.7.x can be exploited to provide you with a more efficient way of publishing messages to queue and determining customers that receive the messages asynchronously
  • Three master databases can be used in Magento Commerce to offer scalability benefits for functional areas

As you can see, there is a wide range of Magento 2.3 requirements that should be taken into consideration to upgrade your platform successfully. If you want to learn more info about system requirements, you can find useful insights here.

How to Prepare Your Magento Online Store for Upgrade 

If you want to launch a Magento 2.3 upgrade smoothly, it is recommended to check whether the platform’s environment is ready and perform several activities before the transferring process:

  1. Complete the update and upgrade checklist to skip the worries of the possible errors during the upgrading process.
  2. Set the pub directory root by creating a subdomain or docroot that uses the Magento installation directory as its root. Then, launch the System Upgrade utility together with the created subdomain if you already set the Magento root directory to <your Magento install dir>/pub.
  3. Make sure that all environment settings are compatible with the above-mentioned Magento 2.3 requirements.
  4. Switch to maintenance mode for preventing access to your online store during upgrading. So, run the command:
php <your Magento install dir>/bin/magento maintenance:enable

Magento 2.3 Upgrade via Command Line: Comprehensive Instructions

Among the different methods of upgrading to Magento 2.3, performing the process manually is one of the most efficient ways to complete the task successfully. It takes a bit more time, yet provides more flexibility. Thus, take the following steps to launch the Magento upgrade to the 2.3 version:

1. Run a Backup 

Go to the Magento installation directory and create a backup of the existing composer.json file to avoid losing any important information.

2. Manage Packages 

Specify the required packages and delete the ones you don’t need before performing the next steps. If you are upgrading from Magento Open Source to Commerce, the Magento Open source update should be disabled. In order to perform a task, run the following command:

composer remove magento/product-community-edition –no-update 

In order to define the Magento packages and version of your upgrade for Magento Open Source, set the command:

composer require magento/product-community-edition=2.3.0 –no-update 

For Magento 2.3 Commerce, use the following one:

composer require magento/product-enterprise-edition=2.3.0 –no-update 

Then, determine the additional packages with the help of the command:

composer require –dev phpunit/phpunit:~6.2.0 friendsofphp/php-cs-fixer:~2.10.1 lusitanian/oauth:~0.8.10 pdepend/pdepend:2.5.2 sebastian/phpcpd:~3.0.0 squizlabs/php_codesniffer:3.2.2 –no-update 

Also, you can remove the unneeded packages by exploiting this command:

composer remove –dev sjparkinson/static-review fabpot/php-cs-fixer –no-update 

3. Update Autoload

The next step is to update the autoload. Open the composer.json file and find the “autoload”: “psr-4” section. It should include “Zend\\Mvc\\Controller\\”: “setup/src/Zend/Mvc/Controller/”. For instance:

"autoload": {
"psr-4": {
"Magento\\Framework\\": "lib/internal/Magento/Framework/",
"Magento\\Setup\\": "setup/src/Magento/Setup/",
"Magento\\": "app/code/Magento/",
"Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"

4. Modify Magento Updater

After the successful installation of the Magento updater, it is time to modify it.

  • Go to the <Magento install dir>/update directory to backup and remove the old directory.
  • Create the corresponding Composer project.

Use the following command for Magento 2.3 Open Source:

composer create-project –repository= magento/project-community-edition=2.3.0 temp_dir –no-install 

For Magento 2.3 Commerce should be set the next command:

composer create-project –repository= magento/project-enterprise-edition=2.3.0 temp_dir –no-install 

In case you want to use a repository with non-public packages, you should change the URL in –repository accordingly.

  • Move your project to  <Magento install dir>/update directory. In order to reach the desired results, run the command:
mkdir updatemv temp_dir/update <Magento install dir>/updaterm -rf temp_dir

5. Edit Metadata 

To update metadata, you need to change “name”, “version”, and “description” fields in the <Magento install dir>/composer.json file. 

6. Apply Updates

Employ the updates with the help of the command:

composer update

7. Clean Magento Cache 

After the updates are applied, it’s time to clean the cache by running the command:

bin/magento cache:clean

Also, clear caches by deleting data from the subcategories of var and generated folders by running the following commands:

rm -rf <Magento install dir>/var/cache/*
rm -rf <Magento install dir>/var/page_cache/*
rm -rf <Magento install dir>/generated/code/*

Note, in case you are running Redis, Memchased, etc., don’t forget to flush the cache there too.

8. Update Database Schema 

One of the Magento 2.3 upgrade requirements is to update the database schema and data, so run the command:

php bin/magento setup:upgrade

9. Disable Maintenance Mode 

If everything went the right way and no issues occurred, you can turn off the maintenance mode with the next command:

php bin/magento maintenance:disable

10. Restart Varnish 

Last but not least, if you are using Varnish, restart it with the command:

service varnish restart

Post-Update Check 

After the upgrade of your online store is complete, it is important to check whether the process ran successfully. Hence, you should open the storefront in the browser. In case your platform doesn’t load correctly, it means the upgrade failed. For example, if you see an error: “We’re sorry, an error has occurred while generating this email”, you should perform the actions:

  • Reset the filesystem ownership and permissions as a root user.
  • Check the storefront in the web browser again.
  • Flush the directories: <your Magento install dir>/var/cache, /var/page_cache, and /generated/code.

By and large, updating your online store to Magento 2.3 via Command line includes a number of steps to perform, as well as taking some time and effort to complete a task. In order to save time and avoid missing any important details, many companies tend to benefit from third-party applications and services. Magento 2.3 Upgrade & Migration Service provided by Plumrocket is offered to help you run the upgrade in a fast, secure, and accurate way. Request a quote, so the professional developers can check your website, as well as estimate the time and cost of your upgrade.

Bottom Line 

Constant change is the new norm of the e-commerce market. Dealing with outdated features, shifting client behaviors, new applications, and more is a part of online business owners’ daily routine. Upgrading your Magento store to the 2.3 version is a necessary task if you want to keep up with the times and stay competitive. It is a great way to provide your online shop with new functionality and fit your customers’ preferences.

About The Author: Anastasiia Tomashivska

Deeply passionate about making a good copy. Now exploring new horizons of SEO and content marketing. Apart from the digital world, she is obsessed with travelling, films and caffeine. View more posts