簡體   English   中英

讀取Laravel 5.1配置文件中的虛擬主機中設置的環境變量

[英]Reading Environment Variables Set In Vhosts In Laravel 5.1 Config Files

使用laravel 5.1。 因此,在我的apache虛擬主機中,我已將環境變量“ ENV_DEV”設置為1。 如果我從香草PHP甚至在控制器中使用print_r($ _ SERVER),我都可以看到變量已設置。

我想將代碼插入config / database.php中以檢測環境並更改數據庫連接,但是由於某些原因,在運行artisan時出現以下錯誤:

if ($_SERVER['ENV_DEV'] == 1) { ...dbconfig here... }

php artisan migrate

PHP Notice:  Undefined index: ENV_DEV in /www/config/database.php on line 2

我知道在.env中聲明它是一個解決方案,但是我的目標是對整個環境范圍內的通用設置使用.env並在上游進一步處理數據庫配置。

有沒有解決的辦法?

如果要為控制台指定環境名稱,只需使用param --env=your_env運行腳本:

php artisan migrate --env=your_env

如果要為Web請求指定環境,則可以定義Web服務器參數。 Apache示例:

SetEnv LARAVEL_ENV your_env

並修改bootstrap/environment.php

...
if (empty($curEnv))
{
    // Use LARAVEL_ENV if defined
    $curEnv = getenv('LARAVEL_ENV') ?: 'local';
}
...

就像其他人寫的那樣,來自Apache的環境變量不會自動滴入命令行命令中。 但是,可以從外殼程序中將它們提供給命令。 例如: ENV_DEV=1 php artisan migrate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM