Установка Mcrypt в PHP 7.2
Столкнулся с необходимостью быстро поднять Magento2 на домашнем компе. Одной из требований M2 это наличие Mcrypt модуля в PHP. К сожалению, его выпилили в PHP 7.2, переконфигурировать все домашнее окружения, у меня не было желания, поэтому я решил погуглить решение и нашел его..
В magento ошибка выглядит как-то так
1 2 3 4 5 |
[Exception] Warning: Use of undefined constant MCRYPT_BLOWFISH - assumed 'MCRYPT_BLOWFISH' (this will throw an Error in a future version of PHP) in /public_html/setup/src/Magento/Setup/Module/Di/Code/Scanner/PhpScanner.php on line 56 |
В 99% случаев не объявленая константа MCRYPT_BLOWFISH означает отсутствие модуля mcrypt.
Проверяем, что модуль не установлен
1 2 3 |
php -m | grep mcrypt |
Результат: если модуля нет ничего не выведет
Проверяем версию php
1 2 3 |
php -v |
или через скрипт
1 2 3 4 5 |
<?php phpinfo(); |
результат
1 2 3 4 5 6 |
PHP 7.2.17-1+ubuntu18.04.1+deb.sury.org+3 (cli) (built: Apr 10 2019 10:50:57) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.17-1+ubuntu18.04.1+deb.sury.org+3, Copyright (c) 1999-2018, by Zend Technologies |
Если у вас версия 7.0 или ниже, то просто воспользуйтесь командой
1 2 3 |
apt-get install php-mcrypt |
в моем случае 7.2.
Выполянем
1 2 3 4 5 6 |
sudo apt-get -y install gcc make autoconf libc-dev pkg-config sudo apt-get -y install php7.2-dev sudo apt-get -y install libmcrypt-dev sudo pecl install mcrypt-1.0.1 |
далее создаем ini файл, в папке модулей, в моем случае это /etc/php/7.2/mods-available/
1 2 3 |
mcedit /etc/php/7.2/mods-available/mcrypt.ini |
с таким содержимым
1 2 3 4 5 |
; configuration for php mcrypt module ; priority=20 extension=mcrypt.so |
Далее, или вручную или через phpenmod добавляем ссылку на этот конфиг файл в директории откуда читаются конфиги
1 2 3 |
phpenmod mcrypt |
в моем случае это команда создает ссылки в этих директориях
1 2 3 4 |
/etc/php/7.2/apache2/conf.d/@20-mcrypt.ini /etc/php/7.2/cli/conf.d/@20-mcrypt.ini |
теперь рестартуем apache (и/или php-fpm) и проверяем
1 2 3 |
php -m | grep mcrypt |
Результат: должна вывестись надпись mcrypt
Author: | Tags: /
| Rating:
2 comments.
Write a comment