环境配置文件布局解决方案

一般来说,我们有开发环境(DEV)、测试环境(TEST)、生产环境(PROD)。

怎样解决自动根据不同环境切换相应的配置文件的问题呢?

本文以PHP为例。

最简单的方法,是确保三种环境的服务器可以给出一模一样的设置给程序,如数据库地址、端口、数据库名、用户名密码等。但在资源紧缺的环境下可操作性不强。

首先,无论如何,建三个对应的配置文件是必须的。

如:

config.dev.php

config.test.php

config.prod.php/config.php

然后,便是自动切换的问题。

其实,正常情况下,这三者的运行环境可能都相同,无法简单的通过环境的不同进行区分。除非那种极客型的,如修改php代码,不同环境增加不同环境变量标示手动编译PHP,这样运行环境中就具备了区分标示,然后封装一个判断方法。同样在资源紧缺的情况下,可操作性不强。

剩下比较可行的,就是通过文件软连接的方式。*nix、Windows都有办法创建文件软连接,系统无论有几个配置文件,在运行时都只需要一个文件,所以在不造成相应程序大幅改动代码来实现切换的话,就是这种方案了:

config.dev.php

config.test.php

config.prod.php

然后手动在每种环境创建软连接config.php,指向对应的文件config.xxx.php。

实在像虚拟主机,就直接在服务器上把config.prod.php 改成 config.php

PS

还有一种在大型的应用中,异常复杂的无数资源需要调用的环境,会专门做一个资源管理与调度的系统,然后针对每种资源如mysql服务编号命名,然后在应用环境中,调用统一的sdk来获取配置资源。这种方式,其实还是要在资源比较充足的情况下,尤其测试环境与正式环境不能在一台机器上。这样,可以根据应用请求的ip来判断,那台是测试服务器,我就返回一个测试用的配置数据给它;这台是正式环境,就返回正式的配置。

时间: 2024-07-31 04:42:18

环境配置文件布局解决方案的相关文章

Bash环境配置文件

一.环境配置文件读取优先级 其中~/.bash_profile,~/.bash_login,~/.profile三个文件只有一个有效,查找优先级从左至右降低.bash会一直检查是否有~/.bashrc,一旦发现有就立即执行.在ubuntu 10.04中, /etc/profile存在,用户主目录下有.bashrc文件. 二.环境配置文件简介 1./etc/profile 由系统管理程序建立的一个全系统(sytstem-wide)的初始化文件,Shell提示符出现在屏幕上之前,该文件就被读取了.功

linux环境配置文件分类

Linux的环境配置文件分两大类,一类是针对所有用户,一类是针对当前用户.(以下均以ubuntu为例,其他发行版大同小异) 针对所有用户的: /etc/profile--用户登录时会被执行,需要重新加载才能生效. /etc/bash.bashrc--用户打开bash shell时执行,重新开一个shell即可生效. 同理,针对单个用户的: ~/.profile--用户登录时执行,需要重新加载才能生效. ~/.bashrc--用户打开bash shell时执行,重新开一个shell即可生效. 在配

前端开发工程师 - 04.页面架构 - CSS Reset & 布局解决方案 & 响应式 & 页面优化 &规范与模块化

04.页面架构 第1章--CSS Reset 第2章--布局解决方案 居中布局 多列布局 全屏布局 第3章--响应式 浏览网页使用的设备屏幕大小迥异,如何保证页面在不同设备上都正常显示呢? --  解决方法:响应式 优点:无需为不同设备编写对应的页面 --> 降低开发成本.维护成本 缺点:页面中某些部分在某些设备上会被隐藏(资源加载了,但是只是用CSS隐藏了) 为什么在手机端的页面会很小呢? 所有的移动端的页面都引入了viewport视窗 刚开始所有的元素都是加载到一个比较大的viewport视

spring boot项目application.properties多环境配置文件、jar包外部配置文件

一.简介 spring boot项目application.properties文件存放及使用介绍 二.方法一多环境配置文件 我们一般都会有多个应用环境,开发环境.测试环境.生产环境,各个环境的配置会略有不同,我可以根据这个创建多份配置文件,由主配置文件来控制读取那个子配置 创建spring boot项目后可以同时创建多个.properties文件,只要符合它要求的格式即可 格式:application-{profile}.properties:{profile}是变量用于自定义配置文件名称 分

spring-boot多环境配置文件

spring-boot多环境配置文件 目录 配置 多环境配置文件名称要遵循格式 application-{profile}.yml application.yml spring: profiles: active: prod application-dev.yml server: port: 8000 application-prod.yml server: port: 8001 运行 mvn install 将项目打包后 通过如下命令来执行不同环境的配置 java -jar test-0.0.

css布局1:左右宽度固定中间自适应html布局解决方案(同一侧宽度固定,另一侧自适应)

https://www.jb51.net/web/639884.html 本文介绍了详解左右宽度固定中间自适应html布局解决方案,分享给大家,具体如下: a.使用浮动布局 html结构如下(为什么中间的网格宽度显示的和实际的不一样?怎么造成的;解决方法就是让中间的非浮动元素可以看到两边的浮动元素,例如为.center加overflow:hidden) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <div class="box&quo

SpringBoot环境配置文件

SpringBoot环境配置文件 Spring Boot可针对不同的环境提供不同的Profile文件. Profile文件的默认命名格式为application-{env}.yml 使用spring.profiles.active选项来指定不同的profile 学习视频: http://www.itlaoqi.com/chapter/1685.html 源码地址: QQ群 814077650 , 群共享中自助下载 老齐的官网: itlaoqi.com (更多干货就在其中) application

移动端布局解决方案+神器

godcss 移动端布局终极解决方案+神器--- 让移动端布局开发更加容易 http:/www.github.com/godcss/ 介绍 godcss不是一个库,也不是一个框架.它是一个移动端布局开发解决方案.使用godcss可以让移动端布局开发更容易. 使用动态的HTML根字体大小和动态的viewport scale. 遵循视觉一致性原则.在不同大小的屏幕和不同的设备像素密度下,让你的页面看起来是一样的. 不仅便捷了你的布局,同时它使用起来异常简单.可能你会说 talk is cheap,s

mac系统nginx+php7.2+mysql环境配置错误解决方案

Tip:本文并非是配置的流程指导文件,只是错误解决方案的提示及建议 1.mac自带apache.php环境,需要先关闭,php默认相关环境(包含原来的php-fpm相关文件都清理掉,默认目录:/private/etc/php-fpm.conf)最好删除掉(可自行google下) 2.建议通过brew安装管理nginx,默认网站根目录: /usr/local/var/www brew install nginx 配置nginx解析php(注意这里我设置的是9090端口,因为自己的9000端口冲突了