config.php 和 database.php 是普通的 PHP 文件,你可以在里面放任何代码!
一种方法是在index.php 文件中识别您所在的站点,并定义一个可在整个站点中使用的全局常量。
例如:
if ($_SERVER['SERVER_NAME' === 'my-domain-1') define('DOMAIN', 'domain-1');
elseif ($_SERVER['SERVER_NAME' === 'my-domain-2') define('DOMAIN', 'domain-2');
else die("Unknown domain");
然后,在您的config.php 中,您可以针对要根据站点更改的每个配置选项:
$config['encryption_key'] = (DOMAIN === 'domain-1') ? 'a-strong-encryption-key-1' :
(DOMAIN === 'domain-2') ? 'a-strong-encryption-key-2' :
'??';
对于database.php:
$active_group = (DOMAIN === 'domain-1') ? 'db-domain-1' :
(DOMAIN === 'domain-2') ? 'db-domain-2' :
'??';
$db['db-domain-1'] = array(
'dsn' => '',
'hostname' => 'domain-1-db-host',
'username' => 'root',
'password' => '',
'database' => 'domain-1-db',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => 'application/cache',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => TRUE,
'failover' => array(),
'save_queries' => TRUE
);
$db['db-domain-2'] = array(
'dsn' => '',
'hostname' => 'domain-2-db-host',
'username' => 'root',
'password' => '',
'database' => 'domain-2-db',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => 'application/cache',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => TRUE,
'failover' => array(),
'save_queries' => TRUE
);
这实际上是我用于开发和生产服务器的内容(使用 ENVIRONMENT 常量)。