6

我试图了解使用多种环境的最佳行动方案,例如使用 codeigniter 为我的应用程序开发、测试、生产。

截至目前,我的应用程序只有一个文件夹。我看到在配置文件中讨论的地方为每个环境创建一个文件夹,并在每个环境文件夹中放置例如数据库文件的副本。

这是处理多个环境的最佳方法吗?我问的原因是因为如果我在我的开发子域上工作,我仍然必须将所有相同的文件重新上传到主根文件夹。这是最好的工作流程吗?

所以基本上我有两个网站。

dev.siteurl.com

我试图找出处理这个问题的最佳选择。因为我想知道是否只需将所有文件重新上传到主级别,以便它可以处理生产服务器,或者有更简单的方法。

4

3 回答 3

10

是的,它的工作方式是在您的 /application/config 文件夹下创建一个名为 development 的额外嵌套文件夹,以便您拥有

/应用程序/配置/开发/

在开发内部,您将放置一个 database.php 文件的副本并更改您的开发数据库设置

/application/config/development/database.php

那么你必须告诉codeigniter你在哪个版本,所以在你的基础根文件夹中编辑index.php:

/index.php

define('ENVIRONMENT', 'development');

当您想使用 /config/development/database.php 时,您将环境更改为开发,当您想使用生产数据库时,您将环境更改为生产

编辑:CI TOC 也有一个简短的部分解释这一点:https ://www.codeigniter.com/user_guide/general/environments.html

于 2013-03-10T23:15:47.220 回答
7

我在 index.php 中定义环境
做类似的事情

if ($_SERVER['SERVER_NAME']=='siteurl.com')
   define('ENVIRONMENT', 'production');
else if ($_SERVER['SERVER_NAME']=='test.siteurl.com')
   define('ENVIRONMENT', 'testing');
else
   define('ENVIRONMENT', 'development');

并根据 ENVIRONMENT 变量使用配置部分

于 2013-03-11T12:13:47.383 回答
3

我知道这是一个旧线程,但我现在正在开发一个 Codeigniter 项目,并且正在寻找一种维护两个环境的好方法,而不必在两个不同的 url 上维护两个代码库。如果其他人正在寻找类似的答案,这里有一个可能的解决方案,允许您维护一个代码库。

对于我当前的项目,我有 siteurl.com 和 siteurl.com/sandbox。

siteurl.com/index.php

define('ENVIRONMENT', 'production');
$system_path = '../system';
$application_folder = '../application';

siteurl.com/sandbox/index.php

define('ENVIRONMENT', 'development');
$system_path = '../../system';
$application_folder = '../../application';
于 2014-11-12T17:08:27.067 回答