web开发如何配置多环境
2015-09-10 09:40
197 查看
在web应用程序开发过程中,常常会牵扯到开发环境这个话题,通常来说,至少存在两个开发环境:生产环境和测试环境。
问题在于,在不同的开发环境下,需要用到不同的设置(如数据库连接等),那么问题来了:如何让程序自动识别所处的开发环境是哪个开发环境呢?
1、配置多个入口文件(symfony框架的做法)
目前几乎所有的web应用程序都实现了单一入口,比如你的单一入口是index.php,部分代码如下:
接下来你可以再建立一个单一入口文件index_dev.php,
2、在入口文件根据不同服务器的ip地址、域名等判断设定环境
如上所述,除了新建入口文件的方式,我们也可以在入口文件的代码里做文章,根据ip来自动设定开发环境:
在apache或nginx服务器的配置文件中我们可以设定一些环境变量,然后通过php的getenv方法或者 $_SERVER获取,就可以知道目前所处的开发环境了。
问题在于,在不同的开发环境下,需要用到不同的设置(如数据库连接等),那么问题来了:如何让程序自动识别所处的开发环境是哪个开发环境呢?
1、配置多个入口文件(symfony框架的做法)
目前几乎所有的web应用程序都实现了单一入口,比如你的单一入口是index.php,部分代码如下:
define('ENVIRONMENT', 'pro');
接下来你可以再建立一个单一入口文件index_dev.php,
define('ENVIRONMENT', 'dev');然后在各自的开发环境服务器做好配置,测试服务器的请求都交由index_dev.php去处理,生产服务器上的请求都交由index.php去处理。
2、在入口文件根据不同服务器的ip地址、域名等判断设定环境
如上所述,除了新建入口文件的方式,我们也可以在入口文件的代码里做文章,根据ip来自动设定开发环境:
if(ip2long("your production ip") == "×××"){ define('ENVIRONMENT', 'pro'); }elseif(ip2long("your development ip") == "×××"){ define('ENVIRONMENT', 'dev'); }根据域名来设置也类似,这里就不在赘述,还有一种比较特别的方式,这里特别提一下。
在apache或nginx服务器的配置文件中我们可以设定一些环境变量,然后通过php的getenv方法或者 $_SERVER获取,就可以知道目前所处的开发环境了。
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
相关文章推荐
- git支持中文
- asp.net get App_Data 目录几种方法 path
- Visual Studio C# 修改后的程序发布
- 网络通信中关于请求数据、断点续传和写入本地文件
- Tiny实例:TINY框架官网制作过程详解
- 与2015苹果秋季新品发布会同步,传智播客iOS课程全面升级
- 学习网站
- 基于业务单元的开发与部署模式
- 一种基于主客体模型的权限管理框架
- Tiny之7*24集群服务方案
- MDA模型定义及扩展
- 基于实体模型开发主题管理简析
- JS合并的必要性分析
- 主题切换及其管理
- Tiny模板引擎之工具介绍
- Tiny VS 其它开源产品
- 快速搭建Tiny开发项目
- 使用TinySpider实战抓取自己博客中的内容
- Tiny代码生成框架
- 对TinyTemplate进行性能优化过程简介