Run System Upgrade
Overview of System Upgrade
This section discusses how to start System Upgrade, which upgrades the version of Magento core components as well as any other installed components.
You can upgrade in any of the following ways:
-
Using the System Upgrade utility, a wizard that walks you through the upgrade step by step; continue with this topic.
Use this method if you don’t have a to the Magento server’s file system or if you’re a non-technical user.
-
Using the command line.
This upgrade method is more advanced and it requires access to the Magento server’s file system.
System upgrade refers to updating the Magento 2.x core components and other installed components. To migrate from Magento 1.x to Magento 2, see the Migration Guide.
- Authorization keys from a shared account cannot be used for upgrade. You must get your authorization keys from
magento.com
account owner. - If you installed the Magento application by cloning the GitHub repository, you cannot use the System Upgrade utility to upgrade the software. Instead, you must update it manually.
System Upgrade checklist
Before you continue, to avoid errors during your installation or update, make sure you verify all of the following:
- You set up a Magento file system owner and shared that owner’s group with the web server user group
- Your cron jobs are set up and running
- Set a value for DATA_CONVERTER_BATCH_SIZE
- File system permissions are set properly
Do not continue without performing these checks. Failure to do so could result in errors.
Set a value for DATA_CONVERTER_BATCH_SIZE
Magento 2.2 includes security enhancements that requires some data to be converted from serialized data format to JSON encoded format. This conversion occurs during the upgrade and it can take a long time, depending on how much data is in your Magento database.
One or more fields in the following tables are affected: sales_order
, sales_order_payment
, quote
, quote_payment
, core_config_data
, magento_reward_history
, url_rewrite
, salesrule
, and catalogrule
. (This is not a complete list.)
If you have a large amount of data, you can improve performance by setting the value of an environment variable, DATA_CONVERTER_BATCH_SIZE
. By default, it’s set to a value of 50,000.
To set the variable, before the upgrade starts enter the following command as the Magento file system owner in a bash shell prompt:
export DATA_CONVERTER_BATCH_SIZE <value>
For example,
export DATA_CONVERTER_BATCH_SIZE 100000
After your upgrade completes, you can unset the variable as follows:
unset DATA_CONVERTER_BATCH_SIZE
DATA_CONVERTER_BATCH_SIZE
requires memory; avoid setting it to a very large value (approximately 1GB) without testing it first.
Magento file system owner and group
The Magento file system owner group must have write access to Magento directories and files.
Cron jobs are running
Magento requires three cron jobs, all running as the Magento file system owner.
To verify your cron jobs are set up properly, enter the following command as the Magento file system owner:
crontab -l
Results similar to the following should display:
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/magento2/update/cron.php >> /var/www/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron:run >> /var/www/magento2/var/log/setup.cron.log
Another symptom of cron not running is the following error in the Magento Admin:
To see the error, you might need to click System Messages at the top of the window as follows:
For details, see Set up cron.
File system permissions
For security reasons, Magento requires certain permissions on the file system. Permissions are different from ownership. Ownership determines who can perform actions on the file system; permissions determine what the user can do.
Directories in the Magento file system must be writable by the Magento file system owner’s group.
To verify your file system permissions are set properly, either log in to the Magento server or use your hosting provider’s file manager application.
For example, enter the following commands on a Linux system if the Magento application is installed in /var/www/html/magento2
:
ls -al /var/www/html/magento2
A sample result follows:
In the preceding example, the Magento file system owner is magento_user
. Directories in the Magento file system have drwxrwx---
permissions (775) and files have -rw-rw-rw-
permissions (664).
To get more detailed information, you can optionally enter the following command:
ls -al /var/www/html/magento2/pub
Because Magento deploys static file assets to subdirectories of pub
, it’s a good idea to verify permissions and ownership there as well.
For more information, see File system permissions and ownership.