错误:未指定应用程序加密密钥。但它存在
Posted
技术标签:
【中文标题】错误:未指定应用程序加密密钥。但它存在【英文标题】:Error: No application encryption key has been specified. But it exist 【发布时间】:2019-03-29 20:36:09 【问题描述】:我有一个运行良好的 Laravel 应用程序,但是每当我查看日志文件时,都会出现数百个错误
production.ERROR:未指定应用程序加密密钥。 "exception":"[object] (RuntimeException(code: 0): 未指定应用程序加密密钥。
存在于日志文件中。 .env
文件中有一个密钥,我也尝试了php artisan key:generate
命令,但日志文件中仍然生成错误,对用户没有任何可见的错误。
此错误仅出现在生产服务器的日志文件中,而不出现在我的开发电脑中。
【问题讨论】:
你能显示你的环境的APP_KEY=
值吗?
APP_KEY=base64:g7Ta+C5qVWSkdni9/OUsoBNA9GgE3ANrtOquE+JfQv0=
@EsmatullahArifi 请注意,您永远不应该以这种方式公开分享您的应用密钥。
@GustavoStraube 没什么大不了的,在分享之前已经改过很多次了。我分享旧的只是为了证明我有正确的密钥。这不是真正的钥匙。
【参考方案1】:
php artisan key:generate
这将生成一个随机密钥,您必须重新启动服务器,您应该不会再看到错误消息。
运行以下命令清除缓存。
php artisan config:clear
php artisan config:cache
【讨论】:
我已经告诉过我使用了这个命令,但错误日志没有变化。我也尝试了最后两个命令。 @EsmatullahArifi,你确定你有.env
文件中的密钥吗?删除 .env.example
文件(如果存在)
是的,我确信 100%。这只发生在生产服务器中。在我自己的计算机中,日志中没有错误
您介意解释一下每个命令的作用吗?我遇到了同样的问题,即使我一直在运行 config:clear,错误仍然会显示。现在我还运行了 config:cache 并且我不想让它陷入困境,但它看起来成功了。【参考方案2】:
我遇到了同样的问题,我搜索了很多,但在 YouTube 视频评论中我找到了一个解决方案(我不确定这个解决方案是否好用)但对我有用 从 .env 文件中复制 APP_KEY 并在 app.php 文件中过去(位于:your_project\config) 你的 app.php 看起来像
.
.
.
‘key’ => env(‘APP_KEY’, ‘base64:insert key here’),
.
.
.
【讨论】:
【参考方案3】:我被这个问题困扰了一整天,最后发现这是 .env 文件的权限问题。通过scp上传的文件没有读取权限。
chmod -744 .env
希望这可以帮助遇到同样问题的其他人。
【讨论】:
【参考方案4】:检查 config/app.php 文件中的“key”变量,它应该是
'key' => env('APP_KEY'),
或
这样制作
'key' => "Your key",
然后重启你的php服务器。
【讨论】:
我检查了两个文件(.env 和 app.php)中的一切都正常【参考方案5】:试试这些命令:
composer install
php artisan key:generate
php artisan config:cache
【讨论】:
composer dump-autoload
怎么样?
你能发布你的config/app.php
吗?并隐藏敏感凭据。【参考方案6】:
在.env中添加空的APP_KEY=
如果不存在则不带值,然后在bootstrap/cache
中删除config.php
运行php artisan key:generate
【讨论】:
【参考方案7】:你需要做的就是
php artisan key:generate
参考
https://web-brackets.com/discussion/5/-solved-no-application-encryption-key-has-been-specified-
【讨论】:
【参考方案8】:如果您使用的是 ubuntu,请尝试授予权限: *chmod -R 777 **
查看link,希望对您有所帮助。
【讨论】:
【参考方案9】:是的,php artisan key:generate
将为您生成密钥。像这样在控制台中
$php artisan key:generate
Application key [base64:soAqqNW/Kk85OclhmCKXj+u4nZGF142gEZHEY0Y1NXA=] set successfully.
您需要复制此密钥并将其放入您的 .env 文件中的APP_KEY=
参数中。
【讨论】:
仍然存在错误消息。我已经应用了这一步。 @EsmatullahArifi 请检查您对项目文件的访问权限以上是关于错误:未指定应用程序加密密钥。但它存在的主要内容,如果未能解决你的问题,请参考以下文章
将 laravel 应用程序部署到共享主机并得到“未指定应用程序加密密钥”。错误
“php artisan key:generate”给出“未指定应用程序加密密钥”。错误