【问题标题】:Need to deploy the same Codeigniter Code in different Domains but with different Databases需要在不同的域中部署相同的 Codeigniter 代码,但使用不同的数据库
【发布时间】:2019-09-19 08:31:06
【问题描述】:

我在 Codeigniter 中有一个 Web 应用程序。现在我想使用相同的代码并部署在 100 多个不同的域上。

所以我正在寻找一种解决方案,我可以使用相同的代码(存储在主机上的某处)并将其与多个数据库连接,以便每个新 DOMAIN 将拥有自己的数据库但共享相同的代码。

我需要这个的原因:在代码中完成的任何更新都将应用于具有自己数据库的所有域。

【问题讨论】:

  • 这听起来像是一个简单的配置解决方案。只需像往常一样定义您的数据库配置,所有站点数据库都指向特定的 sql 服务器。然后每个“域”只有不同的数据库名称。您显然需要为每个域使用不同的数据库配置文件,或者从另一个配置文件中提取动态数据库名称变量。
  • codeigniter 使用 oophp .. 这意味着您可以使用任何 php .. 您可以在配置文件中使用 $_SERVER .. 因此为数据库中的所有默认或多个数据库添加条件.php 文件..

标签: mysql codeigniter


【解决方案1】:

您必须对 application/config 下的 config.phpdatabase.php 进行一些小改动。

在 config.php 中

$protocol = isset($_SERVER["HTTPS"]) ? 'https://' : 'http://';
$config['base_url'] =$protocol.$_SERVER['HTTP_HOST']."/";

在database.php中

将所有数据库连接放在条件语句中

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';
}

除此之外,所有参数将保持不变。

【讨论】:

  • 谢谢亲爱的,看来这个解决方案对我来说效果很好。只是再问一件事。只是想再问一件事。如何重定向 www.abc.domain.com 以从 www.main.domain.com 加载代码。 (与 www.abc.domain.com 的 URL 相同)
  • 您可以将您的域停放在一台服务器上。我不是很清楚,但你可以点击链接 - blog.cpanel.com/…
【解决方案2】:

将您的代码推送到 Github,将 application/config/config.php 和 application/config/database.php 添加到 .gitignore 并在服务器上使用 git 版本控制。

如果您对代码进行更改,您可以在本地主机上执行此操作,推送到 git,然后使用 git 版本控制从服务器拉取。 (不要从服务器手动更新代码,防止git冲突)

【讨论】:

    猜你喜欢
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 2013-03-09
    • 2020-12-15
    • 2021-04-18
    相关资源
    最近更新 更多