Mysql 需要在不同的域中部署相同的Codeigniter代码,但使用不同的数据库
我在Codeigniter中有一个web应用程序。现在我想使用相同的代码并部署在100多个不同的域上 因此,我正在寻找一个解决方案,在这个解决方案中,我可以使用相同的代码(存储在主机上的某个地方)并将其与多个DB连接,这样每个新域都将有自己的数据库,但共享相同的代码Mysql 需要在不同的域中部署相同的Codeigniter代码,但使用不同的数据库,mysql,codeigniter,Mysql,Codeigniter,我在Codeigniter中有一个web应用程序。现在我想使用相同的代码并部署在100多个不同的域上 因此,我正在寻找一个解决方案,在这个解决方案中,我可以使用相同的代码(存储在主机上的某个地方)并将其与多个DB连接,这样每个新域都将有自己的数据库,但共享相同的代码 我需要它的原因:代码中所做的任何更新都将应用于所有拥有自己数据库的域。您必须在application/config下的config.php和database.php中进行一些小的更改 在config.php中 $protocol =
我需要它的原因:代码中所做的任何更新都将应用于所有拥有自己数据库的域。您必须在application/config下的
config.php
和database.php
中进行一些小的更改
在config.php中
$protocol = isset($_SERVER["HTTPS"]) ? 'https://' : 'http://';
$config['base_url'] =$protocol.$_SERVER['HTTP_HOST']."/";
在database.php中
$protocol = isset($_SERVER["HTTPS"]) ? 'https://' : 'http://';
$config['base_url'] =$protocol.$_SERVER['HTTP_HOST']."/";
将所有数据库连接放入条件语句中
if ($_SERVER['HTTP_HOST'] == 'server1.com')
{
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'database1';
}
//for development server
else if ($_SERVER['HTTP_HOST'] == 'server2.com') {
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'database2';
}
除此之外,所有参数将保持不变。将代码推送到Github,将application/config/config.php&application/config/database.php添加到.gitignore,并在服务器上使用git版本控制
如果您在代码中进行了更改,您可以在本地主机上进行更改,推送到git,然后使用git版本控制从服务器中拉取。(不要从服务器手动更新代码以防止git冲突)这听起来像是一个简单的配置解决方案。只需像通常一样定义数据库配置,所有站点数据库都指向特定的sql server。然后每个“域”有不同的数据库名称。显然,每个域都需要一个不同的数据库配置文件,或者从另一个配置文件中引入一个动态数据库名称变量。codeigniter使用的是oophp。。这意味着你可以使用任何php。。您可以在配置文件中使用$\u服务器。。因此,在database.php文件中为所有默认或多个db添加条件..亲爱的,谢谢,这个解决方案对我来说似乎非常好。再问一件事。我只想再问一件事。如何重定向www.abc.domain.com以从www.main.domain.com加载代码。(使用与www.abc.domain.com相同的URL)您可以将域停放在一台服务器上。我不是很清楚,但你可以按照链接-