何时在Laravel中生成新的应用程序密钥?

kyo*_*kyo 13 php console laravel laravel-5 laravel-5.1

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

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

我们怎么知道何时运行php artisan key:generate

Tim*_*wis 23

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

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

附注:如果您尝试使用APP_KEYset设置运行Laravel项目SomeRandomString(这是.env.example文件中的默认设置,您实际上会收到错误:

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

  • @AdemTepe 两个开发人员可以使用相同的 APP_KEY,这很好,并且实际上允许在两个本地数据库之间共享数据(即,如果一个数据库损坏,则从另一个数据库进行恢复应该无需修改即可工作)。不过,出于安全原因,我仍然建议不要将其放入“.env.example”中。外部存储(例如 AWS Secret Manager 或类似存储)是共享配置(例如密钥等)的更好解决方案。 (2认同)
  • 是的,同意蒂姆刘易斯的观点,你不应该将环境变量放入版本控制中。 (2认同)

Eri*_*ner 14

克隆 Laravel 项目时最重要的事情是首先composer update运行composer install。该composer install命令会安装该 laravel 应用程序所需的任何依赖项。

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

  • 这对我有用 1) 作曲家更新 2) 作曲家安装 3) php artisan key:generate 它有效,谢谢 (3认同)

Pet*_*mau 8

如果您需要手动生成密钥,您可以使用任何支持 Laravel/artisan 的 php cli 使用php artisan key:generate --show(据说这不会修改您的任何现有设置)。然后您可以在配置中使用该密钥字符串(但是您已经保存了您的秘密)。即,您不需要php artisan key:generate在您正在设置的服务器上运行(如果您将 docker 映像部署到 Heroku 或 AWS App Runner 等容器主机,这可能会很有用。