2

我在 laravel 中有新的我已经在我的系统中设置了 laravel 5.5 并安装了它但是当我开始使用 php artisan migrate 它给出错误

Mcrypt PHP extension required

但是当我在浏览器上运行 phpinfo 时,有 mcrypt enable 但它显示

PHP Version 7.1.12

但是当我运行终端时

php -v

它的结果

PHP 7.2.2-3+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Feb 6 2018 16:11:23) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.2-3+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies 我认为 Mycrypt 没有安装在 cli php 中我该如何修复它并制作一个 laravel 项目

提前致谢

4

2 回答 2

2

正如这里提到的:https ://stackoverflow.com/a/37761637/8489245

您可以尝试使用以下方式安装它:

sudo apt-get update
sudo apt-get install mcrypt php7.2-mcrypt
sudo apt-get upgrade

如果 php7.2-mycrypt 不存在,您可以尝试返回 7-0 版本的 php 并安装:

sudo apt-get install mcrypt php7.0-mcrypt

希望对你有帮助!

于 2018-02-17T18:07:55.283 回答
2

mcrypt在 php7.1 中已弃用并在 7.2 中删除。

来自 Laravel 5.1 的发行说明:

在以前的 Laravel 版本中,加密是由 mcrypt PHP 扩展处理的。但是,从 Laravel 5.1 开始,加密由 openssl 扩展处理,该扩展得到更积极的维护。

所以你应该使用openssl_encryptlibsodium或其他支持的库。

当前启用的模块:

$ php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
fileinfo
filter
ftp
gd
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
soap
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache
于 2018-02-18T03:14:04.770 回答