Verwenden Sie nicht dieselbe Einstellungsdatei, die Sie mit Ihrem Pseudocode vorschlagen. Verwenden Sie stattdessen drei verschiedene Einstellungsdateien in drei verschiedenen Ordnern, wobei jeder Ordner dem Domänennamen jeder Ihrer Instanzen entspricht.
In der Regel wird in jeder Umgebung ein separater Datenbankhost verwendet. Andere Einstellungen, die von Umgebung zu Umgebung unterschiedlich sein können, können der Apache Solr-Host, zwischengespeicherte Einstellungen, der temporäre Ordner und der Dateiordner sein, um nur einige zu nennen. Sie können alle dort platzieren. Wenn Sie Ihre Datenbank von PROD zu TEST zu DEV migrieren, werden die von Ihnen angegebenen Einstellungen automatisch übernommen.
Stellen Sie sich vor, meine Website heißt myfoobarsite.com. So würde meine Einstellungsstruktur aussehen:
/htdocs
../sites
..../default
....../default.settings.php
..../dev.myfoobarsite.com (DEV)
....../settings.php
..../qa.myfoobarsite.com (TEST)
....../settings.php
..../myfoobarsite.com (PROD)
....../settings.php
Im Allgemeinen habe ich auch zwei lokale Instanzen der Site, eine mit dem neuesten Datenbank-Snapshot von PROD und eine andere, in der ich alle meine Änderungen behalte. Dies ist sehr nützlich, wenn Sie mit Features arbeiten, und ermöglicht es Ihnen, Ihre Features vor dem Festschreiben anhand der Produktionsdatenbank (lokal) zu testen. Hier ist die modifizierte Struktur:
/htdocs
../sites
..../default
..../dev.myfoobarsite.com (DEV)
..../qa.myfoobarsite.com (TEST)
..../myfoobarsite.com (PROD)
..../mfbs.local (LOCAL ONE)
....../settings.php
..../mfbs2.local (LOCAL TWO)
....../settings.php
Denken Sie bei Ihren lokalen Instanzen daran, die entsprechenden Einträge in der /etc/hosts
Datei vorzunehmen und die Apache-Hosteinstellungen zu ändern.
Für alle Fälle habe ich auch einen Ausschnitt aus der settings.php zur Orientierung platziert:
<?php
$databases['default']['default'] = array(
'database' => 'myfoobarsite',
'username' => 'foo',
'password' => 'bar',
'host' => '127.0.0.1',
'port' => '3306',
'driver' => 'mysql',
'prefix' => '',
);
/**
* Apache Solr settings.
* Use the acquia_identifier/acquia_key when hosting w/ Acquia.
* Specify only the apachesolr_path key for your local instance
* or instances that do not use Acquia.
*/
//$conf["acquia_identifier"] = "ABCD-12345";
//$conf["acquia_key"] = "1234f05ab12345dc1234a1234bbc1c12";
$conf["apachesolr_path"] = "http://localhost:8983/solr";
/**
* Filesystem settings (MAC OS X, LOCAL)
*/
$conf["file_public_path"] = "sites/default/files";
$conf["file_temporary_path"] = "/Users/amateurbarista/tmp";
$conf["file_private_path"] = "/Users/amateurbarista/Sites/tfk/private";
Wenn Sie mit Acquia hosten, müssen Sie bei http://myfoobarsite.com/admin/config/system/acquia-agent
jeder Migration der Datenbank auf "Schlüssel löschen" klicken. Dadurch löscht Drupal die Schlüssel, die mit der importierten Datenbank geliefert wurden, und nimmt die in der Einstellungsdatei angegebenen Schlüssel auf.
Sie können auch Umgebungsmodule verwenden, mit denen Sie verschiedene Module pro Umgebung verwenden können.
Anleitung
Zunächst müssen Ihre Entwicklungs- / Staging- / Produktionsstandorte mit einer eigenen eindeutigen settings.php eingerichtet sein (ein gängiges Muster hierfür ist, dass settings.local.php von settings.php benötigt wird). Wenn Sie diese Art der Einrichtung nicht haben, benötigen Sie dieses Modul nicht.
Fügen Sie für staging / dev so etwas zu settings.php hinzu. Sobald environment_modules aktiviert ist, werden auch diese Module aktiviert.
Z.B
Sie können auch eine settings.php verwenden, indem Sie das folgende Beispiel verwenden:
quelle