【问题标题】:"No application encryption key has been specified" error even after generating key in laravel?即使在laravel中生成密钥后,“没有指定应用程序加密密钥”错误?
【发布时间】:2020-12-10 13:17:34
【问题描述】:

我从远程存储库克隆了一个我正在处理的 laravel 项目。克隆它后,我运行了所有常用命令,例如composer install, passport:install, key:generate and migrate。现在,当我尝试发出登录请求或浏览到应用程序 url 时,我得到了

"No Application Encryption key has been specified". 

我已多次生成密钥并确认密钥是否存在于 .env 文件中。即使一切似乎都井井有条,但我仍然收到错误消息。我还重新启动了应用程序服务器以及 apache 服务器,希望它能够解决,但它没有。我不知道现在该怎么办。有什么建议吗?

【问题讨论】:

  • 这能回答你的问题吗? No Application Encryption Key Has Been Specified
  • 您在使用php artisan serve 吗?如果是,请停止它并再次运行它。每次修改env文件后,需要重启php artisan serve
  • @albus_severus 不,它没有。所有的答案都是关于我已经完成的 key:generate 和 config:clear 。
  • @SumanB 每次生成问题中提到的新密钥时,我都会重新启动服务器,但我仍然面临问题。
  • 你在使用 Docker 吗?

标签: php laravel apache


【解决方案1】:

使用这些命令:

php artisan key:generate
php artisan config:cache

并确保在config/app.php 中的密钥应该是这样的:

'key' => env('APP_KEY'),

env() 助手在 .env 文件中按键搜索 key=value 对。

你想做的是这样的:

//in config/app.php
'key' => env(APP_KEY);

//in .env 
APP_KEY=base64:JjrFWC+TGnySLsldPXA*****Hpyjh8UuoPMt6yx2gJ8U=

【讨论】:

  • 我已经完成了你提到的所有事情,但没有成功..
  • @sammanadhikari 如何在 config/app.php 中调用密钥?
【解决方案2】:

有时应用程序无法读取 .env 文件并导致此问题。在这些情况下,重新生成密钥将无济于事。您可以尝试这些解决方案,我相信其中之一肯定会对您有所帮助。

解决方案 #1:chmod -744 .env

解决方案 #2:编辑 config.php 并直接在其中设置密钥,如下所示:

'key' => 'base64:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=',

修改配置文件后,您可能需要执行 php artisan config:cache

【讨论】:

    【解决方案3】:

    我相信到目前为止的答案为这个问题提供了解决方案。 但是如果你在 heroku 上部署你的 laravel 应用程序,很可能如果你在 heroku 上使用github deploy 选项,那么当你部署你的应用程序或打开已部署的应用程序 url 时,你很可能会遇到这种错误响应。

    所以如果你通过 heroku 得到这个错误RuntimeException No application encryption key has been specified

    解决方案

    在您的 heroku 仪表板上,导航到 settings 然后点击 Reveal Configs Vars 转到您的 laravel 本地文件夹,打开 .env 文件并复制 API_KEY 值。它看起来像这样API_KEY=base64:HDDID98384JD8JD8498W

    复制 API KEY,导航到您的 heroku 仪表板,在 reveal configs var 部分,在 key 表单字段中键入 API_KEY,然后将复制的键值粘贴到 value 表单字段中。

    保存并刷新您的应用。那应该可以解决它!

    【讨论】:

      【解决方案4】:

      在项目的根文件夹中打开命令提示符并运行以下命令:

      php artisan key:generate
      

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

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

      【讨论】:

        猜你喜欢
        • 2017-12-04
        • 2019-03-29
        • 2015-09-13
        • 2021-06-26
        • 2012-12-23
        • 2021-10-24
        • 1970-01-01
        • 2021-04-11
        相关资源
        最近更新 更多