laravel 默认工程一个.env文件,如果在多个运行环境下如何自动区分读取不同的.env文件呢?其实laravel本身就已经实现了多环境读取.env,网上那些教程都是要加代码来识别或者讲的不清不楚的,laravel在5.5版本的框架底层中实现了读取不同的.env逻辑。请看截图:
那么我们该如何使用这个特性呢?其实很简单,加入我们有4个环境(dev环境,test环境,beta环境,production环境)。
我们只需要在工程根目录下创建四个文件,可以注意到不同环境是不同的环境关键字,分别为:
1. .env.dev 开发环境
2. .env.test 测试环境
3. .env.beta beta预发布环境
4. .env.producton 生产环境
创建后,在里面配置不同环境下的相关配置数据。
重点来了,这也是最重要的异步,如何告诉laravel要去读取指定环境的.env配置文件呢。其实只需要两步骤,在你指定运行环境下的nginx配置中PHP配置参数段中加上一行:
fastcgi_param APP_ENV test; // 根据环境不同填写对应的环境关键字。
配置后,重启nginx即可。这时候系统会区分环境读取.env文件了。