【问题标题】:When to generate a new Application Key in Laravel?何时在 Laravel 中生成新的应用程序密钥?
【发布时间】:2016-01-26 23:48:11
【问题描述】:

由于它会在我创建应用程序时自动在我的.env 文件中为我设置,所以我不确定何时应该运行它。

除此之外,如果第二个开发者进来并克隆应用程序,他/她是否需要运行 php artisan key:generate

我们如何确切知道何时运行php artisan key:generate

【问题讨论】:

  • @tino.codes 不正确。 APP_KEY 与散列无关。阅读更多:tighten.co/blog/app-key-and-you
  • @johnRivs 你说得对。四年前我还相信这个神话。

标签: php laravel laravel-5 console laravel-5.1


【解决方案1】:

php artisan key:generate 是一个在您的.env 文件中设置APP_KEY 值的命令。默认情况下,此命令在composer create-project laravel/laravel 命令之后运行。如果您使用像 git 这样的版本控制系统来管理您的项目以进行开发,调用 git push ... 会将您的 Laravel 项目的副本推送到它要去的任何地方,但不会包含您的 .env 文件。因此,如果有人使用 git clone ... 克隆您的项目,他们将必须手动输入 php artisan key:generate 才能使其应用正常运行。

所以,TL:DR 唯一需要调用 php artisan key:generate 的时间是关注预先创建的 Laravel 项目的 clone

旁注:如果你尝试运行一个 Laravel 项目并将你的 APP_KEY 设置为 SomeRandomString(这是你的 .env.example 文件中的默认值,你实际上会得到一个错误:

未找到支持的加密器。密码和/或密钥长度无效。

【讨论】:

  • 非常感谢您的解释。话虽如此,开发者 A 和开发者 B 可能有不同的APP_KEY 将来会不会是个问题?
  • 我不这么认为,但这完全有可能。话虽如此,在我使用 Laravel 的一年多的开发过程中,我还没有看到任何案例。
  • 我刚刚为那个问题添加了一个“旁注”。答案是否定的,没有密钥你将无法运行项目。
  • @Maven97 提交您的.env 文件不是一个好主意(除非您 100% 确定其中包含的信息是安全的/您不介意人们看到密钥/密码,等),但如果你这样做,那么你不需要调用这个命令。
  • @AdemTepe 两个开发人员可以使用相同的 APP_KEY,这很好,并且实际上允许在他们的两个本地数据库之间共享数据(即,如果一个数据库损坏,从另一个数据库恢复应该无需修改)。不过,出于安全原因,我仍然建议不要将其放在.env.example 中。外部存储(如 AWS Secret Manager 或类似设备)是共享配置(如密钥等)的更好解决方案。
【解决方案2】:

克隆 laravel 项目时最重要的事情是先运行composer update,然后运行composer installcomposer install 命令安装该 laravel 应用所需的所有依赖项。

我克隆 laravel 项目的步骤需要 php artisan key:generate 命令。我可以在我的.env 文件中看到运行此命令后有一个更新的APP_KEY=base64:xxxxxxxxxxxxxxxxxxxx

【讨论】:

  • 这对我有用 1) composer update 2) composer install 3) php artisan key:generate 成功了,谢谢
猜你喜欢
  • 2012-12-23
  • 2016-07-17
  • 2020-12-10
  • 1970-01-01
  • 2016-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-15
相关资源
最近更新 更多