很多人都遇到了同样的问题。但是,我的问题在这里有所不同,这不是StackOverFlow上的任何重复问题。
我的Laravel 5.1应用程序在我的localhost上正常运行。但是,当我在生产服务器上设置它时,我得到的第一个错误是找不到支持的加密器。但是,如果我运行php artisan key:generate
那么一切都很好。但这是我不想做的事情,因为其他人可能没有使用命令行界面的技能。因此,我在'cipher' => 'AES-256-CBC',
中将MCRYPT_RIJNDAEL_128
替换为config/app.php
,解决了这个问题。但是,我不知道这样做的消极方式是什么。是否有任何建议要求我以标准方式实现我想要的目标?
答案 0 :(得分:2)
需要手动调用php artisan key:generate
的唯一时间是将此项目移动到新环境(例如开发服务器或生产服务器)。您必须这样做的原因是显示默认.gitignore
文件的内容:
/vendor
/node_modules
.env
此项目推送到新环境的副本不会包含.env
,其中包含密钥APP_KEY=YourRandomKey
以及DB_PASSWORD
,MAIL_PASSWORD
等。基本上所有你会保密的东西,并允许新环境管理员通过编辑 推送的.env.example
文件进行配置。
如果您想将这些配置变量与项目的每个副本一起推送,您可以,但我强烈建议不要这样做。
如果您从.env
文件中删除了.gitignore
,.env
文件将被推送到您的存储库并包含在任何git clone
项目中。
基本上,项目的每个副本都会有相同的APP_KEY
变量,但它也会泄露您的DB_PASSWORD
以及.env
中的所有其他敏感数据。基本上,有一种方法可以实现您使用Laravel获得的安全级别,但为了实现这一点,您可以将该安全性抛到窗外......
希望这能提供一些见解。