具有codeigniter的多个环境

时间:2013-03-10 23:09:43

标签: codeigniter

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

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

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

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

dev.siteurl.com siteurl.com

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

3 个答案:

答案 0 :(得分:8)

是的,它的工作方式是在你的/ 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

答案 1 :(得分: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');

并根据环境变量使用配置部分

答案 2 :(得分: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';