env变量为null如何解决
发布网友
发布时间:2022-04-19 20:51
我来回答
共1个回答
热心网友
时间:2022-04-19 22:20
打开 .env 文件看,这些都是有值的:
APP_ENV=local
APP_KEY=base64:JHE5bOkRg283uT0n1Zq/GgvGEer8ooYiB42/wIcCyvo=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://www.tanteng.me
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tanteng.me
DB_USERNAME=homestead
DB_PASSWORD=secret
如图所示:
原因何在?
在 Laravel 中,如果执行 php aritisan config:cache 命令,Laravel 将会把 app/config 目录下的所有配置文件“编译”整合成一个缓存配置文件到 bootstrap/cache/config.php,每个配置文件都可以通过 env 函数读取环境变量,这里是可以读取的。但是一旦有了这个缓存配置文件,在其他地方使用 env 函数是读取不到环境变量的,所以返回 null.
让我们看看这段代码,Illuminate/Foundation/Bootstrap/DetectEnvironment.php line 18:
public function bootstrap(Application $app)
{
if (! $app->configurationIsCached()) {
$this->checkForSpecificEnvironmentFile($app);
try {
(new Dotenv($app->environmentPath(), $app->environmentFile()))->load();
} catch (InvalidPathException $e) {
//
}
}
}
这个方法在框架启动后就会运行,这段代码说明了如果存在缓存配置文件,就不会去设置环境变量了,配置都读缓存配置文件,而不会再读环境变量了。
因此,在配置文件即 app/config 目录下的其他地方,读取配置不要使用 env 函数去读环境变量,这样你一旦执行 php artisan config:cache 之后,env 函数就不起作用了。所有要用到的环境变量,在 app/config 目录的配置文件中通过 env 读取,其他地方要用到环境变量的都统一读配置文件而不是使用 env 函数读取。
env变量为null如何解决
因此,在配置文件即 app/config 目录下的其他地方,读取配置不要使用 env 函数去读环境变量,这样你一旦执行 php artisan config:cache 之后,env 函数就不起作用了。所有要用到的环境变量,在 app/config 目录的配置文件中通过 env 读取,其他地方要用到环境变量的都统一读配置文件而不是使用 env 函...
UNIX环境编程(c语言)--多进程(一)--基础知识
setenv: 将name的值设置为value,如果环境中已经存在name,rewite为0时则不删除原定义、不设置新值、也不出错,rewite为非0时,先删除原定义再添加 unsetenv: 删除name的定义,不存在也不报错 进程标识进程ID: ?每个进程都有一个非负整数表示的进程ID,且这个ID是唯一的,但是也可被复用 进程ID ...
怎么使用argv
解包:把argv中的东西取出来,将所有的参数依次赋值给左边的变量。在argv.py文件中输入以下代码:from sys import argv script, first, second, third = argv print("The script is called:", script)print("Your first variable is:", first)print("Your second variable is:", second)print("Yo...
在win7下使用cygwin启动hadoop,但是报 null\bin\winutils.exe in t...
出现这个异常,一般是HDFS的路径写的有问题,解决办法,拷贝集群上的core-site.xml和hdfs-site.xml文件,放在eclipse的src根目录下即可。package com.qin.wordcount;import java.io.IOException;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWr...
args里面的参数是什么意思?
argv[argc]为NULL。env: 安符串数组。env[] 的每一个元素都包含ENVVAR=value形式的字符 串。其中ENVVAR为环境变量如PATH或87。value 为ENVVAR的对应值如C:\DOS, C:\TURBOC(对于PATH) 或YES(对于87)。Turbo C2.0启动时总是把这三个参数传递给main()函数, 可以在用户程序中 说明(或不说明)它们...
redhat怎么设置path环境变量
set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下:export TEST="Test..." #增加一个环境变量TEST env|grep TEST #此命令有输入,证明环境变量TEST已经存在了 TEST=Test...unset $TEST #删除环境变量TEST env|grep TEST #此命令没有...
如何用django生成文书(2023年最新解答)
第一次启动时,DJANGO_AUTORELOAD_ENV为None,无法进入启动逻辑。会进入restart_with_reloader()。 在这里会将DJANGO_AUTORELOAD_ENV置为True,随后重启。 第二次时,可以进入启动逻辑了。 这里创建了一个django主线程,将inner_run()传入。 随后本线程通过reloader.run(django_main_thread),创建一个轮询守护进程。 我们...
怎样正确配置apache实现用户个人主页?(linux)
Linux下将在启动文件 /etc/rc.d/rc.local/init.d/apache中自动启动Web服务器,这种方式是推荐设置。 启动Apache服务器的另一种方式是inet方式,使用超级服务器inetd监视连接请求并启动服务器。当需要使用inetd启动方式时,便需要更 改为这个设置,并屏蔽/etc/rc.d/rc.local/init.d/apache文件,以及更改/etc/inetd....
django如何模型字段是否有空(django模型数据字段)
如果为True,空值将会被存储为NULL,默认为False。blank:If True, the field is allowed to be blank. Default is False.如果为True,字段允许为空,默认不允许。在django rest framework的model序列化时,字段有可能是None时的处理办法一,model字段 从Model定义中可以看到,env,release这些字段都有...
ASP.NET常见错误大全
解决方法: 打开vs >工具(Tools) >选项(Option) >调试(debugging) >编辑并继续(Edit and Continue) >全部打勾 Automation 操作中文件名或类名未找到: RegExp 解决方法:regsvr vbscript dll System NullReferenceException: 未将对象引用设置到对象的实例 原因: ( )所设置的变量为空值或没有取到值 一般出现在...