簡體   English   中英

如何在heroku上設置生產環境變量?

[英]How to set production environment variables on heroku?

我想在heroku上使用MySQL運行應用程序。 我已經為此目的安裝並配置了cleardb 我剩下要做的就是配置環境變量。 但是,我找不到執行此操作的正確方法。

本文中 ,Matt解釋了如何配置上述變量:

// config/database.php

$url = parse_url(getenv("CLEARDB_DATABASE_URL"));

$host = $url["host"];
$username = $url["user"];
$password = $url["pass"];
$database = substr($url["path"], 1);

// . . .

'mysql' => array(
    'driver'    => 'mysql',
    'host'      => $host,
    'database'  => $database,
    'username'  => $username,
    'password'  => $password,
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
),

他還說:

如果您實際上是在實際站點上工作,則應確保您只是在編輯專門針對生產環境的數據庫憑據

那么,應該如何在生產環境中准確配置環境變量以在cleardb上使用cleardb運行MySQL?

被標記為Laravel 5.2,您需要在.env文件中設置環境變量。 該文件未包含在版本控制中,因為您應該在每個安裝中使用不同的版本。 默認情況下提供一個.env.example

例如,如果您的URL是:

CLEARDB_DATABASE_URL => mysql://adffdadf2341:adf4234@us-cdbr-east.cleardb.com/heroku_db?reconnect=true

然后在您的.env文件中,您可以輸入:

DB_CONNECTION=mysql
DB_HOST=us-cdbr-east.cleardb.com
DB_PORT=3306
DB_DATABASE=heroku_db
DB_USERNAME=adffdadf2341
DB_PASSWORD=adf4234

並保持config/database.php不變。

另一個解決方案是在.env文件中定義上面的URL並根據建議動態分析它。 請注意,使用env("CLEARDB_DATABASE_URL")訪問這些變量。

編輯

由於CLEARDB_DATABASE_URL是自動設置的,因此最好使用它。

// config/database.php

if ($url = env('CLEARDB_DATABASE_URL', false)) {
    $parts = parse_url($url);
    $host = $parts["host"];
    $username = $parts["user"];
    $password = $parts["pass"];
    $database = substr($parts["path"], 1);
} else {
    $host = env('DB_HOST', 'localhost');
    $username = env('DB_USERNAME', 'forge');
    $password = env('DB_PASSWORD', '');
    $database = env('DB_DATABASE', 'forge');
}

// ...
        'mysql' => [
            'driver' => 'mysql',
            'host' => $host,
            'database' => $database,
            'username' => $username,
            'password' => $password,
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
        ],

在Heroku上設置環境變量非常簡單。 您可以使用Heroku CLI,如下所示:heroku config:set CLEARDB_DATABASE_URL =“您的數據庫URL”

您還可以通過Heroku儀表板輕松配置環境變量。

暫無
暫無

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

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