Drupal has a system for managing and deploying configuration to different environments. In tandem with it are tools, processes, and workflows to learn and customize for your site and team. Learn about Drupal’s configuration system and how to manage configuration with both administrative UIs and command-line tools. For module developers, see also the related topic Configuration API for Developers.
Example tasks
- Change the configuration sync directory outside of web root
- Clone a Drupal site
- Export active configuration to YAML files
- Move configuration from local → test → live
Confidence
The configuration system in core was introduced in Drupal 8. It is a non-opinionated system when it comes to specific workflows. You will learn the basic tenets of the configuration system as well as concepts and tools for importing and exporting configuration from one site instance to another. But there are many different types of Drupal projects out there and many kinds of teams. Learn the system and the tools in the following resources, but understand that you will need to customize the workflow to meet your site’s and team’s specific needs and tool sets.
Drupalize.Me resources
From the Drupal User Guide
Configuration API
Drupal 7
In Drupal 7, the main tool for managing configuration is the Features module. This series explains how to use the module and create a deployment workflow. The following tutorials show how to use Features with several popular content tools.
External resources
-
Configuration Management in Drupal 8: The Key Concepts (lullabot.com)
- A review of the thinking, discussions, issue summaries, code sprints, and code that led to Drupal 8’s new configuration system.
-
Rebuilding POP in D8: Configuration Management (lullabot.com)
- How to set up a workflow for development as well as a process for deploying changes.
-
Advanced Drupal 8 Configuration Management (CMI) Workflows (blog.liip.ch)
- How to solve common issues in a deployment workflow with Drupal 8 configuration management. For example, how to enable a module on a local dev environment but not on other environments or how to prevent config created on the live site, such as webforms or contact forms, from being deleted when new config is imported.