設定同期ディレクトリのストレージ場所の変更
デフォルトでは、Drupalは設定同期ディレクトリをサイトのファイルディレクトリに配置し、ディレクトリ名の一部としてハッシュを使用します。つまり、sites/default/files/config_HASHのようになります。
HASHはかなり長いランダムな文字列です。これにより、インターネット経由での設定へのアクセスが難しくなります(不可能ではありません)。同期ディレクトリの場所は、インストール後に変更できます。
本番サイトでは、アカウントに権限がある場合は、設定同期ディレクトリをサイトルートの完全に外側に移動することをお勧めします。同期ディレクトリはバージョン管理下にある必要があるため、バージョン管理リポジトリのルートディレクトリはサイトルートの1つ上のレベルにある必要があることを意味します。
ローカル開発サイトでは、設定ファイルへのアクセスを容易にするために、ディレクトリをsites/default/sync.のような場所に移動したい場合があります。
ディレクトリを移動するには、settings.phpファイルを開きます。ファイルの末尾に、Drupalのインストールプロセスがsites/default/files/config_HASHにある同期ディレクトリの場所を示す行を書き込みます。
同期ディレクトリがないと、PHPエラーログに次のメッセージが表示される場合があります:
Uncaught PHP Exception Exception: "The configuration directory type 'sync' does not exist"
このフォルダーを、例えばsites/default/syncに移動したい場合は、$config_directories変数を次のように更新する必要があります:
$config_directories[CONFIG_SYNC_DIRECTORY] = 'sites/default/sync';
ウェブルートの外にフォルダーを移動したい場合は、次のようなものを使用できます:
$config_directories[CONFIG_SYNC_DIRECTORY] = '../config/sync';
configディレクトリはwebrootと同じ親ディレクトリを持ち、syncディレクトリはconfigディレクトリ内に存在します。
これで完了です!設定管理UIまたはDrushベースのワークフローを使用すると、正しいディレクトリが使用されます。
Drupal 8.8.0での構文の変更
Drupal 8.8.0では、同期ディレクトリは$config_directoriesではなく$settingsで定義されるため、settings.phpファイルを更新する必要があります。
次のように変更するだけです:
$config_directories['sync'] = 'foo/bar';
を
$settings['config_sync_directory'] = 'foo/bar';