diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc index d75ed9f..82883d6 100644 --- a/core/includes/install.core.inc +++ b/core/includes/install.core.inc @@ -369,7 +369,7 @@ function install_begin_request($class_loader, &$install_state) { $install_state['config_verified'] = FALSE; } $install_state['database_verified'] = install_verify_database_settings($site_path); - $install_state['settings_verified'] = $install_state['config_verified'] && $install_state['database_verified']; + $install_state['settings_verified'] = $install_state['database_verified']; // Install factory tables only after checking the database. if ($install_state['database_verified'] && $install_state['database_ready']) { diff --git a/core/modules/system/src/Tests/Installer/InstallerConfigDirectorySetNoDirectoryTest.php b/core/modules/system/src/Tests/Installer/InstallerConfigDirectorySetNoDirectoryTest.php new file mode 100644 index 0000000..8ee9d02 --- /dev/null +++ b/core/modules/system/src/Tests/Installer/InstallerConfigDirectorySetNoDirectoryTest.php @@ -0,0 +1,43 @@ +syncDirectory = $this->publicFilesDirectory . '/config_' . Crypt::randomBytesBase64() . '/sync'; + $this->settings['config_directories'][CONFIG_SYNC_DIRECTORY] = (object) array( + 'value' => $this->syncDirectory, + 'required' => TRUE, + ); + parent::setUp(); + } + + /** + * Verifies that installation succeeded. + */ + public function testInstaller() { + $this->assertUrl('user/1'); + $this->assertResponse(200); + $this->assertTrue(file_exists($this->syncDirectory) && is_dir($this->syncDirectory)); + } + +} diff --git a/core/modules/system/system.install b/core/modules/system/system.install index c1b9292..0f77502 100644 --- a/core/modules/system/system.install +++ b/core/modules/system/system.install @@ -551,6 +551,10 @@ function system_requirements($phase) { if (!empty($GLOBALS['config_directories'])) { foreach (array_keys(array_filter($GLOBALS['config_directories'])) as $type) { $directory = config_get_config_directory($type); + // If we're installing Drupal try and create the config sync directory. + if (!is_dir($directory) && $phase == 'install') { + file_prepare_directory($directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS); + } if (!is_dir($directory)) { $requirements['config directory ' . $type] = array( 'title' => t('Configuration directory: %type', ['%type' => $type]),