我试图像这样使用Artisan命令:

php artisan serve

它显示:

Laravel开发服务器启动:http://127.0.0.1:8000

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

RuntimeException未指定应用加密密钥。

这个问题的原因是什么,如何解决?

我使用Laravel框架5.5-dev。


当前回答

好的,我再写一条指令,因为这里没有找到明确的答案。所以如果你遇到这样的问题,请遵循以下方法:

重命名或复制/重命名.env。项目根目录中的示例文件。env。

你不应该只是创建空的.env文件,而是用 environment .example的内容。

在终端中进入项目根目录(非公用文件夹)并运行

PHP工匠键:生成

如果一切正常,终端中的响应应该是这样的

应用密钥[base64:wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA=] 已成功设置。

现在只需复制key本身并将其粘贴到您的.env文件中作为APP_KEY的值。结果行应该是这样的:

APP_KEY=base64:wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA=

终端运行

PHP工匠配置:缓存

就是这样。

其他回答

尝试设置正确的文件权限

chmod -R 777 storage/
chmod 777 bootstrap/cache/

来自Encryption - Laravel - PHP框架的Web工匠:

在使用Laravel的加密器之前,你必须在你的 Config /app.php配置文件。你应该使用 PHP工匠密钥:生成命令生成此密钥

来自Encryption - Laravel - PHP框架的Web工匠:

"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来清除和重置配置。

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

cp .env.example .env

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

php artisan key:generate

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

实际上,我必须在我的项目中添加一个。env文件,然后复制。env的内容。示例,这样键:generate就可以工作。不确定为什么启动项目时没有创建.env文件。

你在开发Laravel应用程序时可能遇到的一个常见问题是:

RuntimeException未指定应用加密密钥。

当您下拉一个现有的Laravel应用程序时,您经常会遇到这种情况。示例文件到.env,但不要为APP_KEY变量设置值。

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

php artisan key:generate

这将为APP_KEY生成一个随机键,完成。env编辑后,请在您的终端输入此命令以清除cache:php artisan config:cache

此外,如果您使用PHP的默认web服务器(如。PHP artisan serve)你需要重新启动服务器改变你的.env文件的值。现在您将无法看到此错误消息。