Não use o mesmo arquivo de configurações que você está sugerindo com seu pseudocódigo. Em vez disso, use três arquivos de configurações diferentes em três pastas diferentes, cada uma delas correspondendo ao nome de domínio de cada uma de suas instâncias.
No mínimo, geralmente cada ambiente usará um host de banco de dados separado. Outras configurações que podem diferir de ambiente para ambiente podem incluir o host do Apache Solr, configurações do cache de memórias, pasta temporária e pasta de arquivos, entre outras. Você pode colocar todos lá. Quando você migra seu banco de dados do PROD para o TEST para o DEV, ele seleciona automaticamente as configurações especificadas.
Imagine que meu site se chama myfoobarsite.com. É assim que minha estrutura de configurações se pareceria:
/htdocs
../sites
..../default
....../default.settings.php
..../dev.myfoobarsite.com (DEV)
....../settings.php
..../qa.myfoobarsite.com (TEST)
....../settings.php
..../myfoobarsite.com (PROD)
....../settings.php
Geralmente, também tenho duas instâncias locais do site, uma com o instantâneo mais recente do banco de dados do PROD e outra em que mantenho todas as minhas alterações. Isso é muito útil ao trabalhar com Recursos, e permite testar seus recursos no banco de dados de produção (localmente) antes de confirmar. Aqui está a estrutura modificada:
/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
Quanto às instâncias locais, lembre-se de fazer as entradas apropriadas no /etc/hosts
arquivo e modificar as configurações do host do Apache.
Por precaução, também coloquei um trecho do settings.php para obter orientação:
<?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";
Por fim, se você estiver hospedando no Acquia, precisará acessar http://myfoobarsite.com/admin/config/system/acquia-agent
e clicar em "limpar chaves" toda vez que migrar o banco de dados. Isso fará com que o Drupal solte as chaves fornecidas com o banco de dados importado e escolha as especificadas no arquivo de configurações.
Você também pode usar módulos de ambiente, o que permite usar diferentes módulos por ambiente.
Instruções
Primeiro, você precisa ter seus sites de desenvolvimento / teste / produção configurados com seus próprios settings.php exclusivos (um padrão comum para isso é exigir settings.local.php de settings.php). Se você não possui esse tipo de configuração, não precisa deste módulo.
Para o estadiamento / dev, adicione algo assim a settings.php, assim que environment_modules estiver ativado, esses módulos também serão ativados.
Por exemplo
Você também pode usar um settings.php usando o seguinte exemplo:
fonte