2015-12-14 185 views
0

很多人都有同样的问题。但是,我的问题是不同的,这不是StackOverFlow上的任何重复问题。找不到支持的加密器。密码和/或密钥长度无效

My Laravel 5.1应用程序在我的本地主机上运行良好。但是,当我在生产服务器上设置它时,我得到的第一个错误是找不到支持的加密器。但是,如果我运行php artisan key:generate那么一切都很好。但这是我不想做的,因为其他人可能没有使用命令行界面的技能。所以,我将'cipher' => 'AES-256-CBC',更换为MCRYPT_RIJNDAEL_128,其中config/app.php解决了这个问题。但是,我不知道这样做的消极方式是什么。有没有建议我以标准的方式实现我想要的目标?

+1

你只需要运行'php artisan key:generate'一次,只有当你设置一个新的环境。我不知道我是否会关注其他人不知道如何使用CLI的问题。你能否让你的问题更清楚一点? –

+0

我只想给应用程序文件夹我想要的人,他们只能将其上传到他们的服务器,一切都应该需要很好去。这就是我想要的。 –

+0

嗯......我明白了。您是否在使用'git'或其他SCM来管理这个项目? –

回答

2

需要手动调用php artisan key:generate的唯一时间是将此项目移动到新环境,例如开发或生产服务器。你必须这样做的原因是,这是显示的默认.gitignore文件的内容:

/vendor 
/node_modules 
.env 

这个项目被推向了一个新的环境的副本将不包括.env,它具有伴随着钥匙APP_KEY=YourRandomKeyDB_PASSWORD,MAIL_PASSWORD等。基本上所有的东西,你会保持私密,并允许新的环境管理器通过编辑.env.example文件推送配置。

如果你想用你的项目的每一个副本推送这些配置变量,你可以,但我会高度推荐这个。

如果您移除了.gitignore文件.env,该.env文件将被推向资源库,并列入任何git clone编项目。

从本质上讲,你的项目的每一个副本也有同样的APP_KEY变量,但它也暴露你的DB_PASSWORD,在.env发现的所有其他敏感数据一起。基本上,有一种方法可以完成您使用Laravel获得的安全级别,但为了实现这一目标,您需要将安全性从窗口中移除...

希望能够提供一些见解。

+2

我得到了同样的错误,尝试了一切原始海报,但它没有解决问题。我在每台服务器上单独处理所有配置文件和.env变量,并使用'php artisan key:generate'来代替.env和config/app.php,但仍然无法为我解决它。你会碰巧有其他想法吗?我正在亚马逊EC2实例上运行Ubuntu,并且我一直陷在这个问题上 –

相关问题