php区分线上环境和测试环境
原文
一般我们在做开发的时候,程序都会运行在多个环境,起码会3个:开发环境、测试环境、生成环境
三种环境的配置信息是不一样的
数据库配置不一样、debug级别不一样、日志记录级别不一样、缓存不一样,等等。
但是我们用版本管理工具的时候,代码在三种环境下是一样的,所以,如何区分当前运行的是那个环境?
- 方案1. 是使用.env文件,这个文件不会托管到版本库,每个运行环境都是独立配置的
- 方案2. 准备多份配置文件,比如config.php、config-local.php,config.php托管在版本库,配个人都一样,config-local.php不托管在版本库,每个人独立配置,运行的时候config-local.php会覆盖config.php中的配置项,缺点是每次搭建环境都需要配置这个文件,比较繁琐。有些人会直接复制config.php为config-local.php,结果导致更改了config.php,其他开发人员不会生效。
- 方案3. 使用系统环境变量
1 Apache的环境变量设置
指令:SetEnv RUNTIME_ENVIROMENT DEV
配置格式:
ServerAdmin admin@admin.com
DocumentRoot "/var/www/"
ServerName localhost
SetEnv RUNTIME_ENVIROMENT DEV
ErrorLog "logs/error.log"
CustomLog "logs/access.log" common
2 设置Nginx环境变量
指令:fastcgi_param RUNTIME_ENVIROMENT 'DEV'
设置格式:
在fastcgi_params
文件中配置
fastcgi_param RUNTIME_ENVIROMENT 'DEV';
在nginx.conf中配置
server {listen 80;root /var/www;index index.php;server_name localhost;location /{index index.php;}location ~ .*\.(php|php5)?$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi_params; #需要在fastcgi_params文件中定义环境变量#或者#fastcgi_param RUNTIME_ENVIROMENT 'DEV';}
}
3 Linux系统下的设置方式
在/etc/environment
文件中添加环境变量
命令:vi /etc/environment
添加一行RUNTIME_ENVIROMENT=DEV
貌似只在命令行环境生效
4 windows下IIS设置环境变量
1.我的电脑-》右键(选择我的属性)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wqFuRMUh-1641470982142)(https://jums.club/images/article2/f3cbe59dbac54b68654fb358d87a2182.png)]
2.点击高级设置
3.点击环境变量
点击系统环境变量下面的新建按钮添加就可以了
可能需要重启电脑才能生效
使用方法
在PHP中有两个调用方式:
$env = getenv('RUNTIME_ENVIROMENT');
还有超全局变量方式:
$env = $_SERVER['RUNTIME_ENVIROMENT'];
然后根据获取到的环境变量设置就可以了:
defined('YII_ENV') or define('YII_ENV', $_SERVER['RUNTIME_ENVIROMENT'] ?? 'prod');
defined('YII_DEBUG') or define('YII_DEBUG', YII_ENV === 'dev' || YII_ENV === 'test');
Reference
- https://blog.csdn.net/weixin_30844865/article/details/115198811
写在最后
欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ko3OUho2-1641470982162)(https://jums.club/images/wechataccount.jpg)]
php区分线上环境和测试环境相关推荐
- 性能测试之线上引流测试--让性能测试更真实更丰富
为什么要做引流测试 目前为止大部分的测试是在测试环境下,通过模拟用户的行为来对系统进行验证,包括功能以及性能.在这个过程中,你可能会遇到以下问题: 用户访问行为比较复杂,模拟很难和用户行为一致,模拟不 ...
- springboot 常用配置之多环境配置(开发环境、测试环境、生产环境等)
在上一课中我们通过idea工具没有做任何配置就构建了一个springboot项目,并且已经成功启动了,但我们都很清楚这些都远远不能达到我们实际项目的需求,比如我们要引入我们自己的redis配置.mys ...
- Java的开发环境、测试环境、生产环境、UAT环境、仿真环境
文章目录 一.五种环境 1 开发环境(dev) 2 测试环境(test) 3 生产环境(prod) 4 UAT环境 5 仿真环境 二.测试阶段 重点了解--UT(单元测试,Unit Test) IT( ...
- 31 SpringBoot多环境的切换(生产环境、开发环境、测试环境)
参考链接: Spring官网 Spring官网 外部配置加载顺序的说明 SpringBoot多环境的切换(生产环境.开发环境.测试环境)_周太阳的博客-CSDN博客_springboot测试生产环境切 ...
- 软件的开发环境、测试环境(沙盒环境sandbox)、生产环境
沙盒环境又称测试环境和开发环境,是提供给开发者开发和测试用的环境.在该环境中应用功能没有任何限制,但是在该环境测试情况下将会产生正常资费. 测试环境,测试用(sandbox). Detux: The ...
- 测试开发工程师成长日记009 - 环境排排站:开发环境、测试环境、生产环境、UAT环境、仿真环境
一.五种环境 项目部署环境一般可分为三种:开发环境,测试环境.生产环境,对应过程为:开发->测试->上线: 细分生成环境又分为生产环境和仿真环境,具体概念如下: 而UAT环境指的是用户接受 ...
- vue在生产环境、测试环境和开发环境,三种环境下配置不同的api地址
vue在生产环境.测试环境和开发环境,三种环境下配置不同的api地址 我们大多数在开发的时候,都会有三种环境,一个是开发环境,一个是测试环境,一个是生产环境,我们打包的时候需要根据不同的环境去加载不同 ...
- sit是什么环境_测试环境是什么_搭建测试环境要遵循什么原则?
测试环境是什么? 测试进行软件测试的之前,需要搭建好测试环境.那什么是测试环境呢? 简单的说就是软件运行的平台,即软件.硬件和网络三种环境的合集,也就是说:测试环境=软件+硬件+网络 硬件:包括PC机 ...
- 什么是开发环境、测试环境、UAT环境、仿真环境、生产环境?
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/75 软件开发环境(Software Developme ...
最新文章
- iOS进阶之架构设计MVC(1)
- model.parameters(),model.state_dict(),model .load_state_dict()以及torch.load()
- 部署到ABAP服务器上的SAP UI5应用,其index.html的读取逻辑
- 安卓平板排行榜_shopee虾皮台湾安卓市场, shopee虾皮直播下载
- 数仓搬迁:从方法到实践,带你解决数据一致性对比
- 状态空间模型中实际参数估计
- 【Java】深入理解Java虚拟机的读书笔记
- ssis 角本组件更新数据_使用SSIS脚本组件作为数据源
- 在Linux上配置xampp后远程访问域名报错
- BZOJ2194: 快速傅立叶之二 (FFT)
- 006 与PHP无关的EXCEL分割字符串
- 南方cass快捷键命令修改在哪_南方cass快捷键命令
- 栈和队列的共同处和不同处
- HTPP的请求方式有哪些?
- 小红书种草模式有哪些?如何保证种草效果
- 华为鸿蒙系统老手机能用吗_华为使用自家“鸿蒙”系统,旧手机的安卓系统可以更新成那个系统吗?...
- 1099: PIPI的油田
- 面试时如何回答面试官的问题
- 虚拟域服务器拒绝连接,远程winrm上的“访问被拒绝”
- OC10_数组的内存管理