【问题标题】:only one .env file for local, staging and production?只有一个 .env 文件用于本地、暂存和生产?
【发布时间】:2017-02-05 12:44:24
【问题描述】:

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

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

又是这样:

我说有:.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

尽管这似乎不太安全。

【问题讨论】:

    标签: laravel-5 laravel-5.3


    【解决方案1】:

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

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

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

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

    这就是我的观点。

    【讨论】:

      猜你喜欢
      • 2018-10-14
      • 1970-01-01
      • 2018-08-17
      • 2015-01-29
      • 1970-01-01
      • 2020-06-01
      • 2019-12-09
      • 2023-03-17
      • 2016-09-14
      相关资源
      最近更新 更多