未指定应用程序加密密钥

No Application Encryption Key Has Been Specified

我是 Laravel 的新手,我正在尝试使用 Artisan 命令...

php artisan serve

它显示...

Laravel development server started: http://127.0.0.1:8000

但是,它不会自动启动,当我手动输入 http://127.0.0.1:8000 时,它会显示此错误:

RuntimeException No application encryption key has been specified.

有什么想法吗?我正在使用 Laravel 框架 5.5-dev.

来自Encryption - Laravel - The PHP Framework For Web Artisans

"Before using Laravel's encrypter, you must set a key option in your config/app.php configuration file. You should use the php artisan key:generate command to generate this key"

我发现在 google.com 中使用这个复杂的互联网查询:

"laravel 添加加密密钥"(是的,即使输入错误也能正常工作!)

请注意,如果 .env 文件包含密钥但您仍然收到应用程序密钥错误,则 运行 php artisan config:cache 清除并重置配置。

在项目的根文件夹中打开命令提示符,然后运行命令如下:

php artisan key:generate

它将为您的应用程序生成应用程序密钥。

您可以在.env 文件中找到生成的应用程序密钥(APP_KEY)。

cp .env.example .env 如果不存在 .env 文件。 php artisan key:generate 命令对我有用。它生成加密密钥

我实际上不得不在我的项目中添加一个.env文件,然后复制.env.example的内容,所以key:generate 会起作用。不确定为什么在我启动项目时没有创建 .env 文件。

只需运行这个命令:

php artisan key:generate
  1. 复制.env.example.env:

    cp -a .env.example .env

  2. 生成密钥:

    php artisan key:generate

  3. 才运行:

    php artisan serve

就我而言,我还需要重置缓存的配置文件:

php artisan key:generate
php artisan config:cache
php artisan key:generate
php artisan config:cache

对我有用,但必须在 Windows 上的命令提示符下完成。

在 PHPStorm 的终端内执行此操作无效。

您在处理 Laravel 应用程序时可能遇到的一个常见问题是异常:

RuntimeException No application encryption key has been specified.

当您下拉现有的 Laravel 应用程序时,您通常会 运行 进入此状态,您将 .env.example 文件复制到 .env 但不设置APP_KEY 变量的值。

在命令行中,发出以下 Artisan 命令以生成密钥:

php artisan key:generate

这将为 APP_KEY 生成随机密钥,完成 .env 编辑后,请在您的终端中输入此命令以清除缓存:php artisan config:cache

此外,如果您使用 PHP 的默认网络服务器(例如 php artisan serve),您需要 重新启动服务器 更改您的 .env 文件值。现在您将看不到此错误消息。

好吧,我再写一个说明,因为这里没有找到明确的答案。因此,如果您遇到此类问题,请按照以下步骤操作:

  1. 将项目根目录中的 copy/rename .env.example 文件重命名或 .env

You should not just create empty .env file, but fill it with content of .env.example.

  1. 在终端中转到项目根目录(不是 public 文件夹)和 运行

php artisan key:generate

  1. 如果一切正常,终端中的响应应该如下所示

Application key [base64:wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA=] set successfully.

  1. 现在只需复制密钥本身并将其作为 APP_KEY 的值粘贴到您的 .env 文件中。结果行应如下所示:

APP_KEY=base64:wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA=

  1. 在航站楼 运行

php artisan config:cache

就是这样。

您可以使用此命令生成应用程序加密密钥:

php artisan key:generate

然后,使用此命令创建缓存文件以加快配置加载速度:

php artisan config:cache

或者,使用此命令在 PHP 开发服务器上提供应用程序:

php artisan serve

就是这样!

按照以下步骤操作:

  1. php artisan key:generate
  2. php artisan config:cache
  3. php artisan serve

如果您git克隆了一些项目,那么通常会出现这种问题。

  1. 确保有 .env 个文件
  2. 运行 php artisan key:generate 然后它应该在 .env
  3. 中生成 APP_KEY
  4. 终于 运行 php artisan serve 它应该可以工作了。

当我手动将 Laravel 项目(例如 sites/oldname)的内容复制到 Mac 的新目录(例如, sites/newname)。由于我是手动拖放,它没有抓取隐藏文件,即“.env”。 当我更仔细地查看 sites/oldname 时,我看到了 .editorconfig、.env、.env.example、.gitatrributes、.styleci.yml 等

将隐藏文件复制到新目录后,错误消失了。

所以,"No Application Encryption Key Has Been Specified"是Laravel代表"your .env file is missing."

我必须在 运行 php artisan key:generate 之后使用 php artisan queue:restart 重新启动我的队列工作程序才能使工作正常进行。

在项目的根文件夹中打开命令提示符,然后 运行

php artisan key:generate

然后

php artisan config:cache

然后

如果您在获得键值后出现相同的错误,则只需从 .env 文件中复制 APP_KEY 值并将其粘贴到 config/app.php 并使用 'key' => 'YOUR KEY',

然后又是运行

php artisan config:cache

就是运行

php artisan key:generate

对我有用

有时如果一切都失败了使用这个:

转到:laravelProject/config/app.php

找到行:'key' => 并检查它指的是什么,

它可以是以下两者之一:

案例 1:env('APP_KEY') 案例 2:"somekeystring"

对于案例 1: 在你有 运行 cp -a .env.example .env 之后转到你的 .env 文件 输入一个随机字符串,例如 10101010101010101010101010101010

现在,运行 php artisan key:generate

您的密钥将自动更新。

对于案例 2: 设置一个随机字符串,例如 Key 10101010101010101010101010101010

的值

现在,运行 php artisan key:generate

您的密钥将自动更新。

我发现这里的大部分答案都不完整。如果其他人仍在寻找这个:

  1. 检查您的 .env 中是否有 APP_KEY=,如果没有则直接添加它而不添加值。
  2. 运行 这个命令:php artisan key:generate。这会将值填入您的 .env 文件中的 APP_KEY。
  3. 最后,运行 php artisan config:cache 以清除您的配置缓存并使用新的 APP_KEY值。

分 3 个步骤:

生成新密钥php artisan key:generate

清除配置 php artisan config:clear

更新缓存php artisan config:cache

在 Laravel v8.49.0(PHP v8.0.6)解决方案中遇到同样的问题

  1. 点击

Genrate app key

  1. 点击立即刷新

如果你没有 .env 文件然后 运行 下面的命令,否则跳过这个

cp .env.example .env

然后 运行 下面的 artisan 命令,它将为您的项目生成一个应用程序密钥:

php artisan key:generate

注意:您的 APP_KEY 在您的 .env 文件中。

如果 运行 宁 php artisan key:generate 问题没有解决,请检查你的 .env 文件。

搜索 APP_KEY=

如果不存在,请手动将其添加到 .env 文件并再次 运行 php artisan key:generate

之后您将在 .env 文件中看到生成的密钥。

复制该密钥并将其粘贴到 /config/app.php(也在那里搜索 APP_KEY)。你应该在 app.php 文件

中得到这样的结果

'key' => env('APP_KEY', 'base64:...'),

然后 运行 php artisan serve(您可能需要 运行 php artisan config:cache 在某些时候。不能 100% 确定什么时候)

只需运行命令phpartisankey:generate..问题仍然存在然后运行一个命令 php artisan config:cachephp artisan cache:clear ..

现在运行phpartisan发球