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

问题描述 投票:3回答:1

这是我一直在做的。

$ 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] :

我在php.ini中加入 "extension=mcrypt.so"。

那我就做

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.cominstall-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编译的。我在谷歌上找了一圈,但没有找到任何具体的信息。有什么好办法吗?谢谢!我一直在使用的是什么?

enter image description here

我一直在使用的是

php ubuntu-18.04 mcrypt
1个回答
1
投票

我已经找到了相同问题的解决方案。

在我的例子中 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] :

而问题依然存在,同时指定 20180731autodetect.

经过一番检查,我发现了问题所在:php cli运行php 7.3,所以我以为配置的很好,但两个 phpizephp-config 都是和php7.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 在安装正确的版本之前
  2. 如果你找不到 phpize7.3php-config7.3,尝试通过以下方式安装 apt-get install php7.3-dev
© www.soinside.com 2019 - 2024. All rights reserved.