Drupal allows site administrators to perform an installation without ever making the settings.php file writable by the web server (provided that the file has been hand-edited to contain all information necessary for Drupal to work). This is useful on servers where making settings.php writable (even temporarily) is disallowed or undesired, or where settings.php needs to have additional customizations.
In Drupal 7, this could be entirely accomplished by adding valid database connection information to the $databases
array in settings.php.
In Drupal 8, it is additionally required to define the $config_directory_name
variable in settings.php to point to a location in the filesystem where configuration files can be stored. To mimic Drupal's default behavior of storing these files in a subdirectory of the public files path, you can use $config_directory_name = 'config_[...]';
where [...] is a long, random string. Other options are also available; see sites/default/default.settings.php for more details.
If a config directory is not found in settings.php, the installer will require that settings.php be writeable before it can proceed, and it will define one for you.