如何安装/激活PHP扩展插件ext-mcrypt

如何安装/激活PHP扩展插件ext-mcrypt,php,php-extension,php-7.2,ubuntu-18.04,Php,Php Extension,Php 7.2,Ubuntu 18.04,我正在安装一个新的kubuntu系统18.04,它默认使用php7.2 为当前软件项目安装的composer向我显示以下错误消息: 系统中缺少请求的PHP扩展插件ext mcrypt*。 安装或启用PHP的mcrypt扩展 除此之外,没有可用的php mcrypt,其他类似的文章也没有帮助,因为不存在模拟的php mcrypt或php7 mcrypt 如何获得满足我要求的设置 sudo apt-get install php7.2-ext-mcrypt 找不到安装候选项 PHP7.1和7.2之

我正在安装一个新的kubuntu系统18.04,它默认使用php7.2

为当前软件项目安装的composer向我显示以下错误消息:

系统中缺少请求的PHP扩展插件ext mcrypt*。 安装或启用PHP的mcrypt扩展

除此之外,没有可用的php mcrypt,其他类似的文章也没有帮助,因为不存在模拟的php mcrypt或php7 mcrypt

如何获得满足我要求的设置

sudo apt-get install php7.2-ext-mcrypt
找不到安装候选项

PHP7.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

因此,mcrypt似乎已被php7.2弃用

因此,我将不得不在我的软件中替换它,或者遵循以下方法绕过它:

首先检查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扩展包含在PHP5.4到PHP7.1中。它已从PHP7.2中删除,并移动到一个非官方的PECL扩展,因为不再维护mcrypt库

对于PHP7.2+,PHP使用libnaid作为加密库。ServerPilot使用正式的libnaude扩展构建PHP7.2+。新的PHP代码应该使用libnaid而不是mcrypt编写

如何在PHP 7.2或7.3上安装mcrypt:

mcrypt已被放弃,PHP不再支持它。不能在当前版本的PHP中安装mcrypt。您必须将代码迁移到更新的enctyption库,如openssl或libsodiumDo,我理解正确。对于openssl,我必须使用openssl编译一个php版本,而libnaid已经是PHP7.2的一部分了?从理论上讲,openSSL支持必须在中编译,但在实践中,这种情况非常常见,因为它是一个广泛使用的库。据我所知,在PHP7.2中LibNade始终可用,你是对的。幸运的是,它已经在我使用的版本中编译。LibNadium在1.0.16版“PHP致命错误:第0行未知中的Nadium_init()”中有一个恼人的错误,所以我现在切换到openssl。此外,钠在IMHO中也没有很好的记录。不要试图绕过它!PHP7中删除了mcrypt支持的原因非常充分,也就是说它已经好几年没有使用了,并且包含大量已知的未修补漏洞。如果您设法将mcrypt支持破解到您的PHP安装中,您将基本上安装了一个无法修复的坏加密库。请考虑迁移您的代码。答案写得很好
php-pear
应该已经安装在Ubuntu 18.04上了。