Главная
Главная Руководства Ubuntu › php 7.2 - pecl install mcrypt-1.0.1 (Ubuntu)



Автор:

Статья опубликована: 2018-08-21 17:56:18
Последние правки: 2019-07-08 12:01:04

Задача нетривиальна - поставить mcrypt extension для PHP 7.2, установленного на Ubuntu 16.04 сервере с живущим там и считающим себя главным PHP 7.1.

  • Если делать "в лоб", то получим ошибку:
    # 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