只有一个.env文件用于本地,登台和制作?

时间:2017-02-05 04:27:25

标签: laravel-5 laravel-5.3

我在所有阶段都有不同的密码。我在.env文件中也有不同的设置。

我最终做的是在文件更改到舞台后手动上传.env文件,手动设置正确的密码和密钥。有没有更好的办法,也许是官方的拉拉维尔方式?

再次:

我说:.env

DB_DATABASE=myDBnameLocal
DB_USERNAME=myuserLOCAL
DB_PASSWORD=mypasswordLOCAL

分段等的不同值

我宁愿拥有3个不同的文件,还有第4个文件,我将环境设置为

说一个.stage,我在其中定义了我的应用所在的环境。根据该值,我加载了正确的.env文件。

有没有办法做这样的事情,或者有办法完全不同吗?

说在一个大文件中定义所有密码并调用如下内容:

DB_DATABASE_LOCAL=myDBnameLocal
DB_USERNAME_LOCAL=myuserLOCAL
DB_PASSWORD_LOCAL=mypasswordLOCAL

DB_DATABASE_PRODUCTION=myDBnamePRODUCTION
DB_USERNAME_PRODUCTION=myuserPRODUCTION
DB_PASSWORD_PRODUCTION=mypasswordPRODUCTION

尽管这似乎不太安全。

1 个答案:

答案 0 :(得分:1)

他们现在正在做的事情是正确的方式,这是保持环境文件与每个环境不同的方法。因为现在您知道每个环境都有什么,并且您可以在环境参数更改时更改任何文件,例如说你的数据库在临时区域被改变了。

将.env中的生产设置保留为本地是致命的,为什么?

  1. 首先,将生产设置保留在本地计算机上是不安全的。
  2. 通过将生产/暂存设置保持在同一文件中,您将使用IF和BUTS,例如

    if( env('APP_ENV') === 'local' ) { 
       $username = env('DB_LOCAL_USERNAME');
    }
    
  3. 现在您需要记录变量在哪个环境中的变化,并使所有变量在所有环境中保持同步。

  4. 这一切都来自我的观点。