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 密钥生成无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章