在PHP 7.3.13 Ubuntu上安装mcrypt时出现问题

wyyhbhjk  于 10个月前  发布在  PHP
关注(0)|答案(1)|浏览(78)

这就是我一直在做的。

$ sudo apt-get -y install gcc make autoconf libc-dev pkg-config
$ sudo apt-get -y install libmcrypt-de
$ sudo pecl install mcrypt-1.0.2
> libmcrypt prefix? [autodetect] :

字符串
我正在添加“extension=mcrypt.so”到php.ini
那我知道了

sudo bash -c "echo extension=/usr/lib/php/20190902/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini"
sudo bash -c "echo extension=/usr/lib/php/20190902/mcrypt.so > /etc/php/7.2/apache2/conf.d/mcrypt.ini"


我遵循了这些指令:https://lukasmestan.com/install-mcrypt-extension-in-php7-2/
最后,我检查php -i | grep mcrypt
这是我的输出:

PHP Warning:  PHP Startup: mcrypt: Unable to initialize module
Module compiled with module API=20190902
PHP    compiled with module API=20180731
These options need to match
 in Unknown on line 0
/etc/php/7.3/cli/conf.d/20-mcrypt.ini,
/etc/php/7.3/cli/conf.d/mcrypt.ini


我已经检查了20-mcrypt.ini和mcrypt.ini,它们看起来完全一样。但是我的PHP似乎是用错误的模块API编译的。我在谷歌上搜索了一下,但没有找到任何具体的东西。有什么想法吗谢谢!
x1c 0d1x的数据
我一直在用的

qacovj5a

qacovj5a1#

我找到了解决同样问题的方法。
在我的示例中,pecl install mcrypt-1.0.2显示如下内容

...
running: phpize
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902
libmcrypt prefix? [autodetect] :

字符串
并且在autodetect中也存在指定20180731的问题。
经过一番检查,我发现了问题所在:php cli运行php 7.3,所以我认为配置很好,但phpizephp-config都链接到php 7.4!
所以你只需要启动以下内容:

sudo update-alternatives --set phpize /usr/bin/phpize7.3
sudo update-alternatives --set php /usr/bin/php7.3
sudo update-alternatives --set php-config /usr/bin/php-config7.3


重新安装了最新版本

pecl install mcrypt-1.0.2


就这样
注意事项:
1.最终运行pecl uninstall mcrypt之前安装正确的版本
1.如果找不到phpize7.3php-config7.3,请尝试通过apt-get install php7.3-dev安装

相关问题