基于文件系统的配置工作
请注意,默认情况下,Drupal 将配置管理信息存储在数据库中。要使基于文件系统的工作流程正常工作,您需要修改 settings.php
和 services.yml
文件。
必须在安装 Drupal 之前完成此操作,因为在切换到文件系统后,很难再返回到基于数据库的配置管理设置。 如果您需要在网站安装后启用基于文件的配置,必须首先导出配置并在启用文件配置之前,将副本保存在活动配置文件夹中。
注意: 您必须有单独的活动目录和暂存目录(根据以下配置)。对于基于文件的工作流程,仍然需要执行配置导入步骤。请参阅此 问题 —— 基于文件系统的工作流程在没有导入配置步骤的情况下,无法正确安装或删除模块。
1. 打开 settings.php
文件,找到“活动配置设置”部分。
2. 取消注释以 $settings['bootstrap_config_storage']
开头的行,以启用基于文件的配置存储。
并确保该行如下所示:
$settings['bootstrap_config_storage'] = array('Drupal\Core\Config\BootstrapConfigStorageFactory::class', 'getFileStorage');
3. 在 settings.php
中添加以下代码(修改自 https://www.drupal.org/node/2291587#comment-10426135):
$config_directories[CONFIG_ACTIVE_DIRECTORY] = 'PATH_OUTSIDE_WEB_ROOT/config/active/'; $config_directories[CONFIG_STAGING_DIRECTORY] = 'PATH_OUTSIDE_WEB_ROOT/config/staging/';
保存文件。
然后,打开 sites/default
下的 services.yml
文件,并添加以下代码(代码来源:https://www.drupal.org/node/2291587#comment-10567238):
services: config.storage: class: Drupal\Core\Config\CachedStorage arguments: ['@config.storage.active', '@cache.config'] config.storage.active: class: Drupal\Core\Config\FileStorage factory: Drupal\Core\Config\FileStorageFactory::getActive
5. 将源站点 active 文件夹中的配置文件(.yml)复制到源站点的 staging 文件夹。
6. 使用工具(例如 rsync、git、ftp 或 scp),将源站点 staging 文件夹的内容复制到目标站点的 staging 文件夹。
7. 在目标网站上访问 admin/config/development/configuration
8. 点击“导入全部”按钮。