php aes 秘钥长度460,配置-唯一受支持的密码是具有正确密钥长度的AES-128-CBC和AES-256-CBC。 laravel 5.3...

在安装Laravel 5.3后,遇到'唯一受支持的密码是AES-128-CBC和AES-256-CBC,带有正确密钥长度'的错误。解决方案包括:生成.env文件,运行`php artisan key:generate`,检查APP_KEY长度,清除配置缓存,确保.env文件权限和读取设置正确。

配置-唯一受支持的密码是具有正确密钥长度的AES-128-CBC和AES-256-CBC。 laravel 5.3

我使用composer安装了laravel 5.3的新副本,但始终收到此错误:

唯一受支持的密码是AES-128-CBC和AES-256-CBC,带有   正确的密钥长度。 即使我的app.php文件在配置目录中指定

'cipher'=>'AES-128-CBC',

11个解决方案

91 votes

您需要在应用程序文件夹上具有.env,然后运行:

$ php artisan key:generate

如果您没有来自.env.example的.env副本:

$ cp .env.example .env

Mugoma J. Okomba answered 2019-11-07T23:35:24Z

21 votes

在终端上运行以下命令:

PHP的工匠配置:清除

然后

PHP的工匠配置:缓存

Lee answered 2019-11-07T23:36:06Z

18 votes

运行php artisan config:cache。

做php artisan config:cache,

然后php artisan config:cache

一切都会开始!

Cengkuru Michael answered 2019-11-07T23:36:48Z

9 votes

如果您是第一次在该机器上运行Laravel项目,请确保您具有必要的要求。在项目目录中打开您的CMD /终端,或

cd to/your/project/dir

再次输入以下命令:

composer update

将您的.env.example更改为.env,并对该文件进行必要的更改,尤其是数据库配置,以避免db错误。然后

php artisan key:generate

每当我创建一个Laravel项目或从git克隆它时,这便解决了AES密码密钥长度问题。

Ashfak Md Shibli answered 2019-11-07T23:37:32Z

7 votes

好的,这基本上已经得到了回答,但是我发现了一些警告,它们已经被这两个中的一个或多个...

首先,就像已经说过的那样,您应该确保您具有有效的base64=文件,您可以通过复制现有的.env.example文件来在终端中完成此操作,如下所示:

base64=

然后,生成您的应用程序密钥

base64=

完成此操作后,请确保打开您的.env文件,并确保APP_KEY行看起来正确-这是我惊con的来源:

base64=

您会注意到密钥长度是错误的,由于某种未知的原因(可能是由于运行密钥:多次生成),其中有两个base64=密钥。 删除一个是我遇到的问题的解决方法,这似乎是Artisan / Laravel错误。

希望此答案对任何可能遇到相同问题或令人讨厌的错误的人有所帮助。

Rottingham answered 2019-11-07T23:38:39Z

7 votes

跟着这些步骤:

第1步:确保您的应用程序中包含.env文件。如果没有,请运行此命令php artisan config:cache

步骤2:现在,运行以下命令(php artisan config:cache)生成一个密钥,它将自动保存在.env文件中。

步骤3:执行php artisan config:cache

希望它将解决所有问题。

PHP Worm... answered 2019-11-07T23:39:29Z

5 votes

在.env文件中提供此密钥即可完成

APP_KEY=ABCDEF123ERD456EABCDEF123ERD456E

还是行不通?

如果您在cli上工作,请重新启动服务器。

需要解释吗?

好的,因为错误消息显示:

唯一受支持的密码是AES-128-CBC和AES-256-CBC,带有   正确的密钥长度。

config/app.php的密钥长度为16个字符,例如ABCDEF123ERD456E

config/app.php的密钥长度为32个字符,例如ABCDEF123ERD456EABCDEF123ERD456E

确保在config/app.php中将cipher设置为与上面两个密码相同的密码,并且密钥指向.env文件APP_KEY变量。 我的应用程序设置了AES-256-CBC密码,因此我给了它32个字符的密钥例如2604365573857857477637,之后一切正常。

fayz answered 2019-11-07T23:40:48Z

3 votes

如果未设置APP_KEY,请检查您的.env文件,这是问题所在,现在运行php artisan key:generate然后运行php artisan config:cache

它将在您的.env文件中设置一个APP_KEY密钥。

如果已设置APP_KEY,请运行相同的命令。 它将更新此密钥。

Imad Ullah answered 2019-11-07T23:41:27Z

0 votes

要检查的另一件事是,您的.env文件位于www-data组(或httpd或您的Web服务器组中的任何文件)中,并且该组具有读取权限。

在linux上,出现此错误时,我的权限如下所示:-rw-rw-r-- 1 kevin kevin 618 Mar 16 09:32 .env然后,我只是删除了所有的读取权限,并删除了组的写入权限。chmod 640 .env然后我将组更改为www-datachown kevin:www-data .env我的权限现在看起来像这样:-rw-r----- 1 kevin www-data 516 Mar 16 09:35 .env

Kevin van Zyl answered 2019-11-07T23:42:02Z

0 votes

如果artisan命令不起作用,并且您在命令行中遇到相同的错误,则意味着作曲家在获取所有文件方面做得不好,您应该删除供应商文件夹并再次运行composer update。

answered 2019-11-07T23:42:29Z

0 votes

如果您使用诸如cp -r ./* ./.env /var/www/market/之类的命令新创建一个laravel项目,然后使用cp命令将新的仓库部署到应用程序路径中,则可能会出现此问题。

我使用laravel 5.4

roofe@www:~/market$ php artisan --version

Laravel Framework 5.4.33

创建laravel项目时,可以看到创建密钥的日志,如下所示:

生成自动加载文件

Illuminate \ Foundation \ ComposerScripts :: postUpdate     生成优化的类加载器已编译的服务文件已被删除。     php artisan key:生成应用程序密钥[base64:exxxxxxxxxxxxxxxxxxxxxxxxxxx / k =]已成功设置。

默认情况下,config / app.php中的密钥config如下,它使用cp -r ./* ./.env /var/www/market/,创建项目时生成的密钥存储在.env文件中。 如果使用cp -r ./* /var/www/market/之类的命令,则.env文件将不会移动到应用程序路径。

cp -r ./* ./.env /var/www/market/

当将我的deploy命令更改为cp -r ./* ./.env /var/www/market/时,此问题消失了。

您也可以参考此github问题。

Kris Roofe answered 2019-11-07T23:43:51Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值