我正在安装一个新的kubuntu系统18.04,默认使用php7.2
我当前软件项目的作曲家安装让我发现了以下错误消息:
系统中缺少所请求的PHP扩展名ext-mcrypt *。 安装或启用PHP的mcrypt扩展。
除了之前没有php-mcrypt可用,而像http://aryo.lecture.ub.ac.id/easy-install-php-mcrypt-extension-on-ubuntu-linux/这样的其他文章没有帮助,因为模拟的php-mcrypt或php7-mcrypt不存在。
如何获得满足我要求的设置?
sudo apt-get install php7.2-ext-mcrypt
找不到安装候选者。
php 7.1和7.2之间有区别吗?
毫不奇怪,这也不能解决问题:
$ sudo phpenmod mcrypt
WARNING: Module mcrypt ini file doesn't exist under /etc/php/7.2/mods-available
WARNING: Module mcrypt ini file doesn't exist under /etc/php/7.2/mods-available
答案 0 :(得分:3)
首先检查mcrypt PHP模块是否存在:
$ php -m | grep mcrypt
要安装mcrypt PHP模块,我们首先需要满足以下先决条件:
sudo apt install php-dev libmcrypt-dev php-pear
现在,我们准备在Ubuntu 18.04系统上安装mcrypt PHP模块:
$ sudo pecl channel-update pecl.php.net
$ sudo pecl install mcrypt-1.0.1
打开/etc/php/7.2/cli/php.ini文件并插入:
extension=mcrypt.so
全部完成。成功后,检查mcrypt PHP模块是否存在应产生以下输出:
$ php -m | grep mcrypt
mcrypt
mcrypt扩展包含在PHP 5.4到PHP 7.1中。它已从PHP 7.2中删除,并移至非官方的PECL扩展中,因为不再维护mcrypt库。
对于PHP 7.2 +,PHP使用libsodium作为加密库。 ServerPilot构建带有官方libsodium扩展名的PHP 7.2+。应该编写新的PHP代码以使用libsodium而不是mcrypt。
如何在PHP 7.2或7.3上安装mcrypt: https://serverpilot.io/docs/how-to-install-the-php-mcrypt-extension
答案 1 :(得分:0)
所以看起来mcrypt已经被php7.2弃用了
所以我要么必须在我的软件中替换它,要么按照例如这个如何规避它: https://serverpilot.io/community/articles/how-to-install-the-php-mcrypt-extension.html