- Если делать "в лоб", то получим ошибку:
# pecl install mcrypt-1.0.1 Cannot load Zend OPcache - it was already loaded WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update pecl/mcrypt requires PHP (version >= 7.2.0, version <= 7.3.0, excluded versions: 7.3.0), installed version is 7.1.20-1+ubuntu16.04.1+deb.sury.org+1 No valid packages found install failed
- Поэтому устанавливаем из исходников
# cd ~/ # wget http://pecl.php.net/get/mcrypt-1.0.1.tgz # tar xf mcrypt-1.0.1.tgz # cd ~/mcrypt-1.0.1 # phpize7.2 # ./configure --with-php-config=/usr/bin/php-config7.2 # make clean # make # make install
Если в процессе выполнения команды phpize7.2 получаем ошибку "bash: phpize7.2: command not found", то делаем следующее:# apt-get install php7.2-dev
Если в процессе выполнения configure получаем ошибку "configure: error: mcrypt.h not found. Please reinstall libmcrypt.", то делаем следующее:# apt-get install libmcrypt-dev
Далее:
Создаем файл /etc/php/7.2/fpm/conf.d/20-mcrypt.ini с вот таким содержимым:extension=mcrypt.so
Копируем этот файл в /etc/php/7.2/fpm/conf.d/ (если mcrypt нужен в cli)
Перезапускаем php7.2-fpm# systemctl restart php7.2-fpm # systemctl status php7.2-fpm
Статья опубликована: 2018-08-21 17:56:18
Последние правки: 2019-07-08 12:01:04
Задача нетривиальна - поставить mcrypt extension для PHP 7.2, установленного на Ubuntu 16.04 сервере с живущим там и считающим себя главным PHP 7.1.