Laravel 5.2:应用程序密钥的 Artisan 密钥生成无法正常工作

Posted

技术标签:

【中文标题】Laravel 5.2:应用程序密钥的 Artisan 密钥生成无法正常工作【英文标题】:Laravel 5.2: Artisan Key Generation for Application Key not working properly 【发布时间】:2016-07-17 10:54:28 【问题描述】:

我尝试在 CentOS 7 上设置 Laravel 5.2。当我尝试使用控制台命令 php artisan key:generate 生成应用程序密钥时,应用程序密钥的格式与预期不符(超过 32 个字符,包括 base64 编码字符串,因此在配置文件中不起作用。config/app.php 中的密码是 AES-256-CBC。

示例输出:

[base64:MTs0+UZ0tHljmRcFP1RpZ06aYpc1N1L3rqAx1FT+yqk=]

服务器应该安装了所有必需的扩展。

【问题讨论】:

【参考方案1】:

这是最近对密钥生成器所做的更改。请参阅this commit 了解更多信息。

您是否收到说明密钥无效的错误消息?

【讨论】:

控制台命令 php artisan key:generate 不会产生错误,并且密钥会自动添加到 .env 文件中。尽管如此,如果我访问环境,我会得到: EncryptionServiceProvider.php 第 45 行中的 RuntimeException:未找到支持的加密器。密码和/或密钥长度无效。 你的密码设置是什么,应该是AES-256-CBC。当密码设置不正确或存储不可写时,我会遇到类似的错误【参考方案2】:

我不知道你是否解决了这个问题。我也是这样解决的。

在 config/app.php 中,从键中删除 env() 及其括号。

例如。 'key' => env('your_key')

应该改成..

'key' => 'your_key'

我希望这对您和其他人有所帮助。

【讨论】:

【参考方案3】:

把它放在 appServiceProvider.php 中

use Illuminate\Support\Facades\Schema;
public function boot()

    Schema::defaultStringLength(191);

【讨论】:

以上是关于Laravel 5.2:应用程序密钥的 Artisan 密钥生成无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

从其他域登录 laravel 5.2

硒和 Laravel 5.2

允许用户在 laravel 5.2 中进行登录后调用

使用 nginx 在 laravel forge 上集成 Laravel 5.2 wordpress

无法在 laravel 5.2 中查询 json 数据

错误:自动覆盖加载(引导程序)(laravel 5.2)