Question

Remarque: Les bibliothèques de soutien MCrypt dépendent n'a pas été mis à jour au cours des années et MCrypt ne devrait plus être considérée comme une méthode viable ou sûre de cryptage des données. De plus, MCrypt a été dépréciée en PHP 5 et supprimé entièrement en PHP 7. Si vous avez un code qui fonctionne MCrypt vous devez refactoriser d'utiliser une bibliothèque de cryptage plus moderne.


Quelqu'un sait pourquoi ce message d'erreur: affiche (Call to undefined function mcrypt_encrypt() ) quand je lance le code suivant ci-dessous

Suis-je manque quelques étapes peut-être un paramètre dans PHP que je dois faire avant que ce code peut travailler?

$key = 'password to (en/de)crypt';
$string = 'string to be encrypted';

$test = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key),
            $string, MCRYPT_MODE_CBC, md5(md5($key)));
Était-ce utile?

La solution

Ce qui me avait travaillé pour la version PHP 5.2.8, était d'ouvrir php.ini et permettre l'extension de php_mcrypt.dll en supprimant le ;, à savoir le changement:

;extension=php_mcrypt.dll à extension=php_mcrypt.dll

Autres conseils

Si vous avez récemment mis à jour ubuntu 14.04 est ici le correctif à ce problème:

$ sudo mv /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
$ sudo php5enmod mcrypt
$ sudo service apache2 restart

Pour les fenêtres

;extension=php_mcrypt.dll to extension=php_mcrypt.dll 
 then restart your apache server

Pour Redhat

sudo yum install php55-mcrypt //if php5.5
sudo yum install php-mcrypt //if less than 5.4
sudo service httpd restart //if apache 2.4
sudo /etc/init.d/httpd restart //if apache 2.2 or less

Pour Ubuntu

sudo apt-get install php5-mcrypt
sudo service apache2 restart //if server not reloaded automatically 

ne fonctionne toujours pas?

  

sudo php5enmod mcrypt && sudo service de redémarrage apache2

Vous ne disposez pas de la bibliothèque de mcrypt installé.

Voir http://www.php.net/manual/en/ mcrypt.setup.php pour plus d'informations.

Si vous êtes sur un hébergement mutualisé, vous pouvez demander à votre fournisseur de l'installer.


Dans Mac OS X, vous pouvez facilement installer mcrypt via homebrew

brew install php54-mcrypt --without-homebrew-php

Ensuite, ajoutez cette ligne à /etc/php.ini.

extension="/usr/local/Cellar/php54-mcrypt/5.4.24/mcrypt.so"

Si vous utilisez PHP 7.2 ou jusqu'à:

  

Cette fonction a été dépréciés dans PHP 7.1.0 et PHP 7.2.0 ENLEVER en.

source: http://php.net/manual/en/function. mcrypt-encrypt.php

Vous devez remplacer le code php et trouver une solution sans mcrypt.

Ou, je viens de découvrir, vous pouvez toujours utiliser mcrypt en PHP 7.2.0, mais vous devez l'installer comme une bibliothèque communautaire PHP Extension. ( https://pecl.php.net/ )

Sur Debian / Ubuntu Linux distros:

sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install php7.2-dev
sudo apt-get -y install libmcrypt-dev

alors:

sudo pecl install mcrypt-1.0.1

Source: https: // www .techrepublic.com / article / how-to-install-mcrypt-pour-php-7-2 /

Sous Ubuntu j'ai eu le problème et résolu avec

$ sudo apt-get install php5-mcrypt
$ sudo service apache2 reload

ubuntu 14.10:

Installer le module mcrypt

sudo apt install php5-mcrypt

Activer le module mcrypt sur apache2

sudo a2enmod mcrypt

configuration du module de recharge

sudo service apache2 restart

Linux Mint 17.1 Rebecca - Appel à la fonction non définie mcrypt_create_iv ...

résolu en ajoutant la ligne suivante à la php.ini

extension=mcrypt.so

Après que

service apache2 restart

a résolu le problème ...

J'ai eu le même problème pour PHP 7 version de mcrypt manquante.

Cela a fonctionné pour moi.

sudo apt-get update
sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get upgrade
sudo service apache2 restart (if needed)

est-mcrypt activé? Vous pouvez utiliser phpinfo() pour voir si elle est.

Une autre chose: si vous êtes au service PHP via un serveur Web comme Apache, essayez de redémarrer le serveur Web. Cela « reset » des modules PHP qui pourraient être présents, activer la nouvelle configuration.

En supposant que vous utilisez debian linux (j'utilise Linux Mint 12, problème était sur le serveur Ubuntu 12.04.1 LTS Je ssh'ed en.)

Je conseille de prendre @dkamins des conseils et en vous assurant que vous avez Mcrypt installé et actif sur votre php5 installer. Utilisez "sudo apt-get install php5-mcrypt" pour installer. Mes notes ci-dessous.

En utilisant la version PHP PHP Version 5.3.10-1ubuntu3.4, si vous phpinfo open () comme suggéré par @John Condé, que vous faites par la création du fichier de test sur le serveur Web (par exemple, créer le statut Page testphp.php avec juste le contenu « » partout accessible sur le serveur via un navigateur)

J'ai trouvé aucune présence de l'état activé ou désactivé sur la page d'état lors de l'ouverture dans le navigateur. Quand je puis ouvert le fichier php.ini, mentionné par @Anthony Forloney, en pensant à ;extension=php_mcrypt.dll to extension=php_mcrypt.dll uncomment

Je basculée que les deux sens et redémarré Apache (je suis en cours d'exécution Apache2 et vous pouvez redémarrer dans ma configuration avec sudo /etc/init.d/apache2 restart ou lorsque vous êtes dans ce répertoire juste sudo restart je crois) avec le changement et sans changement, mais tous ne vont. J'ai pris @dkamins conseils et je suis allé installer le paquet avec « sudo apt-get install php5-mcrypt » et puis redémarré apache comme ci-dessus. Ensuite, mon erreur a disparu et ma demande a bien fonctionné.

Si vous utilisez php5-FPM ne pas oublier de le redémarrer, après l'installation mcrypt

Service restart php5-FPM

Si vous en utilisant ubuntu 14.04 est ici le correctif à ce problème:

Vérifiez d'abord php5-mcryp est apt-get install php5-mcrypt déjà installé

Si elle est installée, il suffit d'exécuter cette commande deux ou installer et exécuter cette commande deux

$ sudo php5enmod mcrypt
$ sudo service apache2 restart

J'espère que cela fonctionnera.

pour Linux basé (Fedora)

yum -y install php-mcrypt

Activer le module en ajoutant: 'extension = mcrypt.so' à PHP.ini. (/Etc/php.ini)

systemctl restart httpd.service

Fait!

Pour moi, il a aidé à désinstaller mcrypt avec:

sudo apt-get purge php5-mcrypt

et réinstaller simplement:

sudo apt-get install php5-mcrypt

et ne pas oublier de redémarrer apache comme décrit ci-dessus.

Ne pas savoir pourquoi et comment cela a été différent dans mon cas (en utilisant une machine virtuelle avec php55 provisionné), mais peut-être que cela aidera quelqu'un d'autre. J'ai aussi eu ce problème avec d'autres modules comme xcache ...

Vérifier et installer php5-mcrypt:

sudo apt-get install php5-mcrypt
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top