Laravel中的.env文件偶发性读取不到,env()获取为空最后取了config默认的值终极解决方案


1.背景

用Laravel框架开发项目,上线后打开APP运行一段时间后会莫名的自动退出登录(前端有自动轮询请求接口),经过排查发现session的key中途会被重置成服务上另一个项目的session_key,这篇博文有相关.env串库说明:https://blog.csdn.net/u010785091/article/details/88715800。后面我把.env里的键添加加个前缀后,退出的频率是降低了,但是没有彻底杜绝。后面发现session_key中途还是会被重置成config中的默认session_key,此时的心情,此处省略一万字......

2.原因

经过咨询Laravel大佬,因为我也是第一次使用这个框架,他们也遇到过该问题,Laravel的确存在偶尔读不到.env并返回空就使用了config中默认值,所以导致用了错误的配置信息连接Redis和数据库失败,继续导致程序无法从Redis中读取session值,因此登录信息就没法拿到了。至于Laravel为什么会存在整个情况,暂不知道情况,如有知道的欢迎在评论留言。

3.解决办法

其实Laravel官方有相关的正确使用.env的姿势,正确姿势是把.env编译到缓存中,这样就不用每次请求都文件读取,一旦缓存了配置以后,就不会再从 .env 文件加载内容了。这样做是有道理的,毕竟 .env 文件是文本内容,解析它的成本还是挺高的,所以生产环境最优雅的方式一定要编译到缓存中。

  • 每次修改env后清楚缓存
php artisan config:clear 
  • 编译生成缓存配置
php artisan config:cache
  • 缓存配置的位置

最后

通过以上方式,就可以完全避免读不到.env文件的问题了,导致一些莫名其妙的bug了,但是要注意,最优雅的方式env()方法不要在业务代码中使用,只在配置文件中使用。

Laravel中的.env文件偶发性读取不到,env()获取为空最后取了config默认的值终极解决方案相关推荐

  1. 项目中:Json文件的读取

    项目中:Json文件的读取 读Json文件 取Json文件中内容 举例: 举例:Json文件内容如下(Flickr8k) {'images':[{'sentids': [39300, 39301, 3 ...

  2. 如何在Laravel 中对大文件进行加密?

    我将其称为 FileVault 包,您可以 GitHub 上查看它. 如果您想跳过本教程,可以直接转到 GitHub 存储库并开始使用此软件包. 该扩展包包括了详细的使用文档. 教程 在这个教程中,我 ...

  3. java读取系统中指定的文件_java读取jar中指定的文件

    Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...

  4. android读取assets中的html文件,android读取assets文件.htm

    android读取assets文件 android读取assets文件 style='FONT-SIZE: 14px; FONT-FAMILY: verdana, "ms song" ...

  5. 使用Matlab对PIV数据中的dat文件进行读取数据并求平均值

    该方法是借鉴 争渡.争渡博主的文章,在他的文章上略微改动,进行求解. Matlab新手对PIV数据的大量dat文件中的某一列进行平均值计算,该方法可以对整个文件夹内的dat文件进行求平均值,对于文件名 ...

  6. python中codecs_Python3 中codecs进行文件的读取

    简单的概念与说明 编码(动词):按照某种规则(这个规则称为:编码(名词))将"文本"转换为"字节流".而在python 3中则表示:unicode变成str 解 ...

  7. python打开文件并读取2进制_在Python中,哪些文件可以读取为文本,哪些文件可以读取为二进制?...

    本问题已经有最佳答案,请猛点这里访问. 我想用open("page.html","r")读取HTML文件. 我做到了没有问题. 我的问题是Python将哪些文件 ...

  8. python下载网页中的pdf文件_Python读取网页上的pdf文件,输出字符串

    读取一个本地pdf文件,输出字符串 # -*- coding: UTF-8 -*from urllib import urlopenfrom pdfminer.pdfinterp import PDF ...

  9. matlab批量处理文件夹中的csv文件(读取、处理、输出)

    背景:用仪器测试器件的电学特性,得到的全是csv文件,上百个文件需要提取出合适时间范围内的电流平均值. 因为是同一台机器导出的,csv文件里面都是有规律的,我只需要其中两列关于时间和电流的数据,所以读 ...

最新文章

  1. 网络管理员比赛回顾04-DHCP
  2. java 反射代价_Java反射机制
  3. 如果说编程语言是一种宗教,你的信仰是?
  4. jQuery函数学习
  5. ajax mysql项目 react_Github MIT开源银行电子支付系统(ReactJS+Nodejs+Mysql)
  6. SmartDraw2008破解过程总结
  7. Chrome OS 0.4.220 Beta下载已发布
  8. python 模块 包 库_模块(包、库)
  9. 算法导论 思考题1-1
  10. JavaScript 高级程序设计笔记
  11. 聊一聊我在腾讯的外包同事
  12. CentOS 基础命令 III
  13. 卖衣服有什么引流产品?微商卖衣服引流推广?
  14. 重新做计算机老师的说说,说说我们电脑班老师 ── 刁元清
  15. 开源权限引擎可能理解了骇客帝国
  16. java连接mysql(java连接mysql的jar包)
  17. 静态分析工具综述:Roodi、Rufus、Reek和Flay
  18. i386, x86, x86_64, IA-32, IA-64, 安腾, AMD64 的关系是什么?
  19. 《安富莱嵌入式周报》第299期:IAR发布嵌入式软开发基础问题PDF,树莓派单片机运行Verilog,纯汇编实现的游戏, 电磁辐射频谱图, 乐鑫ESP32-P4
  20. 分数乘法计算机题,《分数乘法》测试题

热门文章

  1. ZVS 振荡器的仿真测试
  2. 权威专业,金山词霸2010牛津版全新上市!
  3. 曼孚科技丨如何通过数据服务助力数字经济发展?
  4. 2019年总结win10 1903版本 安装HCL2.1.1 安装使用问题总结
  5. 基于STM32单片机模块练习——OLED模块
  6. 自考本科税收筹划可以带计算机吗,2015年4月湖南自考本科:05175 税收筹划最新考前资料...
  7. 精尽 JDK 源码解析 —— 集合(七)TreeSet
  8. 欢迎了解融合通信应急调度系统解决方案
  9. 全新折叠旗舰OPPO Find N发布
  10. 申宝股票-年线短线注意量能信号变化