有时(大约每20个请求)我收到此错误。但下一个(下一秒),相同的请求,没问题。我不知道为什么第一个失败了。有时我会得到另一个错误:
找不到支持的加密器。密码和/或密钥长度无效。
我的.env
数据库参数很好。
我使用php artisan key:generate
此密钥位于.env
密钥
APP_KEY
文件中
我的config/app.php
有一个键'key' => env('APP_KEY'), 'cipher' => 'AES-256-CBC'
有没有人知道如何发生这种情况?
答案 0 :(得分:7)
只需使用
来缓存您的配置php artisan config:cache
设置.env
文件后,别忘了每次执行此操作。
答案 1 :(得分:3)
过去几天我遇到了同样的问题,我认为我解决了这个问题:
.env中的设置并不总是出于某种原因使用,有时候Laravel只会使用config / app.php和config / database.php中的默认设置。
配置/ app.php:
'key' => env('APP_KEY', 'SomeRandomString'),
'cipher' => 'AES-256-CBC',
将'SomeRandomString'更改为.env
中生成的密钥配置/ database.php中
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
从.env将localhost,数据库,用户名,密码更改为您的实际设置。如果您使用其他数据库,则此示例适用于MySQL,而是更改这些变量。
可能有一个更好的解决方案(更安全?)但是到目前为止这一点仍然不会出现错误。
答案 2 :(得分:0)
我刚刚合并了git的更改而没有更新.env
文件。
基本上,此人更改了代码,因此应用程序需要env文件中的以下密钥:
DB_SOME_DATABASE=something
DB_SOME_USERNAME=something
DB_SOME_PASSWORD=something
但是我仍然有旧的凭据,因此它“看起来正确”,但是Laravel抛出了这个错误,使它看起来好像没有使用env文件。
这表明,如果您看到此内容,请仔细检查.env
文件中是否有拼写错误,这会导致Laravel尝试使用默认值(即:查看文件夹{{1 }}中看到config/database.php
)。
这可能不是错字。可能有人添加了数据库连接,也许您尚未更新'forge'
文件。
答案 3 :(得分:0)
你必须删除 bootstrap/cache/config.php