Laravel中对env和env.example文件有什么需求?

时间:2018-08-29 19:02:47

标签: php laravel

我是Laravel的新手,我想对.env和.env.example文件进行简单说明,我们为什么需要它们以及它们之间的区别。

例如,我知道.env用于指定应用程序的数据库连接,但我想更深入地了解它。

7 个答案:

答案 0 :(得分:2)

.env文件存储您的应用程序的配置变量,.env.example只是.env文件中可能存在的示例!您可以轻松地将.env.example重命名为.env以开始使用。

什么是配置变量?来自The Twelve-Factor App

  

应用程序的配置是部署之间可能会发生变化的所有内容(阶段,生产,开发人员环境等)。这包括:

     
      
  • 资源处理数据库,Memcached和其他支持服务
  •   
  • 外部服务(例如Amazon S3或Twitter)的凭据
  •   
  • 每次部署的值,例如部署的规范主机名
  •   

在Laravel中,.env文件还包含您的应用程序密钥,该密钥用于在应用程序中进行加密。因此,并且由于您可能会将其他私钥存储在此文件中,请确保不要将.env提交到源代码管理或将其公开共享!

我建议您阅读上面的链接,以解释为什么应将配置与应用程序分开,有关Laravel的特定信息,您可以查看here

答案 1 :(得分:1)

.env文件包含各种设置,一行-一对KEY = VALUE。然后,在您的Laravel项目代码中,您可以使用env('KEY')函数获取这些环境变量。

规则是.env文件未提交到存储库,因此确实很方便,因为这样,您团队中的人员就可以在本地更改变量,而无需将其提交到存储库。

现在,.env.example文件正包含在存储库中–它用作示例文件,可让您知道项目需要哪些KEY = VALUE对。通常,它用于将其复制到.env文件,然后更改值。

您还可以在Laravel官方文档中阅读有关内容。

答案 2 :(得分:1)

.env.example文件只是.env文件的一个示例。该应用未使用它。它用作您进行编辑和重命名的基础。

.env文件包含特定于那些环境的应用程序的常量。例如,这意味着如果我想使用相同的代码在多个位置部署应用程序,则只需更改此文件上的某些设置即可在每种环境下运行,并且我们都已完成,无需更改代码。 / p>

这些设置可以是数据库连接设置,但也可以用于其他用途,例如APP_KEY,每个应用程序都应该有所不同,并且使用了我的许多功能。

请注意,此.env文件不应在任何地方共享,因为它包含有关特定部署的私有信息。

您可以在此处了解更多信息:https://laravel.com/docs/5.6/configuration#environment-configuration

答案 3 :(得分:1)

顾名思义,

.env 文件是本地文件,您在其中放置了所有环境设置,例如数据库凭据,缓存驱动程序等。与项目服务器有关的所有内容正在运行,并且对于不同的服务器可能具有不同的值,请在此处进行设置。

每个示例,您的本地开发环境具有与生产环境不同的数据库凭据。您的同事开发环境也与您的不同。因此每个人都有一个带有不同信息的 .env

由于这些原因,无法对该文件进行版本控制,因此 .env.example 是具有 .env 具有但没有的所有常量设置的文件值,并且只有此版本。 .env.example 作为创建 .env 文件的指南,其中包含运行应用程序所需的必要信息。

使用Laravel时,您可以在这里找到更多信息:environment-configuration

答案 4 :(得分:1)

.env仅用于存储所有敏感文件,例如密码API密钥,数据库等,作为以后在您的代码中使用的环境变量,此敏感文件不包含在代码库中,并且在使用时不会存在推到git。 .env.example 这个文件告诉其他程序员,当您的代码被克隆或被其他用户使用时,代码中应该包含什么内容。

示例 .env API_KEY =“ hwhhwhshs6585gahwhgwuwjwusuhs”

.env.example API_KEY =“您的API密钥在此处”

答案 5 :(得分:0)

在主文件夹中的Laravel 5.0版本中,您应该具有.env文件,该文件包含各种设置,一行-一对KEY = VALUE。然后,在Laravel项目代码中,您可以使用函数env(‘KEY’).

来获取那些环境变量。

规则是.env文件未提交到存储库,因此非常方便,因为这样您的团队中的人员可以在本地更改其变量,而无需将其提交到存储库。

现在,.env.example文件已包含在存储库中–它用作示例文件,可让您知道项目需要哪些KEY = VALUE对。通常,它用于将其复制到.env文件中,然后更改值。

您的.env文件不应提交给应用程序的源代码管理,因为使用该应用程序的每个开发人员/服务器都可能需要不同的环境配置。此外,如果入侵者获得对您的源代码控制存储库的访问权限,这将带来安全风险,因为任何敏感的凭据都会被公开。

如果与团队一起开发,则可能希望继续在应用程序中包含.env.example文件。通过将占位符值放在示例配置文件中,团队中的其他开发人员可以清楚地看到运行您的应用程序所需的环境变量。您也可以创建一个.env.testing文件。运行PHPUnit测试或使用.env

执行Artisan命令时,此文件将覆盖--env=testing option.文件。

答案 6 :(得分:0)

.env 或环境变量是存储一些敏感信息(如 API 密钥)的文件。它们仅在您的 PC/本地系统上对您可见。如果您将项目推送到 GitHub 或其他某个平台,则不会发送给其他任何人。