Let’s identify the main aspects of this system upgrade, as well as determine the best way to perform a task.

Magento 2.3 Platform Requirements

They are Linux x86-64 distributions like RHEL, CentOS, Debian, Ubuntu, and others.

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.

It is essential to install the latest version of Composer.

Apache 2.2 or 2.4 and Nginx 1.x is used

MySQL 5.6 or 5.7 is the best fit for Magento 2.3. Alternative options that are compatible with MySQL NDB Cluster, MariaDB, Percona.

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 repo.magento.com 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=https://repo.magento.com 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=https://repo.magento.com 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.

Source: Magento 2.3 Upgrade: A Complete How-To Guide – Magento Tutorials for Beginners & Professionals