2017-10-05 168 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