{"id":773,"date":"2021-08-31T16:07:22","date_gmt":"2021-08-31T13:07:22","guid":{"rendered":"https:\/\/plumrocket.com\/learn\/?p=773"},"modified":"2022-10-05T18:53:10","modified_gmt":"2022-10-05T15:53:10","slug":"magento-2-3-upgrade-a-complete-how-to-guide","status":"publish","type":"post","link":"https:\/\/plumrocket.com\/learn\/upgrade-magento-2-3-guide","title":{"rendered":"Magento 2.3 Upgrade: A Complete How-To Guide"},"content":{"rendered":"\n<p>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.&nbsp;<a href=\"\/magento-upgrade\">Magento 2.3 upgrade<\/a>&nbsp;is no exception, so let\u2019s identify the main aspects of the software transformation, as well as determine the best way to perform a task.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" width=\"586\" height=\"440\" src=\"https:\/\/plumrocket.com\/learn\/wp-content\/uploads\/2021\/08\/Magento-2.3-Upgrade.jpg\" alt=\"Magento 2.3 Upgrade: A Complete How-To Guide\" class=\"wp-image-775\" srcset=\"https:\/\/plumrocket.com\/learn\/wp-content\/uploads\/2021\/08\/Magento-2.3-Upgrade.jpg 586w, https:\/\/plumrocket.com\/learn\/wp-content\/uploads\/2021\/08\/Magento-2.3-Upgrade-300x225.jpg 300w\" sizes=\"(max-width: 586px) 100vw, 586px\" \/><\/figure><\/div>\n\n\n\n<h2>Magento 2.3 Platform Requirements<\/h2>\n\n\n\n<p>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:<\/p>\n\n\n\n<h3>Operating Systems&nbsp;<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<h3>Memory Limit<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<h3>Composer Requirements<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<h3>Web Server Peculiarities<\/h3>\n\n\n\n<p>Apache 2.2 or 2.4 and Nginx 1.x is used while upgrading to the new Magento version.<\/p>\n\n\n\n<h3>Database Options<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<h3>PHP Considerations<\/h3>\n\n\n\n<p>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&nbsp;<a href=\"https:\/\/devdocs.magento.com\/guides\/v2.3\/install-gde\/system-requirements-tech.html#php\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">install a number of extensions<\/a>. So, you should enable PHP OPcache for performance reasons. Note, the official Magento knowledge base advise particular&nbsp;<a href=\"https:\/\/devdocs.magento.com\/guides\/v2.3\/install-gde\/prereq\/php-settings.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">PHP configuration settings<\/a>&nbsp;like memory_limit to skip the problems when running Magento.<\/p>\n\n\n\n<h3>SSL and Mail Server Requirements<\/h3>\n\n\n\n<p>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.<\/p>\n\n\n\n<h3>TLS Recommendations&nbsp;<\/h3>\n\n\n\n<p>Both PayPal and repo.magento.com TLS 1.1 or later versions are recommended for Magento 2.3.<\/p>\n\n\n\n<h3>Supported Software<\/h3>\n\n\n\n<p>In order to run Magento 2.3 upgrade in the right way, the following versions of technologies should be supported:<\/p>\n\n\n\n<ul><li>Redis 3.2 can be utilized for page caching and session storage<\/li><li>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&nbsp;<a rel=\"nofollow\" href=\"\/learn\/magento-2-varnish-configuration\">\u201cHow to Configure Magento 2 Varnish in a Few Clicks\u201d<\/a><\/li><li>Elasticsearch: 5.2.x and 2.x for Magento Commerce; Elasticsearch PHP client version 5.2<\/li><li>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<\/li><li>Three master databases can be used in Magento Commerce to offer scalability benefits for functional areas<\/li><\/ul>\n\n\n\n<p>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&nbsp;<a href=\"https:\/\/devdocs.magento.com\/guides\/v2.3\/install-gde\/system-requirements.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">here<\/a>.<\/p>\n\n\n\n<h2>How to Prepare Your Magento Online Store for Upgrade&nbsp;<\/h2>\n\n\n\n<p>If you want to launch a Magento 2.3 upgrade smoothly, it is recommended to check whether the platform\u2019s environment is ready and perform several activities before the transferring process:<\/p>\n\n\n\n<ol><li>Complete the&nbsp;<a href=\"https:\/\/devdocs.magento.com\/guides\/v2.3\/comp-mgr\/prereq\/prereq_compman-checklist.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">update and upgrade checklist<\/a>&nbsp;to skip the worries of the possible errors during the upgrading process.<\/li><li>Set the pub directory root by creating a subdomain or docroot that uses the Magento installation directory as its root. Then, launch the&nbsp;<a href=\"https:\/\/devdocs.magento.com\/guides\/v2.3\/comp-mgr\/upgrader\/upgrade-start.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">System Upgrade utility<\/a>&nbsp;together with the created subdomain if you already set the Magento root directory to <code>&lt;your Magento install dir&gt;\/pub<\/code>.<\/li><li>Make sure that all environment settings are compatible with the above-mentioned Magento 2.3 requirements.<\/li><li>Switch to maintenance mode for preventing access to your online store during upgrading. So, run the command:<\/li><\/ol>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-php\">php &lt;your Magento install dir>\/bin\/magento maintenance:enable<\/code><\/pre><\/div>\n\n\n\n<h2>Magento 2.3 Upgrade via Command Line: Comprehensive Instructions<\/h2>\n\n\n\n<p>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:<\/p>\n\n\n\n<h3>1. Run a Backup&nbsp;<\/h3>\n\n\n\n<p>Go to the Magento installation directory and create a backup of the existing <code>composer.json<\/code> file to avoid losing any important information.<\/p>\n\n\n\n<h3>2.&nbsp;Manage Packages&nbsp;<\/h3>\n\n\n\n<p>Specify the required packages and delete the ones you don\u2019t 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:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">composer remove magento\/product-community-edition \u2013no-update <\/code><\/pre><\/div>\n\n\n\n<p>In order to define the Magento packages and version of your upgrade for Magento Open Source, set the command:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">composer require magento\/product-community-edition=2.3.0 \u2013no-update <\/code><\/pre><\/div>\n\n\n\n<p>For Magento 2.3 Commerce, use the following one:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">composer require magento\/product-enterprise-edition=2.3.0 \u2013no-update <\/code><\/pre><\/div>\n\n\n\n<p>Then, determine the additional packages with the help of the command:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">composer require \u2013dev 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 \u2013no-update <\/code><\/pre><\/div>\n\n\n\n<p>Also, you can remove the unneeded packages by exploiting this command:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">composer remove \u2013dev sjparkinson\/static-review fabpot\/php-cs-fixer \u2013no-update <\/code><\/pre><\/div>\n\n\n\n<h3>3. Update Autoload<\/h3>\n\n\n\n<p>The next step is to update the autoload. Open the <code>composer.json<\/code> file and find the <strong>\u201cautoload\u201d: \u201cpsr-4\u201d<\/strong> section. It should include \u201c<em>Zend\\\\Mvc\\\\Controller\\\\<\/em>\u201d: \u201c<em>setup\/src\/Zend\/Mvc\/Controller\/<\/em>\u201d. For instance:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-markup\">\"autoload\": {\n\"psr-4\": {\n\"Magento\\\\Framework\\\\\": \"lib\/internal\/Magento\/Framework\/\",\n\"Magento\\\\Setup\\\\\": \"setup\/src\/Magento\/Setup\/\",\n\"Magento\\\\\": \"app\/code\/Magento\/\",\n\"Zend\\\\Mvc\\\\Controller\\\\\": \"setup\/src\/Zend\/Mvc\/Controller\/\"\n},\n...\n}<\/code><\/pre><\/div>\n\n\n\n<h3>4. Modify Magento Updater<\/h3>\n\n\n\n<p>After the successful installation of the Magento updater, it is time to modify it.<\/p>\n\n\n\n<ul><li>Go to the <code>&lt;Magento install dir&gt;\/update<\/code> directory to backup and remove the old directory.<\/li><li>Create the corresponding Composer project.<\/li><\/ul>\n\n\n\n<p>Use the following command for Magento 2.3 Open Source:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">composer create-project \u2013repository=https:\/\/repo.magento.com magento\/project-community-edition=2.3.0 temp_dir \u2013no-install <\/code><\/pre><\/div>\n\n\n\n<p>For Magento 2.3 Commerce should be set the next command:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">composer create-project \u2013repository=https:\/\/repo.magento.com magento\/project-enterprise-edition=2.3.0 temp_dir \u2013no-install <\/code><\/pre><\/div>\n\n\n\n<p>In case you want to use a repository with non-public packages, you should change the URL in <strong><em>\u2013repository <\/em><\/strong>accordingly.<\/p>\n\n\n\n<ul id=\"block-e8e40761-6660-429b-b61f-fa68665b1e38\"><li>Move your project to&nbsp; <code>&lt;Magento install dir&gt;\/update<\/code> directory. In order to reach the desired results, run the command:<\/li><\/ul>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">mkdir updatemv temp_dir\/update &lt;Magento install dir>\/updaterm -rf temp_dir<\/code><\/pre><\/div>\n\n\n\n<h3>5. Edit Metadata&nbsp;<\/h3>\n\n\n\n<p>To update metadata, you need to change <em>\u201cname\u201d<\/em>, <em>\u201cversion\u201d<\/em>, and <em>\u201cdescription\u201d<\/em> fields in the <code>&lt;Magento install dir&gt;\/composer.json<\/code> file.<strong>&nbsp;<\/strong><\/p>\n\n\n\n<h3>6. Apply Updates<\/h3>\n\n\n\n<p>Employ the updates with the help of the command:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">composer update<\/code><\/pre><\/div>\n\n\n\n<h3>7. Clean Magento Cache&nbsp;<\/h3>\n\n\n\n<p>After the updates are applied, it&#8217;s time to clean the cache by running the command:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">bin\/magento cache:clean<\/code><\/pre><\/div>\n\n\n\n<p>Also, clear caches by deleting data from the subcategories of var and generated folders by running the following commands:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-bash\">rm -rf &lt;Magento install dir>\/var\/cache\/*\nrm -rf &lt;Magento install dir>\/var\/page_cache\/*\nrm -rf &lt;Magento install dir>\/generated\/code\/*<\/code><\/pre><\/div>\n\n\n\n<p>Note, in case you are running Redis, Memchased, etc., don\u2019t forget to flush the cache there too.<\/p>\n\n\n\n<h3>8. Update Database Schema&nbsp;<\/h3>\n\n\n\n<p>One of the Magento 2.3 upgrade requirements is to update the database schema and data, so run the command:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-php\">php bin\/magento setup:upgrade<\/code><\/pre><\/div>\n\n\n\n<h3>9. Disable Maintenance Mode&nbsp;<\/h3>\n\n\n\n<p>If everything went the right way and no issues occurred, you can turn off the maintenance mode with the next command:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-php\">php bin\/magento maintenance:disable<\/code><\/pre><\/div>\n\n\n\n<h3>10. Restart Varnish&nbsp;<\/h3>\n\n\n\n<p>Last but not least, if you are using Varnish, restart it with the command:<\/p>\n\n\n\n<div class=\"wp-block-prismatic-blocks\"><div><\/div><pre><code class=\"language-php\">service varnish restart<\/code><\/pre><\/div>\n\n\n\n<h2>Post-Update Check&nbsp;<\/h2>\n\n\n\n<p>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\u2019t load correctly, it means the upgrade failed. For example, if you see an error: \u201c<em>We\u2019re sorry, an error has occurred while generating this email<\/em>\u201d, you should perform the actions:<\/p>\n\n\n\n<ul><li>Reset the filesystem ownership and permissions as a root user.<\/li><li>Check the storefront in the web browser again.<\/li><li>Flush the directories: <code>&lt;your Magento install dir&gt;\/var\/cache, \/var\/page_cache<\/code>, and <code>\/generated\/code.<\/code><\/li><\/ul>\n\n\n\n<p>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. <a href=\"\/magento-migration\">Magento 2.3 Upgrade &amp; Migration Service <\/a>provided by Plumrocket is offered to help you run the upgrade in a fast, secure, and accurate way. <a rel=\"nofollow\" href=\"\/contacts\">Request a quote<\/a>, so the professional developers can check your website, as well as estimate the time and cost of your upgrade.<\/p>\n\n\n\n<h2>Bottom Line&nbsp;<\/h2>\n\n\n\n<p>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\u2019 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\u2019 preferences.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to prepare your Magento 2.3 online store for upgrade. We have prepared platform requirements, command line instructions and post-update check.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[126],"tags":[146],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Magento 2.3 Upgrade: A Complete How-To Guide - Magento Tutorials for Beginners &amp; Professionals<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/plumrocket.com\/learn\/upgrade-magento-2-3-guide\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Magento 2.3 Upgrade: A Complete How-To Guide - Magento Tutorials for Beginners &amp; Professionals\" \/>\n<meta property=\"og:description\" content=\"Learn how to prepare your Magento 2.3 online store for upgrade. We have prepared platform requirements, command line instructions and post-update check.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/plumrocket.com\/learn\/upgrade-magento-2-3-guide\" \/>\n<meta property=\"og:site_name\" content=\"Magento Tutorials for Beginners &amp; Professionals\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-31T13:07:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-05T15:53:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/plumrocket.com\/learn\/wp-content\/uploads\/2021\/08\/Magento-2.3-Upgrade.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/posts\/773"}],"collection":[{"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/comments?post=773"}],"version-history":[{"count":17,"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/posts\/773\/revisions"}],"predecessor-version":[{"id":1242,"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/posts\/773\/revisions\/1242"}],"wp:attachment":[{"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/media?parent=773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/categories?post=773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/plumrocket.com\/learn\/wp-json\/wp\/v2\/tags?post=773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}