CI多环境
你可以根据当前的环境来加载不同的配置文件,index.php 文件中定义了 ENVIRONMENT常量, 中有更详细的介绍。
要创建特定环境的配置文件,新建或复制一个配置文件到 application/config/{ENVIRONMENT}/{FILENAME}.php 。
例如,要新建一个生产环境的配置文件,你可以:
- 新建目录 application/config/production/
- 将已有的 config.php 文件拷贝到该目录
- 编辑 application/config/production/config.php 文件,使用生产环境下配置
当你将 ENVIRONMENT 常量设置为 'production' 时,你新建的生产环境下的 config.php里的配置将会加载。
你可以放置以下配置文件到特定环境的目录下:
- 默认的 CodeIgniter 配置文件
- 你自己的配置文件
处理多环境
开发者常常希望当系统运行在开发环境或生产环境中时能有不同的行为,例如,在开发环境如果程序能输出详细的错误信息将非常有用,但是在生产环境这将造成一些安全问题。
ENVIRONMENT 常量
CodeIgniter 默认使用 $_SERVER['CI_ENV'] 的值作为 ENVIRONMENT 常量,如果 $_SERVER['CI_ENV'] 的值没有设置,则设置为 'development'。在 index.php文件的顶部,你可以看到:
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
$_SERVER['CI_ENV'] 的值可以在 .htaccess 文件或 Apache 的配置文件中使用 SetEnv命令进行设置,Nginx 或其他 Web 服务器也有类似的设置方法。或者你可以直接删掉这个逻辑,根据服务器的 IP 地址来设置该常量。
使用这个常量,除了会影响到一些基本的框架行为外(见下一节),你还可以在开发过程中使用它来区分当前运行的是什么环境。