Проблема при установке mcrypt на PHP 7.3.13 Ubuntu - PullRequest
3 голосов
/ 07 февраля 2020

Это то, чем я занимаюсь.

$ 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 модуля. Я гуглил, но не смог найти ничего конкретного c. Любые идеи? Спасибо!

enter image description here

Что я использую

1 Ответ

0 голосов
/ 23 апреля 2020

Я нашел решение той же проблемы.

В моем случае 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] :

, и проблема не устраняется, также указав 20180731 в autodetect.

После некоторых проверок я выяснил проблему: php cli работает php 7.3, поэтому я подумал, что он хорошо настроен, но и phpize, и php-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 перед установкой нужной версии
  2. , если вы не найдете phpize7.3 и php-config7.3, попробуйте установить через apt-get install php7.3-dev
...