web-dev-qa-db-fra.com

Problème d'installation de php7.2-mcrypt

Comme j'essaye de charger le module d'extension mcrypt à partir de la version PHP 7.2.X.
J'ai donc essayé d'utiliser la bibliothèque PECL compatible avec la version actuelle de PHP, afin de m'installer et de suivre le lien suivant: Installation de mcrypt sur PHP 7.2 pendant l'installation!

Voici les résultats obtenus après l'exécution de certaines commandes sur le terminal.

root@YYY:/var/www/html/orocrm# apt install php-pear
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libllvm4.0
Use 'Sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  php-pear
0 upgraded, 1 newly installed, 0 to remove and 14 not upgraded.
Need to get 285 kB of archives.
After this operation, 2,107 kB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main AMD64 php-pear all 1:1.10.5+submodules+notgz-1+ubuntu16.04.1+deb.sury.org+1 [285 kB]
Fetched 285 kB in 1s (230 kB/s)   
Selecting previously unselected package php-pear.
(Reading database ... 215503 files and directories currently installed.)
Preparing to unpack .../php-pear_1%3a1.10.5+submodules+notgz-1+ubuntu16.04.1+deb.sury.org+1_all.deb ...
Unpacking php-pear (1:1.10.5+submodules+notgz-1+ubuntu16.04.1+deb.sury.org+1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up php-pear (1:1.10.5+submodules+notgz-1+ubuntu16.04.1+deb.sury.org+1) ...

YYY@YYY:/var/www/html/orocrm$ Sudo apt-get -y install gcc make autoconf libc-dev pkg-config
[Sudo] password for YYY: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'libc6-dev' instead of 'libc-dev'
gcc is already the newest version (4:5.3.1-1ubuntu1).
make is already the newest version (4.1-6).
pkg-config is already the newest version (0.29.1-0ubuntu1).
libc6-dev is already the newest version (2.23-0ubuntu9).
The following package was automatically installed and is no longer required:
  libllvm4.0
Use 'Sudo apt autoremove' to remove it.
Suggested packages:
  autoconf-archive gnu-standards autoconf-doc libtool
The following NEW packages will be installed:
  autoconf automake autotools-dev libsigsegv2 m4
0 upgraded, 5 newly installed, 0 to remove and 14 not upgraded.
Need to get 1,079 kB of archives.
After this operation, 3,998 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu xenial/main AMD64 libsigsegv2 AMD64 2.10-4 [14.1 kB]
Get:2 http://in.archive.ubuntu.com/ubuntu xenial/main AMD64 m4 AMD64 1.4.17-5 [195 kB]
Get:3 http://in.archive.ubuntu.com/ubuntu xenial/main AMD64 autoconf all 2.69-9 [321 kB]
Get:4 http://in.archive.ubuntu.com/ubuntu xenial/main AMD64 autotools-dev all 20150820.1 [39.8 kB]
Get:5 http://in.archive.ubuntu.com/ubuntu xenial/main AMD64 automake all 1:1.15-4ubuntu1 [510 kB]
Fetched 1,079 kB in 2s (447 kB/s) 
Selecting previously unselected package libsigsegv2:AMD64.
(Reading database ... 215198 files and directories currently installed.)
Preparing to unpack .../libsigsegv2_2.10-4_AMD64.deb ...
Unpacking libsigsegv2:AMD64 (2.10-4) ...
Selecting previously unselected package m4.
Preparing to unpack .../archives/m4_1.4.17-5_AMD64.deb ...
Unpacking m4 (1.4.17-5) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../autoconf_2.69-9_all.deb ...
Unpacking autoconf (2.69-9) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../autotools-dev_20150820.1_all.deb ...
Unpacking autotools-dev (20150820.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../automake_1%3a1.15-4ubuntu1_all.deb ...
Unpacking automake (1:1.15-4ubuntu1) ...
Processing triggers for install-info (6.1.0.dfsg.1-5) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Setting up libsigsegv2:AMD64 (2.10-4) ...
Setting up m4 (1.4.17-5) ...
Setting up autoconf (2.69-9) ...
Setting up autotools-dev (20150820.1) ...
Setting up automake (1:1.15-4ubuntu1) ...
update-alternatives: using /usr/bin/automake-1.15 to provide /usr/bin/automake (automake) in auto mode
Processing triggers for libc-bin (2.23-0ubuntu9) ...

YYY@YYY:/var/www/html/orocrm$ Sudo apt-get -y install libmcrypt-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libllvm4.0
Use 'Sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  libmcrypt-dev
0 upgraded, 1 newly installed, 0 to remove and 14 not upgraded.
Need to get 83.7 kB of archives.
After this operation, 438 kB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu xenial/universe AMD64 libmcrypt-dev AMD64 2.5.8-3.3 [83.7 kB]
Fetched 83.7 kB in 0s (105 kB/s)       
Selecting previously unselected package libmcrypt-dev.
(Reading database ... 215484 files and directories currently installed.)
Preparing to unpack .../libmcrypt-dev_2.5.8-3.3_AMD64.deb ...
Unpacking libmcrypt-dev (2.5.8-3.3) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up libmcrypt-dev (2.5.8-3.3) ...

YYY@YYY:/var/www/html/orocrm$ Sudo pecl7.2-sp install --nodeps mcrypt-snapshot
Sudo: pecl7.2-sp: command not found

Comme j'obtiens ce type d'erreur en tant que pecl7.2-sp: commande introuvable

Dans la section documentation, il était clairement indiqué qu'il était devenu obsolète et ne serait plus disponible du point de vue de la sécurité - depuis lors, à partir de la version finale de PHP 7.2.X.

Cependant, certains projets ont besoin de ces dépendances pour pouvoir exécuter les fonctionnalités requises en fonction des besoins. Comment dois-je résoudre le problème ci-dessus?


MISE À JOUR:

TL; DR:

J'ai eu beaucoup de réponses des votes à la réponse postée. Les réponses doivent être triées en fonction du niveau d'architecture du système d'exploitation. Depuis que j'utilise le serveur partagé pour l'hébergement, il y a plus d'un projet résidant dessus et qui sont codés avec la version de PHP 5.XX, j'ai donc décidé de passer à PHP 7.1.X qui prend en charge l’extension mcrypt par défaut dans mon système d’exploitation basé sur Debian.

Comme je l'ai déjà mentionné dans le lien while Installation de mcrypt Extension sur PHP 7.2 , par la communauté Server Pilot. Ces peuples avaient indiqué qu'une nouvelle version de pecl-7.2 était disponible pour installer mcrypt sur PHP-7.2. Malheureusement, il s'est terminé par pecl7.2-sp: command not found parmi les commandes exécutées. Plus tard, la page du site Web a eu une mise à jour, donc les commandes là-bas ne correspondent pas aux commandes qui ont été essayées lors de l'exécution.

Enfin, quelles que soient les solutions qui conviennent à votre niveau d'architecture de système d'exploitation, n'hésitez pas!.

OU

Si les approches ci-dessous ne vous ont pas permis de résoudre la cause fondamentale.
Vous pouvez également choisir la version PHP 7.1.X qui prend en charge l'extension mcrypt par défaut

31
Nishanth ॐ

J'ai suivi les étapes ci-dessous pour installer mcrypt pour PHP7.2 en utilisant PECL.

  1. Installer PECL

apt-get install php-pecl

  1. Avant d'installer MCRYPT, vous devez installer libmcrypt

apt-get install libmcrypt-dev libreadline-dev

  1. Installer MCRYPT 1.0.1 en utilisant PECL

pecl installer mcrypt-1.0.1

  1. Après l'installation réussie

Vous devriez ajouter " extension = mcrypt.so " à php.ini

Veuillez commenter ci-dessous si vous avez besoin d'aide. :-)

40
Praneeth Nidarshan

Extension Mcrypt PECL

 Sudo apt-get -y install gcc make autoconf libc-dev pkg-config
 Sudo apt-get -y install libmcrypt-dev
 Sudo pecl install mcrypt-1.0.1

Quand on vous montre l'invite

 libmcrypt prefix? [autodetect] :

Appuyez sur [Entrée] pour détecter automatiquement.

Après avoir réussi l'installation de mcrypt trought pecl, vous devez ajouter l'extension mcrypt.so à php.ini.

La sortie ressemblera à ceci:

...
Build process completed successfully
Installing '/usr/lib/php/20170718/mcrypt.so'    ---->   this is our path to mcrypt extension lib
install ok: channel://pecl.php.net/mcrypt-1.0.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=mcrypt.so" to php.ini

Saisissez le chemin d'installation et ajoutez-le à la configuration php.ini de cli et Apache2.

Sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini"
Sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/Apache2/conf.d/mcrypt.ini"

Vérifiez que l'extension a été installée

Exécuter la commande:

php -i | grep "mcrypt"

La sortie ressemblera à ceci:

/etc/php/7.2/cli/conf.d/mcrypt.ini
Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*, mcrypt.*, mdecrypt.*
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
35
Shahid Neermunda

@ praneeth-nidarshan a principalement couvert toutes les étapes, à l'exception de certaines:

  • Vérifiez si vous avez installé pear (ou installez-le):

$ Sudo apt-get install php-pear

  • Installez, si ce n'est déjà fait, php7.2-dev, afin d'éviter l'erreur:

sh: phpize: non trouvé

ERREUR: "phpize" a échoué

$ Sudo apt-get install php7.2-dev

  • Installez mcrypt en utilisant pecl:

$ Sudo pecl install mcrypt-1.0.1

  • Ajoutez l'extension extension=mcrypt.so à votre fichier de configuration php.ini; si vous ne savez pas où il se trouve, cherchez avec:

$ Sudo php -i | grep 'Configuration File'

21
SimionZ
Sudo apt-get install php-pear php7.x-dev

x est votre version php comme 7.2 le php7.2-dev

apt-get install libmcrypt-dev libreadline-dev
pecl install mcrypt-1.0.1 

puis ajoutez "extension = mcrypt.so" dans "/etc/php/7.2/Apache2/php.ini"

ici, php.ini dépend de votre installation php et Apache utilise la version php.

3
hk'

Vous pouvez également installer la version 7.1 de mcrypt et créer un lien symbolique vers celle-ci:

Installez php7.1-mcrypt:

Sudo apt install php7.1-mcrypt

Créer un lien symbolique:

Sudo ln -s /etc/php/7.1/mods-available/mcrypt.ini /etc/php/7.2/mods-available

Après avoir activé mcrypt sur Sudo phpenmod mcrypt, il devient disponible.

1
Vadi