我正在为我的所有项目使用Laravel 5.0.昨天,我已经将我的PHP版本从7.0.x更新到版本7.1.0.更新后,我尝试打开我的Laravel项目并看到以下消息:
ErrorException in Encrypter.php line 303:
Function mcrypt_get_iv_size() is deprecated
in Encrypter.php line 303
at HandleExceptions->handleError('8192', 'Function mcrypt_get_iv_size() is deprecated', 'C:\wamp64\www\project1\vendor\laravel\framework\src\Illuminate\Encryption\Encrypter.php', '303', array()) in Encrypter.php line 303
Run Code Online (Sandbox Code Playgroud)
我可以知道如何解决这个问题?使用Laravel 5.3解决问题了吗?我不想将我的Laravel更新为5.3,因为它是一个庞大的项目,需要很长时间才能更新.这两个版本之间存在太多差异.需要修改许多代码.
有没有更简单的方法来解决这个问题?
Ben*_*ohl 28
出现此错误的原因是AES-256-CBC您的config/app.php文件中除了作为密码之外还有其他内容依赖于mcrypt扩展.也许你正在使用MCRYPT_RIJNDAEL_256或MCRYPT_RIJNDAEL_128?
如果没有完整的Laravel升级,你可以做的最好的事情就是安装传统的加密器并使用它来更新你所有的加密数据,使用AES-256-CBC密码,这是自Laravel 5.1以来的默认密码,我相信.完成此操作后,您应该可以将PHP 7.1用于Laravel应用程序.
小智 23
在config/app.php配置文件中,您应该将密码更新为"AES-256-CBC"并将密钥设置为随机的32字节字符串,该字符串可以使用安全生成php artisan key:generate
Deb*_*sad 18
将其添加到以下的开头config/app.php:
error_reporting(E_ALL ^ E_DEPRECATED);
来源:https://stackoverflow.com/a/42515505/225790