Wijzigen van de configuratiesynchronisatiemap
Standaard plaatst Drupal de map voor configuratiesynchronisatie in de bestandsmap van de site, waarbij een hash wordt gebruikt als onderdeel van de mapnaam, dus sites/default/files/config_HASH.
HASH is een vrij lange reeks willekeurige tekens. Dit maakt het moeilijker (maar niet onmogelijk) om via het internet toegang te krijgen tot de configuratie. De locatie van de synchronisatiemap kan na installatie worden gewijzigd.
Op live websites, en als je account de juiste rechten heeft, wordt aanbevolen de configuratiesynchronisatiemap volledig buiten de webroot te plaatsen. Omdat je synchronisatiemap onder versiebeheer moet staan, betekent dit dat de hoofdmap van je versiebeheersysteem één niveau hoger moet liggen dan de webroot van je site.
Op lokale ontwikkelomgevingen wil je mogelijk eenvoudiger toegang tot configuratiebestanden hebben en de map verplaatsen naar iets als sites/default/sync.
Om de map te verplaatsen, open je je bestand settings.php
. Aan het einde van het bestand schrijft het Drupal-installatieproces een regel die de locatie van de synchronisatiemap in sites/default/files/config_HASH
aangeeft.
Het ontbreken van de synchronisatiemap kan leiden tot het volgende foutbericht in de PHP-logboeken:
Uncaught PHP Exception Exception: "The configuration directory type 'sync' does not exist"
Als je deze map wilt verplaatsen, bijvoorbeeld naar sites/default/sync
, moet je de variabele $config_directories als volgt bijwerken:
$config_directories[CONFIG_SYNC_DIRECTORY] = 'sites/default/sync';
Als je de map buiten de webroot wilt verplaatsen, kun je iets gebruiken als:
$config_directories[CONFIG_SYNC_DIRECTORY] = '../config/sync';
waarbij de map config
dezelfde bovenliggende map heeft als je webroot, en de map sync
zich binnen de map config
bevindt.
Dat is alles! Nu, wanneer je de configuratiebeheerinterface of de Drush-gebaseerde workflow gebruikt, wordt de juiste map toegepast.
Syntaxiswijzigingen in Drupal 8.8.0
In Drupal 8.8.0 is de synchronisatiemap gedefinieerd in $settings
in plaats van in $config_directories
, dus het bestand settings.php
moet worden bijgewerkt.
Verander eenvoudig van:
$config_directories['sync'] = 'foo/bar';
naar
$settings['config_sync_directory'] = 'foo/bar';