网络服务器上是否需要.env文件?

时间:2016-06-03 14:45:18

标签: php laravel webserver key env

我注意到在远程服务器上测试时需要创建一个.env文件。

我的非测试项目我计划部署我丢失了.env文件,但一切仍然有效。

1 个答案:

答案 0 :(得分:1)

Laravel的.env文件并不特别必需才能运行,因为配置文件使用回退,或者您可以将配置值直接检测到配置文件中。您可能会注意到设置具有基于功能的分配,例如:'default' => env('CACHE_DRIVER', 'file')。 env()函数从.env文件中读取,如果某个值不存在,则有一个默认值(参数2),当它未设置时将其置于其中。

然而:这是(相当)糟糕的做法。默认情况下,git会忽略.env文件,您可能在安装时注意到Laravel会为您生成应用程序密钥。这是安装所特有的(但可以随时使用php artisan key:generate重新生成。)

Laravel artisan有一个方便的功能,允许您将配置值缓存到一个大型文件中,绕过必须读取/重新读取config目录中的每个配置文件。

php artisan config:cache

这大大减少了配置文件的解析时间,因此有助于加快应用程序启动时间。能够通过.env文件修改所有设置,然后运行上述命令比编辑每个设置文件快得多。

TLDR;如果您正在与其他团队成员合作或必须部署到不同的环境,请使用.env文件。如果没有,请为方便起见。无论哪种方式,它都不是必需的,但可以省去头痛。

修改

Laravel requires an application key in order to use certain functionality

我认为用研究来回答我的答案是个好主意:https://laracasts.com/discuss/channels/general-discussion/app-key?page=1

最好将其存储在.env文件中。如果怀疑存在安全漏洞,则可以快速重新生成应用程序密钥。