您的位置:首页 > 编程语言 > PHP开发

部署laravel报错:No supported encrypter found. The cipher and / or key length are invalid.

2018-01-19 11:58 801 查看

一、背景

把laravel项目部署到服务器上。访问时候,报错信息为:

No supported encrypter found. The cipher and / or key length are invalid.


原因:config/app.php中有一个关于秘钥类型的配置,默认设置为AES-256-CBC,也就是对应的秘钥必须是32个字符,而默认配置中写的是SomeRandomString,只有16个字符。当然我们可以通过将cipher设置为AES-128-CBC来解决这个问题。

二、解决方案

如果不想用SomeRandomString的话,也可以生成一个秘钥:

//指向下面的命令
php artisan key:generate
Application key [tFnLJ1Wo4647KlYxvCsjfMfI2VK5u2Rb] set successfully.


把生成的新秘钥替换到 SomeRandomString的位置上。

并且修改 AES-128-CBC 改为:AES-256-CBC

三、其他问题

1、权限问题

访问的时候,会经常出现文件权限不足的情况。特别是日志文件,缓存文件等。碰到这种问题,根据错误提示,修改文件的权限即可。

chmod 777 -R 文件名


2、.env文件问题

.env文件是非常私密的文件。我们在通过版本控制器,比如git开发的时候,这个文件不应该通过git传输。此时,我们需要设置git的忽略属性,忽略提交.env文件到码云

1)打开 .gitignore文件

2)文件中加上.env即可

//代表每次提交忽略.env文件
.env


相应的,我们在部署项目到服务器上的时候,是没有.env文件的。此时可以通过ftp上传本地.env到服务器。或者在服务器新建.env

//复制.env.example文件。重命名为.env
cp .env.example .env
//修改.env中的数据库配置,以及其他配置即可


end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐