我想在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