2017-10-05 113 views
1

我在访问Laravel中的env文件中的env变量时遇到问题。 该应用程序已被托管到共享托管站点之一。 当我打印APP_KEY变量时,它将返回空白。无法访问Laravel中的env变量

我试图检查ENV文件使用index.php文件中的公共目录中file_exists函数存在,它返回true但我无法访问ENV变量。 因此,由于空的appkey导致密码错误。

这在公共目录中的文件index.php这个编码块发生后:

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture() 
); 

当我打印$response->send(),它显示密码错误。

我在我的本地做了同样的事情,它显示了没有密码错误的appkey值。

我在共享托管站点中使用的文件与我的本地文件相同。这是我第一次主持Laravel应用程序。也许我错过了一些东西?

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

+0

所以只要运行'php artisan key:generate'? – Option

+0

但该应用程序已经托管。 –

+0

密钥刷新不应该导致问题。 – Option

回答

0

一种可能性是启用了配置缓存。在这种情况下,只有config/ dir中的env调用返回一个值。在部署过程中的缓存命令,你应该确保你只从您的配置文件中调用ENV功能:

这在配置文档https://laravel.com/docs/5.5/configuration

如果执行配置,那么神秘地解释。

+0

因此只能在配置文件中调用env值? –

+0

是正确的,因此请确保将所有需要的env值放在配置文件中,以便您的应用程序可以使用它们。 顺便说一句,你可以运行'php artisan config:clear'并查看你的env调用是否工作 – Otto