You are here

README.txt in Instance settings 7.2

Same filename and directory in other branches
  1. 7 README.txt
-- SUMMARY --

Idea behind this module is to have settings for each instance of the site
separated, including multi-site setups. It allows to enable/disable modules
based on variables defined in settings.php file, also it allows to set
variables.

Settings can be applied on each page load or using drush command, based on
module settings.

All config is done through settings.php file.

For example we can have multi-site setup with different sites for different
languages (uk, fr, de). Each of the sites (uk, fr, de) can have instances like
LOCAL, DEVELOPMENT, STAGING, PRODUCTION, so we will have 12 instances with 12
different databases.

Following setup works well with Acquia hosting.

Example settings.php setup:

sites/uk directory:

* sites/uk/settings.php (not ignored by Git!)

// Set environment language.
$conf['instance_settings_language'] = 'uk';

// Required to connect to Acquia DB.
// Not included on other servers.
if (file_exists('/var/www/site-php')) {
  require('/var/www/site-php/YOUR-DB-ON-ACQUIA-settings.inc');
}

// Not included on Acquia servers.
// Put local environment specific settings here (Like DB settings).
// This is only settings file ignored by Git.
@include 'local.settings.php';

// Include environment specific setting files.
@include rtrim(DRUPAL_ROOT, '/') . '/sites/default/include.settings.inc';

* sites/uk/local.settings.php (the only settings file ignored by Git!)
// Set environment.
$conf['instance_settings_environment'] = 'dev';

// Database setup
$databases = array(....)

* /sites/default/include.settings.inc

// Provide environment for Acquia servers.
if (file_exists('/var/www/site-scripts/site-info.php')) {
  require_once '/var/www/site-scripts/site-info.php';
  list($bah_site_name, $bah_site_group, $bah_site_stage, $secret) =
    ah_site_info();

  $conf['instance_settings_environment'] = $bah_site_stage;
}

$settings_dir = rtrim(DRUPAL_ROOT, '/') . '/sites/default/';

// Config related to all sites goes here
@include $settings_dir . 'all.settings.inc';

// Instance (dev, staging prod) specific settings
@include $settings_dir . $conf['instance_settings_environment'] .
  '.settings.inc';

// Language (uk, de, fr) specific settings
@include $settings_dir . $conf['instance_settings_language'] . '.settings.inc';

// Language AND language specific settings (dev.uk.settings.php)
@include $settings_dir . $conf['instance_settings_environment'] . '.' .
  $conf['instance_settings_language'] . '.settings.inc';

* sites/default/all.settings.inc

// Default setting, overridden later if needed.
$update_free_access = FALSE;

// Configuring module pools (useful to enable features depending on instance).
// Only one module can be active in each pool.
$conf['instance_settings_module_pools'] = array(
  // This is a pool, only one of the following modules can be enabled.
  'environment' => array( // Pool name
    'feature_environment_local', // Example feature or module here
    'feature_environment_dev', // Example feature or module here
    'feature_environment_stage', // Example feature or module here
    'feature_environment_prod', // Example feature or module here
  ),

  // This is a pool, only one of the following modules can be enabled.
  'language' => array( // Pool name
    'feature_language_uk', // Example feature or module here
    'feature_language_fr', // Example feature or module here
    'feature_language_de', // Example feature or module here
  ),
);


* sites/default/dev.settings.inc

// Allow anyone to run update.php.
$update_free_access = FALSE;

ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

// Define variables.
$conf['instance_settings_variables']['preprocess_css'] = 0;
$conf['instance_settings_variables']['preprocess_js'] = 0;
$conf['instance_settings_variables']['cache'] = 1;
$conf['instance_settings_variables']['block_cache'] = 1;
$conf['instance_settings_variables']['expire_include_base_url'] = 0;
$conf['instance_settings_variables']['page_cache_maximum_age'] = 21600;

$conf['instance_settings_enable_modules'] = array(
  'feature_environment_dev', // Feature module only enabled on dev instance
  'shield',
  'bean_admin_ui',
  'dblog',
  'devel',
  'diff',
  'field_ui',
  'views_ui',
  'acquia_agent',
  'acquia_purge',
  'acquia_spi',
  'search_api_acquia',
);

-- REQUIREMENTS --

None.


-- INSTALLATION --

* Install as usual.

-- CONFIGURATION --

* For configuration go into admin/config/system/instance-settings page

* Configure user permissions in Administration » People » Permissions:

  - Administer instance settings module

    Configure who can administer this module.

File

README.txt
View source
  1. -- SUMMARY --
  2. Idea behind this module is to have settings for each instance of the site
  3. separated, including multi-site setups. It allows to enable/disable modules
  4. based on variables defined in settings.php file, also it allows to set
  5. variables.
  6. Settings can be applied on each page load or using drush command, based on
  7. module settings.
  8. All config is done through settings.php file.
  9. For example we can have multi-site setup with different sites for different
  10. languages (uk, fr, de). Each of the sites (uk, fr, de) can have instances like
  11. LOCAL, DEVELOPMENT, STAGING, PRODUCTION, so we will have 12 instances with 12
  12. different databases.
  13. Following setup works well with Acquia hosting.
  14. Example settings.php setup:
  15. sites/uk directory:
  16. * sites/uk/settings.php (not ignored by Git!)
  17. // Set environment language.
  18. $conf['instance_settings_language'] = 'uk';
  19. // Required to connect to Acquia DB.
  20. // Not included on other servers.
  21. if (file_exists('/var/www/site-php')) {
  22. require('/var/www/site-php/YOUR-DB-ON-ACQUIA-settings.inc');
  23. }
  24. // Not included on Acquia servers.
  25. // Put local environment specific settings here (Like DB settings).
  26. // This is only settings file ignored by Git.
  27. @include 'local.settings.php';
  28. // Include environment specific setting files.
  29. @include rtrim(DRUPAL_ROOT, '/') . '/sites/default/include.settings.inc';
  30. * sites/uk/local.settings.php (the only settings file ignored by Git!)
  31. // Set environment.
  32. $conf['instance_settings_environment'] = 'dev';
  33. // Database setup
  34. $databases = array(....)
  35. * /sites/default/include.settings.inc
  36. // Provide environment for Acquia servers.
  37. if (file_exists('/var/www/site-scripts/site-info.php')) {
  38. require_once '/var/www/site-scripts/site-info.php';
  39. list($bah_site_name, $bah_site_group, $bah_site_stage, $secret) =
  40. ah_site_info();
  41. $conf['instance_settings_environment'] = $bah_site_stage;
  42. }
  43. $settings_dir = rtrim(DRUPAL_ROOT, '/') . '/sites/default/';
  44. // Config related to all sites goes here
  45. @include $settings_dir . 'all.settings.inc';
  46. // Instance (dev, staging prod) specific settings
  47. @include $settings_dir . $conf['instance_settings_environment'] .
  48. '.settings.inc';
  49. // Language (uk, de, fr) specific settings
  50. @include $settings_dir . $conf['instance_settings_language'] . '.settings.inc';
  51. // Language AND language specific settings (dev.uk.settings.php)
  52. @include $settings_dir . $conf['instance_settings_environment'] . '.' .
  53. $conf['instance_settings_language'] . '.settings.inc';
  54. * sites/default/all.settings.inc
  55. // Default setting, overridden later if needed.
  56. $update_free_access = FALSE;
  57. // Configuring module pools (useful to enable features depending on instance).
  58. // Only one module can be active in each pool.
  59. $conf['instance_settings_module_pools'] = array(
  60. // This is a pool, only one of the following modules can be enabled.
  61. 'environment' => array( // Pool name
  62. 'feature_environment_local', // Example feature or module here
  63. 'feature_environment_dev', // Example feature or module here
  64. 'feature_environment_stage', // Example feature or module here
  65. 'feature_environment_prod', // Example feature or module here
  66. ),
  67. // This is a pool, only one of the following modules can be enabled.
  68. 'language' => array( // Pool name
  69. 'feature_language_uk', // Example feature or module here
  70. 'feature_language_fr', // Example feature or module here
  71. 'feature_language_de', // Example feature or module here
  72. ),
  73. );
  74. * sites/default/dev.settings.inc
  75. // Allow anyone to run update.php.
  76. $update_free_access = FALSE;
  77. ini_set('display_errors', TRUE);
  78. ini_set('display_startup_errors', TRUE);
  79. // Define variables.
  80. $conf['instance_settings_variables']['preprocess_css'] = 0;
  81. $conf['instance_settings_variables']['preprocess_js'] = 0;
  82. $conf['instance_settings_variables']['cache'] = 1;
  83. $conf['instance_settings_variables']['block_cache'] = 1;
  84. $conf['instance_settings_variables']['expire_include_base_url'] = 0;
  85. $conf['instance_settings_variables']['page_cache_maximum_age'] = 21600;
  86. $conf['instance_settings_enable_modules'] = array(
  87. 'feature_environment_dev', // Feature module only enabled on dev instance
  88. 'shield',
  89. 'bean_admin_ui',
  90. 'dblog',
  91. 'devel',
  92. 'diff',
  93. 'field_ui',
  94. 'views_ui',
  95. 'acquia_agent',
  96. 'acquia_purge',
  97. 'acquia_spi',
  98. 'search_api_acquia',
  99. );
  100. -- REQUIREMENTS --
  101. None.
  102. -- INSTALLATION --
  103. * Install as usual.
  104. -- CONFIGURATION --
  105. * For configuration go into admin/config/system/instance-settings page
  106. * Configure user permissions in Administration » People » Permissions:
  107. - Administer instance settings module
  108. Configure who can administer this module.