Laravel - 为啥 laravel 要求将 .env.example 重命名为 .env 而 .env 已经存在?

Posted

技术标签:

【中文标题】Laravel - 为啥 laravel 要求将 .env.example 重命名为 .env 而 .env 已经存在?【英文标题】:Laravel - Why laravel ask to rename .env.example to .env while .env already exist?Laravel - 为什么 laravel 要求将 .env.example 重命名为 .env 而 .env 已经存在? 【发布时间】:2020-01-26 07:42:57 【问题描述】:

在Laravel 6 Documentation第二段Application Key这样写

通常,该字符串的长度应为 32 个字符。关键可以是 在 .env 环境文件中设置。如果你还没有重命名 .env.example 文件到.env,你现在应该这样做。如果申请 未设置密钥,您的用户会话和其他加密数据将不会 安全!

他们为什么要求重命名它?我还在 Laravel 旧版本中找到了这一段。内容相同,名称不同,有什么区别吗?

【问题讨论】:

如果您已经拥有.env 文件,则无需重命名.env.example 文件。它们一开始是相同的。如果您没有.env 文件,在这种情况下,您必须将其重命名为.env,因为您的应用程序环境将从.env 文件加载。 【参考方案1】:

如果你已经使用 composer 命令安装了 Laravel。

composer create-project laravel/laravel 项目名称

您无需将.env.example 文件重命名为.env。如果你通过 Composer 或 Laravel 安装程序安装了 Laravel,那么 php artisan key:generate 命令已经为你设置了这个密钥。

如果您使用git clone 克隆项目,git 会忽略某些文件夹,因此您可能无法获得 env 文件和供应商文件夹。因此,他们必须手动输入 php artisan key:generate 才能让他们的应用正常运行。

More info SO answer

【讨论】:

【参考方案2】:

Laravel 需要使用.env 文件来定义数据库连接,一些通用设置如application key 也是如此。所以如果你没有 .env 文件,你的 Laravel 暂时没有设置。

正如他们所说,If the application key is not set, your user sessions and other encrypted data will not be secure! 为此,您需要创建/复制/删除.env.example 到新的.env。让我们的 Laravel 了解通用配置。

顺便说一句,不要像复制粘贴那样使用.env.example,因为它只是一个示例。您需要将值配置更改为您自己的。

【讨论】:

【参考方案3】:

最简单的方法是使用Filezilla 或其他FTP 程序将其移动到您的serverRename filere-download 在您的 computer 上。上次对我有用:)

【讨论】:

【参考方案4】:

.env.example 文件只是.env 文件的一个示例。该应用程序不使用它。它用于作为您编辑和重命名的基础。

在全新的 Laravel 安装中,应用程序的根目录将包含一个 .env.example 文件。如果您通过 Composer 安装 Laravel,此文件将自动重命名为 .env。否则,您应该手动重命名文件。

【讨论】:

以上是关于Laravel - 为啥 laravel 要求将 .env.example 重命名为 .env 而 .env 已经存在?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 laravel 项目将@extends、@yield 和@section 显示为纯文本?

为啥 Laravel 附带 Vue? (SPA 与 MVC)

为啥在模式内部切换在 laravel 中不起作用?

为啥 Laravel 会成为最成功的 PHP 框架

为啥我的路线返回 404 错误 Laravel?

为啥我的 Facades 在更新到 Laravel 7.3 后停止工作?