由于在创建应用程序时,它会自动为我在.env
文件中设置密钥,因此我不确定何时应运行它。
此外,如果第二个开发人员进来并克隆了应用程序,他/她需要运行 php artisan key:generate
吗?
我们怎样才能确切知道何时运行 php artisan key:generate
?
由于在创建应用程序时,它会自动为我在.env
文件中设置密钥,因此我不确定何时应运行它。
此外,如果第二个开发人员进来并克隆了应用程序,他/她需要运行 php artisan key:generate
吗?
我们怎样才能确切知道何时运行 php artisan key:generate
?
php artisan key:generate
是一个命令,用于设置.env
文件中的APP_KEY
值。默认情况下,在运行composer create-project laravel/laravel
命令后,会运行此命令。如果您使用像git
这样的版本控制系统来管理开发项目,调用git push ...
会将 Laravel 项目的副本推送到任何地方,但不会包括您的.env
文件。因此,如果有人使用git clone ...
克隆您的项目,则必须手动输入php artisan key:generate
才能使他们的应用程序正常运行。
简而言之,唯一需要调用php artisan key:generate
的时间是在预创建的 Laravel 项目的clone
之后。
附注:如果您尝试使用在.env.example
文件中默认为SomeRandomString
的APP_KEY
运行 Laravel 项目,则实际上会出现错误:
未找到受支持的加密程序。 密码和/或密钥长度无效。
.env
文件并不是一个好主意(除非您百分之百确定其中包含的信息是安全的/您不介意其他人看到密钥/密码等),但如果您确实要这样做,那么您就不需要调用此命令。 - Tim Lewis.env.example
中。像AWS Secret Manager或类似的外部存储是用于共享配置(如密钥等)的更好解决方案。 - Tim Lewiscomposer update
命令,然后执行composer install
。composer install
命令会为该laravel应用程序安装所有所需的依赖项。php artisan key:generate
命令。在运行此命令后,我可以在我的.env
文件中看到更新的APP_KEY=base64:xxxxxxxxxxxxxxxxxxxx
。composer update
可能会更改 Composer 本身的版本,这可能会导致问题 - 因此在仍在使用旧代码且所需的 Composer 版本已在项目配置中固定的情况下,请谨慎使用... - Peter Kionga-Kamauphp artisan key:generate --show
来执行此操作(据说这不会修改任何现有设置)。然后,您可以在配置文件中使用该密钥字符串(无论您如何保存您的机密信息)。也就是说,您不需要在正在设置的服务器上运行php artisan key:generate
(如果您要将Docker镜像部署到像Heroku或AWS App Runner这样的容器主机上,则这可能很有用)。
APP_KEY
与哈希无关。阅读更多:https://tighten.co/blog/app-key-and-you - johnRivsAPP_KEY
生成用于密码恢复邮件的哈希和验证密码。如果我没记错的话,如果你生成了新的应用密钥,所有你现有的活动密码链接将变得无效。这不是一个大问题,但需要知道。 - Andrew Larsen