9.9. Drupal での構成管理。Active、Sync 構成、DEV から LIVE への構成の移行。
Drupal の構成は、コンテンツタイプ、フィールド、構成フォーム、変数のすべての設定の基盤です。構成の助けを借りて、ある サイトから別のサイトへ変更を移したり、異なる機能を同時に、互いに干渉することなく開発したりできます。
構成は YML ファイルにアップロードして Git リポジトリに追加できるので、サイト設定の変更をコミットし、変更を Dev や Live に移せます。Drupal の構成のアイデアは、Features モジュールの動作方法に似ています:
https://www.drupal.org/project/features
ただし、features はすべてのモジュールと統合されているわけではなく、Features を通じてすべてのサイト設定を移すことが常に可能だったわけではありません。Drupal の構成はすべての設定で機能し、すべてをファイルにアップロードできます。
Drupal をインストールすると、構成をアップロードするためのフォルダーが作成されます。デフォルトでは、sites/default/files にある長い名前のフォルダーです:

フォルダーの名前はランダムに生成されます。というのも、フォルダーが 777 のアクセス権を持つ files フォルダー内の公開領域にあるからです。このような長い名前は、それらをダウンロードするために構成のフォルダー名を突き止められないようにします。実は、構成には API、Solr、SMTP のアクセス情報が含まれることがあり、この情報は隠されなければなりません。settings.php ファイルを通じて構成フォルダーへのパスを指定できます:
$config_directories['sync'] = 'sites/default/files/config__RPFDnw0- VygzmxgHiXPoXGNKYmjVi3mDZmP5exZX8tRleV9jXG6ZECaPRaxekelYsMCF42HwA/sync';
Sync フォルダーは、サイト間で構成を移すために使われます。Drupal はデフォルトで構成をデータベースに保存し、アクティブな構成を使います。アクティブな構成を sync フォルダーと同様にファイルに保存できますが、アクティブな構成はデータベースに残しておくのが最善です。そうすれば Drupal はより速く動作します。構成を含む config テーブルは、PhpMyAdmin や Adminer を通じて表示できます:

ここには、構成のシリアライズされた配列が保存されています。
通常、構成を含む sync フォルダーは sites/default/files の外に保存されます。というのも、files フォルダーは git に保存されないからです。構成フォルダーへのパスを変更しましょう:
$config_directories['sync'] = 'config/sync';
これで、構成を git に追加できます。構成は手動でアップロードできます:
/admin/config/development/configuration/full/export
Configuration -> Configuration syncronization -> Export

Export ボタンをクリックすると、drupal はすべての構成を含むアーカイブを表示します。これで、これらの構成を git に追加できます:

サイトを通じた構成の手動アップロードは、常に機能するとは限りません。構成が多い場合、アップロードが中断されることがあります。したがって、drush 経由でアップロードするのが最善です:
drush config-export
あるいは Drupal Console を通じて:
drupal config:export
インポートも同様で、drush を通じて行えます
drush config-import
そして drupal console:
drupal config:import
構成をサイトのルートに保管するのは良いアイデアではありません。settings.php を変更して、構成をサイト外のフォルダーに保存するのが最善です:
$config_directories['sync'] = '../config/sync';
Drupal を学んでいる間は、構成を含むフォルダーをサイトのルートにあるままにしておいて構いません。
これで、構成をアップロードして git に追加したので、別のサイトにアップロードできます。サイトで何か設定、例えばサイト名を変更しましょう:
/admin/config/system/site-information
そして Configuration Syncronization ページに移動します:
/admin/config/development/configuration

Drupal は config テーブルの現在のアクティブな構成を sync 構成と比較し、違いがあれば、このページでそれらを見られます。Import all ボタンをクリックすると、sync 構成を config テーブルのアクティブな構成に読み込むよう促されます。このようにして、変更を反映できます。