codeigniter多环境配置切换核心是通过environment常量控制运行时身份,推荐用服务器环境变量(apache的setenv或nginx的fastcgi_param)设置,避免硬编码;配置可按环境条件判断或用子目录隔离,实现一套代码适配多环境。

CodeIgniter 多环境配置切换,核心在于控制 ENVIRONMENT 常量的值,并让框架据此加载对应配置。不是改代码逻辑,而是改“运行时身份”——它告诉框架:“你现在是在开发、测试,还是上线跑着”。
通过服务器环境变量设置(推荐)
这是最安全、最符合部署规范的方式,避免把敏感信息写死在代码里。
- Apache:在虚拟主机配置或
.htaccess中添加一行
SetEnv CI_ENV production
换成 development 就切回开发环境。
- Nginx:在 server 块中加入
fastcgi_param CI_ENV "production";
重启 Web 服务后生效,无需动 PHP 文件。
修改入口文件 index.php(仅限本地调试)
打开项目根目录下的 index.php,找到这行:
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
直接改成:
ArcGIS for Android SDK 目前最新版本为10.2.5 从此版本开始ESRI不在提供Eclipse的插件支持,官方的帮助也针对于Android Studio的支持;本文档主要讲述的内容是最新版本ArcGIS For Android Eclipse环境配置;感兴趣的朋友可以过来看看
define('ENVIRONMENT', 'production');
⚠️ 注意:生产环境严禁这么做,容易因误提交导致配置泄露或功能异常。
按环境加载不同配置项
不一定要建多个 config 目录,常用做法是在主配置文件里做判断:
- 数据库调试开关:
'db_debug' => (ENVIRONMENT !== 'production') - 错误显示:
ini_set('display_errors', ENVIRONMENT === 'development' ? 1 : 0) - 日志级别:
$config['log_threshold'] = (ENVIRONMENT === 'development') ? 4 : 2;
这样一套配置文件就能适配多个环境,维护成本更低。
使用子目录隔离配置(适合复杂项目)
在 application/config/ 下创建 development/、production/ 等文件夹,各自放 database.php、app.php 等。
框架会自动优先加载对应环境子目录里的同名配置文件,前提是你的 index.php 已正确设好 ENVIRONMENT。
例如:application/config/production/database.php 里只写正式库账号密码,开发环境根本看不到。










