On my local Drupal 8 multisite environment in sites/default/settings.php I have:

$config_directories['staging'] = 'sites/default/config/staging';
$config_directories = array();

Because the default direction for the configuration files sites/default/files is .gitignored.

Is above correct, or do I have to delete $config_directories = array(); and put only the first line? How do I have to setup $config_directories properly so I can version my Configuration with Git?

Is $config_directories the same in both settings.php for the local site and production environment. In other words; is settings.php the same for the local site and production environment, except the database information?

Acquia Dev Desktop also gives:

$config_directories['sync'] = 'sites/griffioenrotterdam-dev.dd/files/config_CBOBWbcJU487p7Gc5z5e4GPzL6pSuEKQytsN6heKUULhL8ziYY7DUJoAbHI-dUxnFEfpzk0W7Q/sync'

What about that?

My steps to set this all up where:

  • I set up a local Drupal 8 multisite environment using Acquia Dev Desktop. All worked fine.
  • I have a Git workflow setup
  • Now I try to make instances of my local site (clone) for Dev and Prod environments
  • With git I pull the Drupal 8 code to my production server
  • I adjust settings.php in sites/default/settings.php
  • I dumped my local Database using drush
  • I import the Database in Database connected to staging (Dev) environment

But when I visit http://staging.griffioenrotterdam.nl/ it doesn’t look good.

--- Update ---

$config_directories['staging'] = 'sites/default/config/staging';

Is from an old Drupal 8 version.

Now you have to use:

$config_directories = array(
    CONFIG_SYNC_DIRECTORY => './../config/sync',
);

But when I go in admin to Reports > Status report > it says:

The ./../config/sync folder does not exist. You may need to set the correct directory at the file system settings page or change the current directory's permissions so that it is writable.

I don't know what you try to do with the config directories.

This doesn't make sense at all, setting a value and deleting it:

$config_directories['staging'] = 'sites/default/config/staging';
$config_directories = array();

The config directory staging does not exists anymore, it must be from an old drupal 8 version. You only need sync. This can be any directory. The hash is only for security reasons and is not needed outside the public files directory.

And I don't see anything in your workflow that would need a special configuration of the config directory, because you transfer the config in the database.

  • Rolled back the latest edit. Please do not change the topic of the question. You can delete it completly if you want. – 4k4 Apr 14 '16 at 11:24
  • so I have a multisite setup. Now for my first site I have in settings.php: $config_directories = array( CONFIG_SYNC_DIRECTORY => '../config/sync', ); But I still get that error in status report? – meez Apr 16 '16 at 19:16
  • The error message says, that ../config/syncdoes not exist. This is relative to the root of drupal, not to settings.php. If for example you have installed drupal in /var/www/drupal/, ../config/ is /var/www/config/. You have to create /syncinside this directory outside of drupal and make it writable. – 4k4 Apr 17 '16 at 7:45

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.