我想在heroku上運行一個使用MySQL的應用程序。爲此,我已經安裝並配置了cleardb
。我只剩下要做的就是配置環境變量。但是,我找不到適當的方法來做到這一點。
如何在heroku上設置生產環境變量?
在此article,馬特介紹如何配置所提到的變量:
// 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' => '',
),
而且他還表示:
如果你實際上是在一個真實的現場工作,你應該確保 你只是編輯數據庫憑證專門爲你的 生產環境
那麼,在生產中如何配置環境變量以便在heroku上使用cleardb
運行MySQL?
謝謝你的回答!你能否澄清以下問題? 1.是否保證數據庫url不會被更改?否則,對證書進行硬編碼並不是一個好的解決方案。和2.動態解析URL的安全? –
實際上,它不是硬編碼,因爲它是一個配置文件,不需要使用源文件。如果數據庫URL更改(它可能會創建另一個數據庫),則可以在服務器中對其進行修改。您需要考慮的唯一問題是性能下降,因爲需要在每個請求上解析文件。解決方法是通過Heroku CLI定義這些相同的變量。 – BeS