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?
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
J'ai suivi les étapes ci-dessous pour installer mcrypt pour PHP7.2 en utilisant PECL.
apt-get install php-pecl
apt-get install libmcrypt-dev libreadline-dev
pecl installer mcrypt-1.0.1
Vous devriez ajouter " extension = mcrypt.so " à php.ini
Veuillez commenter ci-dessous si vous avez besoin d'aide. :-)
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
@ praneeth-nidarshan a principalement couvert toutes les étapes, à l'exception de certaines:
$ Sudo apt-get install php-pear
sh: phpize: non trouvé
ERREUR: "phpize" a échoué
$ Sudo apt-get install php7.2-dev
$ Sudo pecl install mcrypt-1.0.1
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'
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.
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.