Laravel .env 多环境配置文件
项目开发中,通常会有本地开发环境、内网测试环境、线上真实环境。这三种环境的配置通常都不尽相同,Laravel 可以通过环境变量 APP_ENV 的值来加载不同的 .env 配置文件。下面会介绍两种方法,分别是通过 Nginx 和 PHP-FPM 来设置 APP_ENV 环境变量的值。
方法一:修改 Nginx 配置文件设置 APP_ENV:
location = /index.php {
index index.php;
try_files $uri =404;
fastcgi_pass unix__tmp_php_cgi_sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param APP_ENV xxxx;
}
方法二:修改 PHP-FPM 配置文件设置 APP_ENV:
env[APP_ENV] = xxxx
上述两种方法只需二选一。重启 Nginx 和 PHP-FPM 服务,Laravel 框架就会自动选择加载项目根目录下的 .env.xxxx 配置文件,而不会去加载 .env 配置文件了。
通过 APP_ENV 环境变量值加载特定 .env 配置文件的 Laravel 源代码位于文件Illuminate/Foundation/Bootstrap/DetectEnvironment.php 中,摘录关键代码如下:
/**
* Detect if a custom environment file matching the APP_ENV exists.
*
* @param \Illuminate\Contracts\Foundation\Application $app
* @return void
*/
protected function checkForSpecificEnvironmentFile($app)
{
if (! env('APP_ENV')) {
return;
} $file = $app->environmentFile().'.'.env('APP_ENV'); if (file_exists($app->environmentPath().'/'.$file)) {
$app->loadEnvironmentFrom($file);
}
}
请注意:
当设置了 APP_ENV 环境变量时,当运行 Laravel 的 Aritsan 终端命令之前,比如迁移命令(./artisan migrate)、启动队列侦听器(./artisan queue:listen)等等,均需要在终端也导入 APP_ENV 环境变量。
$ export APP_ENV=xxxx
$ ./artisan migrate
或者
$ APP_ENV=xxxx ./artisan migrate
当然,也可以选择在 ~/.bash_profile 或者 ~/.bashrc 中一劳永逸地设定好终端环境变量 APP_ENV 的值。
Laravel .env 多环境配置文件的更多相关文章
- Atiti. Php Laravel 5.1 环境搭建以及 error 排除
Atiti. Php Laravel 5.1 环境搭建以及 error 排除 1. php_5.6.11_apache2.41 1.1. Httpd.Conf增加以下配置,添加php支持1 1.2. ...
- Bash环境配置文件
一.环境配置文件读取优先级 其中~/.bash_profile,~/.bash_login,~/.profile三个文件只有一个有效,查找优先级从左至右降低.bash会一直检查是否有~/.bashrc ...
- application.properties多环境配置文件、jar包外部配置文件、配置项加密、程序中配置使用
一.简介 spring boot项目application.properties文件存放及使用介绍 二.方法一多环境配置文件 我们一般都会有多个应用环境,开发环境.测试环境.生产环境,各个环境的配置会 ...
- Bash Shell的环境配置文件
login shell:取得bash时需要完整的登录流程 non-login shell:取得bash接口的方法不需要重复登录,举例来说,你以x window登录Linux后,再以x的图形界面启动终端 ...
- spring-boot多环境配置文件
spring-boot多环境配置文件 目录 配置 多环境配置文件名称要遵循格式 application-{profile}.yml application.yml spring: profiles: ...
- bash 的环境配置文件
http://www.cnblogs.com/ggjucheng/archive/2012/11/01/2750179.html bash 的环境配置文件 你是否会觉得奇怪,怎么我们什么动作都没有进行 ...
- Linux用户环境配置文件
用户操作环境配置文件: 从/etc/skel目录复制过来 .bashrc 打开新终端 /etc/bashrc .bash_profile 用户登 ...
- Linux的环境配置文件----.bashrc文件(转)
Linux的环境配置文件----.bashrc文件 .bashrc文件主要保存个人的一些个性化设置,如命令别名.路径等.也即在同一个服务器上,只对某个用户的个性化设置相关.它是一个隐藏文件,需要使 ...
- SpringProfile轻松切换多环境配置文件
在项目开发的过程中,我们难免会遇到开发.测试.生产等环境的切换,而各个环境的配置肯定是不同的.传统的办法是在项目打包的时候修改配置文件.但人为做的事情难免产生意外.Spring 为我们提供了一种多环境 ...
随机推荐
- HDU-3400Line belt-三分再三分-求距离中要加esp
传送门:Line belt 参考:http://blog.csdn.net/hcbbt/article/details/39375763 题意:在一个平面途中,有一条路ab,还有一条路cd:假设在ab ...
- 【DataBase】事务
一.事务概述 二.事务的四大特性(ACID) 三.事务的隔离性导致的问题 四.数据库的四个隔离级别 五.数据库中的锁机制: 六.更新丢失 七.并发事务所带来的的问题 一.事务概述 事务的概念:事务是指 ...
- Vue 前端uni-app多环境配置部署服务器的问题
目录 前端Vue 针对问题 package.json描述 多环境部署 查看源码获取解决方案 转载请标明出处: http://dujinyang.blog.csdn.net/ 本文出自:[奥特曼超人的博 ...
- 前端利器躬行记(5)——Git
Git是一款开源的分布式版本控制系统,它的出现和Linux紧密相关.Linux内核项目组为了能更好地管理和维护Linux内核开发,于2002年开始启用商业的分布式版本控制系统BitKeeper.虽然软 ...
- BASK、BFSK、BPSK调制方法的Matlab程序实现
%以下为手动编程方法,也可调用matlab集成函数dmod,具体调制方式见doc. n = [0:0.01:5.99]; x1 = ones(1,100); x2 = zeros(1,100); x3 ...
- b146: NOIP2004 1.不高兴的津津
题目: 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一天上课超过八个小时就会不高兴,而且 ...
- 为什么StringBuilder是线程不安全的?StringBuffer是线程安全的?
面试中经常问到的一个问题:StringBuilder和StringBuffer的区别是什么? 我们非常自信的说出:StringBuilder是线程安全的,StirngBuffer是线程不安全的 面试官 ...
- 腾讯云和阿里云部署web 项目tomcat 日志 中文变成问号
在部署项目到云上的时候,遇到了tomcat logs 日志中文变问号的问题,今天终于得到解决了 这是中文变成问号的的截图 打开到tomcat bin 目录的文件夹 找到catalina.sh 文件 ...
- ExpandableListView之BaseExpandableListAdapter
之前使用的SimpleExpandableListAdapter有较大局限性,样式单一,修改难度大,这里不建议使用,而是利用BaseExpandableListAdapter,其实SimpleExpa ...
- 数据结构慕课PTA 05-树9 Huffman Codes
题目内容 In 1953, David A. Huffman published his paper "A Method for the Construction of Minimum-Re ...