You can upgrade Magento from the command line if you installed the software using any of the following:
- Downloaded the metapackage using
composer create-project
- Installed the compressed archive
- If you cloned the Magento 2 GitHub repository, you cannot use this method to upgrade; instead, see Update the Magento application.
- If you configured Magento use use
pub
as its root directory, see the next section. - If you're upgrading to Magento 2.1 (including a Release Candidate) from Magento 2.0.7 or earlier and you installed sample data, see Command-line upgrade to Magento 2.1 with sample data instead of this topic.
- If you're upgrading to version 2.1, see Upgrade to Magento version 2.1 (June 22, 2016).
- If you're upgrading from Magento CE or EE 2.0.0 or 2.0.1, you must first perform the tasks discussed in the Technical Bulletin (1/28/16).
Prerequisite: pub directory root
This section applies to you only if you set the Magento root directory to
. If you did not do this, skip this section and continue with the next section.
If you use pub as your Magento root directory:
- For the upgrade, create another subdomain or docroot that uses the Magento installation directory as its root.
- Use the following procedure to upgrade Magento using the command line.
Run the System Upgrade utility using that subdomain.
Put your store in maintenance mode
To prevent access to your store while it’s being upgraded, put your store in maintenance mode.
You can optionally create a custom maintenance mode page.
To enable maintenance mode:
- Log in to your Magento server as, or switch to, the Magento file system owner.
- Enter the following command:
php /bin/magento maintenance:enable
For additional options, see Enable or disable maintenance mode.
Upgrade using the command line
To upgrade using the command line:
- Log in to your Magento server as, or switch to, the Magento file system owner.
- Change to the directory in which you installed the Magento software.
- Enter the following commands in the order shown:
- If prompted, enter your authentication keys.
- Manually clear
var
subdirectories: - Update the database schema and data:
- Put your storefront online (that is, cancel maintenance mode):
- Restart Varnish if you use it for page caching.
- Access your storefront.
- Reset file system ownership and permissions as a user with root privileges.
- Clear the following directories and try again:
For example, cd /var/www/html/magento2
composer require
composer update
rm -rf var/di var/generation
php bin/magento cache:clean
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy
php bin/magento setup:static-content:deploy -f (for Magento 2.2.x)
php bin/magento cache:flush
php bin/magento setup:di:compile
php bin/magento indexer:reindex
For example, to upgrade to Magento CE version 2.0.13, enter:
composer require magento/product-community-edition 2.0.13 --no-update
composer update
To upgrade to Magento EE version 2.0.13, enter:
composer require magento/product-enterprise-edition 2.0.13 --no-update
composer update
If an error displays about a missing .gitignore
files, see the Technical Bulletin (1/28/16).
rm -rf /var/cache/*
rm -rf /var/page_cache/*
rm -rf /var/generation/*
If you use a cache storage other than filesystem (e.g., Redis, Memcached, etc.) you need to manually clear the cache there too.
php bin/magento setup:upgrade
php bin/magento maintenance:disable
service varnish restart
The following error might display:
We're sorry, an error has occurred while generating this email.
If so, perform the following tasks:
/var/cache
/var/page_cache
/var/generation
Source: Magento.com