不要使用与伪代码建议相同的设置文件。而是在三个不同的文件夹中使用三个不同的设置文件,每个文件夹对应于每个实例的域名。
至少,通常每个环境都将使用单独的数据库主机。随环境而异的其他设置可能包括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
我通常也有该站点的两个本地实例,一个实例具有PROD的最新数据库快照,另一个实例则保留了所有更改。这在使用功能时非常有用,它允许您在提交之前针对生产数据库(本地)测试功能。这是修改后的结构:
/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删除导入的数据库附带的密钥,并选择设置文件中指定的密钥。