疑似コードで提案しているように、同じ設定ファイルを使用しないでください。代わりに、3つの異なるフォルダー内の3つの異なる設定ファイルを使用します。各フォルダーは、各インスタンスのドメイン名に対応しています。
少なくとも、通常、各環境は個別のデータベースホストを使用します。環境によって異なるその他の設定には、Apache Solrホスト、memcached設定、一時フォルダー、ファイルフォルダーなどがあります。それらすべてをそこに配置できます。データベースをPRODからTEST、DEVに移行すると、指定した設定が自動的に取得されます。
私のサイトの名前がmyfoobarsite.comだとします。これは私の設定構造がどのようになるかです:
/htdocs
../sites
..../default
....../default.settings.php
..../dev.myfoobarsite.com (DEV)
....../settings.php
..../qa.myfoobarsite.com (TEST)
....../settings.php
..../myfoobarsite.com (PROD)
....../settings.php
また、通常、サイトのローカルインスタンスが2つあります。1つはPRODからの最新のデータベーススナップショットで、もう1つはすべての変更を保存します。これは、機能を操作するときに非常に便利です。コミットする前に、機能を(ローカルで)本番データベースに対してテストできます。変更された構造は次のとおりです。
/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
ローカルインスタンスについては、/etc/hosts
ファイルに適切なエントリを作成し、Apacheホストの設定を変更することを忘れないでください。
念のため、settings.phpのスニペットもガイダンスとして配置しました。
<?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";
最後に、Acquiaでホスティングしている場合はhttp://myfoobarsite.com/admin/config/system/acquia-agent
、データベースを移行するたびに、「キーのクリア」に移動してクリックする必要があります。これにより、Drupalはインポートされたデータベースに付属するキーを削除し、設定ファイルで指定されたキーを取得します。