Deployment flow
The Magento production deployment flow helps a store reach maximum performance.
Install dependencies
The composer.json
and composer.lock
files manage Magento dependencies and install the appropriate version for each package. You must install dependencies before preprocessing dependency injection instructions if you plan to update the autoloader.
To install Magento dependencies:
1
composer install
Preprocess dependency injection instructions
When you preprocess and compile dependency injection (DI) instructions, Magento:
- Reads and processes all present configuration
- Analyzes dependencies between classes
- Creates autogenerated files (including proxies, factories, etc.)
- Stores compiled data and configuration in a cache that saves up to 25% of time on requests processing
To preprocess and compile DI instructions:
1
bin/magento setup:di:compile
Update the autoloader
After compilation completes, confirm that APCu is enabled and update the autoloader:
To update the autoloader:
The -o
option converts PSR-0/4 autoloading to classmap to get a faster autoloader. The --apcu
option uses APCu to cache found/not-found classes.
1
composer dump-autoload -o --apcu
If you plan on updating the autoloader, you must run the following commands in order:
1
composer install
1
bin/magento setup:di:compile
1
composer dump-autoload -o
1
bin/magento setup:static-content:deploy
Deploy static content
Deploying static content causes Magento 2 to perform the following actions:
- Analyze all static resources
- Perform merge, minimization, and bundling of content
- Read and process theme data
- Analyze theme fallback
- Store all processed and materialized content to specific folder for further usage
If your static content is not deployed, Magento performs all listed operation on the fly, leading to a significant increase in response time.
You can use a variety of options to customize deployment operations based on store size and fulfillment needs. The most common is the compact deploy strategy. See Static files deployment strategies
To deploy static content:
1
bin/magento setup:static-content:deploy
This command allows Composer to rebuild the mapping to project files so that they load faster.
Set production mode
Setting the mode to production automatically runs setup:di:compile
and setup:static-content:deploy
.
Finally, you need to place your store in Production mode. Production mode is specifically optimized for maximum performance of your store. It also de-activates all developer-specific features. This can be done in your .htaccess
or nginx.conf
file:
SetEnv MAGE_MODE production
You can also deploy static content, compile the content, and set the mode in one CLI command:
1
bin/magento deploy:mode:set production
The command runs in the background and does not allow you to set additional options on each specific step.
Additional pre-launch actions
These steps are recommended, but are not mandatory. You can perform them immediately before launching your store in production mode. The list includes:
- Re-index data to avoid the presence of any inconsistent data in your indexes.
- Flush the cache to be sure no old or incorrect data are left in cache.
- Warm up the cache, which calls out the most popular or critical store pages in advance, so the cache for them is generated and stored. This operation can be performed with any internet crawler or manually, if you have a small store.