About Magento modes

Introduction to Magento modes

You can run Magento in any of the following modes:

Mode name Description
default

Enables you to deploy the Magento application on a single server without changing any settings. However, default mode is not optimized for production.

To deploy the Magento application on more than one server or to optimize it for production, change to one of the other modes.

  • Symlinks to static view files are published to the pub/static directory
  • Exceptions are not displayed to the user; instead, exceptions are written to log files.
  • Hides custom X-Magento-* HTTP request and response headers
developer

Intended for development only, this mode:

  • Symlinks to static view files are published to the pub/static directory
  • Provides verbose logging
  • Enables automatic code compilation
  • Enables enhanced debugging
  • Shows custom X-Magento-* HTTP request and response headers
  • Results in the slowest performance (because of the preceding)
production Intended for deployment on a production system. Exceptions are not displayed to the user, exceptions are written to logs only, and static view files are served from `pub/static` only. New or updated files are not written to the file system.

Default mode

As its name implies, default mode is how the Magento software operates if no other mode is specified. Default mode enables you to deploy the Magento application on a single server without changing any settings. However, default mode is not as optimized for production as is production mode.

To deploy the Magento application on more than one server or to optimize it for production, change to one of the other modes.

In default mode:

  • Errors are logged to the file reports at server, and never shown to a user
  • A symlink to a static view file is published to the pub/static directory for each requested file
  • Default mode is not optimized for a production environment, primarily because of the adverse performance impact of static files being dynamically generated rather than materialized. In other words, creating static files and caching them has a greater performance impact than generating them using the static files creation tool.

For more information, see Set the Magento mode.

Developer mode

You should run the Magento software in developer mode when you’re extending or customizing it.

In developer mode:

  • A symlink to a static view file is published to the pub/static directory for each requested file
  • Uncaught exceptions display in the browser
  • System logging in var/report is verbose
  • An exception is thrown in the error handler, rather than being logged
  • An exception is thrown when an event subscriber cannot be invoked

For more information, see Set the Magento mode.

Production mode

You should run the Magento software in production mode when it’s deployed to a production server. After optimizing the server environment (database, web server, and so on), you should run the static view files deployment tool to write static view files to the Magento pub/static directory.

This improves performance because static files don’t go through the fallback mechanism; instead, URLs for static files are created as needed.

In production mode:

  • Static view files are not materialized, and URLs for them are composed on the fly without going through the fallback mechanism. (Static view files are served from cache only.)
  • Errors are logged to the file system and are never displayed to the user

Next step

To set a mode, see Set the Magento mode.

To generate static view files for production mode, see Deploy static view files