无法访问 Laravel 中的环境变量

G. *_*urs 7 php laravel

我在 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 应用程序。也许我错过了一些事情?

您知道为什么会发生这种情况吗?谢谢。

小智 9

尝试使用

php artisan config:clear
Run Code Online (Sandbox Code Playgroud)


Ott*_*tto 4

一种可能性是启用了配置缓存。在这种情况下,只有目录env中的调用才会config/返回值。

配置文档中对此进行了神秘解释https://laravel.com/docs/5.5/configuration

如果在部署过程中执行 config:cache 命令,则应确保仅从配置文件中调用 env 函数。

  • 正确,因此请确保将所需的所有环境值放入配置文件中,以便您的应用程序可以使用它们。顺便说一句,您可以运行 `php artisan config:clear` 并查看您的环境调用是否有效 (3认同)