39 votes

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

Comme je suis en train de charger l'extension mcrypt module de PHP 7.2.X version.
J'ai donc essayé de faire usage de PECL bibliothèque qui est compatible avec la version actuelle de mon PHP, afin d'obtenir installé et suivi ce lien: L'installation de mcrypt sur PHP 7.2 lors de l'installation!

Ces ci-dessous sont le résultat obtenu 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 je reçois ce type d'Erreur comme pecl7.2-sp: command not found

À partir de la section de la documentation, il a été clairement indiqué qu'il avait été déprécié et ne seront plus disponibles à partir du point de vue sécurité - depuis, à partir de la version de PHP 7.2.X onward.

Mais certains le projet a besoin de ces dépendances, afin de mener à bien les fonctionnalités que nécessaire. Comment ai-je besoin pour résoudre le problème ci-dessus?


Mise à JOUR:

TL;DR:

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

Comme je l'ai déjà mentionné dans le lien tout en Installation d'Extension mcrypt sur PHP 7.2, par le Serveur de la communauté Pilote. Ces peuples avaient dit une version plus récente de pecl-7.2 est disponible pour installer mcrypt sur PHP-7.2. Malheureusement, il a fini avec pecl7.2-sp: command not found de l'exécuté les commandes qui ont été mis en place. Plus tard, la page web a obtenu une mise à jour, de sorte que les commandes de plus il ne correspond pas avec les commandes qui ont été jugés lors de l'exécution.

Enfin, quelle peut être la solutions à adapter à votre Architecture des systèmes d'exploitation de niveau, Juste aller pour elle!.

OU

Si le ci-dessous approches ne pas céder à résoudre la cause.
Sinon, vous pouvez aller pour PHP 7.1.X version qui prend en charge extension mcrypt par défaut

47voto

Praneeth Nidarshan Points 1446

J'ai suivi les étapes ci-dessous pour installer mcrypt pour PHP7.2 à l'aide de 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 à l'aide de PECL

pecl install mcrypt-1.0.1

  1. Après l'installation réussie

Vous devez ajouter "extension=mcrypt.donc," de php.ini

S'il vous plaît commentaire ci-dessous si vous avez besoin d'une assistance. :-)

IMPORTANT !

Selon php.net référence de nombreux (tous) mcrypt fonctions été OBSOLÈTE depuis PHP 7.1.0. Sur la base de cette fonction est fortement déconseillés.

41voto

Shahid Neermunda Points 934

Mcrypt PECL extenstion

 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

Lorsque vous verrez l'invite

 libmcrypt prefix? [autodetect] :

Appuyez sur la touche [Enter] pour détecter automatiquement.

Après le succès de l'installation de mcrypt trought pecl, vous devez ajouter mcrypt.donc, extension de php.ini.

La sortie ressemble à 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

Prenez l'installation de chemin et ajouter à la cli et apache2, php.ini de configuration.

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

Commande exécuter:

php -i | grep "mcrypt"

La sortie ressemble à 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

26voto

SimionZ Points 327

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

  • Vérifiez si vous avez poire installé (ou installer):

$ sudo apt-get install php-pear

  • Installer, si ce n'est pas déjà installé, php7.2-dev, afin d'éviter le message d'erreur:

sh: la commande phpize: pas trouvé

ERREUR: `la commande phpize' a échoué

$ sudo apt-get install php7.2-dev

  • Installer mcrypt à l'aide de pecl:

$ sudo pecl install mcrypt-1.0.1

  • Ajouter l'extention extension=mcrypt.so de votre php.ini fichier de configuration; si vous ne savez pas où il est, de recherche avec:

$ sudo php -i | grep 'Configuration File'

7voto

hk' Points 38
 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 est dépend de votre installatio php et apache utilisé la version php.

2voto

Vadi Points 611

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X