我在 Laravel 中从 env 文件访问 env 变量时遇到问题。该应用程序已托管到共享托管站点之一。当我打印APP_KEY变量时,它返回空。
我尝试使用公共目录中文件file_exists内的函数来检查 env 文件是否存在,它返回但我无法访问 env 变量。因此,由于 appkey 为空,导致密码错误。index.phptrue
这发生index.php在公共目录中文件中的以下代码块之后:
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
Run Code Online (Sandbox Code Playgroud)
当我打印时$response->send(),它显示密码错误。
我在本地做了同样的事情,它显示了 appkey 值,没有密码错误。
我在共享托管站点中使用的文件与我本地的文件相同。这是我第一次托管 Laravel 应用程序。也许我错过了一些事情?
您知道为什么会发生这种情况吗?谢谢。
一种可能性是启用了配置缓存。在这种情况下,只有目录env中的调用才会config/返回值。
配置文档中对此进行了神秘解释https://laravel.com/docs/5.5/configuration
如果在部署过程中执行 config:cache 命令,则应确保仅从配置文件中调用 env 函数。