Frage

Hinweis: Die Bibliotheken MCrypt Unterstützung angewiesen ist auf seit Jahren nicht mehr aktualisiert worden und MCrypt sollte nicht länger eine tragfähige oder sichere Methode zur Verschlüsselung von Daten in Betracht gezogen werden. Was mehr ist, in PHP 5 und entfernt vollständig in PHP veraltet 7. MCrypt wurde Wenn Sie Code haben, läuft MCrypt Sie es Refactoring sollte eine modernere Verschlüsselungsbibliothek zu verwenden.


Wer weiß, warum diese Fehlermeldung:? (Call to undefined function mcrypt_encrypt() ) wird angezeigt, wenn ich den folgenden Code unter

Bin ich einige Schritte vielleicht eine Einstellung in PHP ich gefehlt haben zu tun, bevor dieser Code arbeiten kann?

$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)));
War es hilfreich?

Lösung

Was für mich mit PHP Version 5.2.8 gearbeitet hatte, war php.ini zu öffnen und ermöglichen die php_mcrypt.dll Erweiterung durch die ; entfernen, das heißt zu ändern:

;extension=php_mcrypt.dll zu extension=php_mcrypt.dll

Andere Tipps

Wenn Sie vor kurzem auf ubuntu aktualisiert 14.04 hier ist das Update für dieses Problem:

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

Für Fenster

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

Für 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

Für Ubuntu

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

Immer noch nicht?

  

sudo php5enmod mcrypt && sudo Service apache2 restart

Sie haben nicht die mcrypt Bibliothek installiert ist.

Siehe http://www.php.net/manual/en/ mcrypt.setup.php für weitere Informationen.

Wenn Sie auf Shared-Hosting sind, können Sie Ihren Provider bitten, es zu installieren.


In OSX können Sie ganz einfach installieren mcrypt über Homebrew

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

Dann fügen Sie diese Zeile zu /etc/php.ini.

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

Wenn Sie mit PHP 7.2 oder oben:

  

Diese Funktion war DEPRECATED in PHP 7.1.0 und ENTFERNT in PHP 7.2.0.

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

So haben Sie den PHP-Code zu ersetzen und eine Lösung ohne mcrypt finden.

Oder ich habe gerade herausgefunden, Sie STILL mcrypt in PHP 7.2.0 verwenden können, aber Sie müssen es als eine Bibliothek PHP-Erweiterung der Gemeinschaft installieren. ( https://pecl.php.net/ )

Unter Debian / Ubuntu Linux-Distributionen:

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

dann:

sudo pecl install mcrypt-1.0.1

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

Unter Ubuntu Ich hatte das Problem und löste es mit

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

Auf ubuntu 14.10:

Installieren Modul mcrypt

sudo apt install php5-mcrypt

Aktivieren Modul mcrypt auf apache2

sudo a2enmod mcrypt

Reload Modulkonfiguration

sudo service apache2 restart

Auf Linux Mint 17,1 Rebecca - Call to undefined function mcrypt_create_iv ...

Gelöst indem Sie die folgende Zeile in die php.ini

extension=mcrypt.so

Danach ein

service apache2 restart

löste es ...

Ich hatte das gleiche Problem für PHP 7 Version von mcrypt fehlt.

Das ist für mich gearbeitet.

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

Ist mcrypt aktiviert? Sie können verwenden phpinfo() zu sehen, ob es ist.

Eine weitere Sache: Wenn Sie PHP über einen Webserver wie Apache dienen, versuchen, den Web-Server neu zu starten. Dies wird „Reset“ all PHP-Module, die vorhanden sein könnten, um die neue Konfiguration zu aktivieren.

Angenommen, Sie debian Linux verwenden (Ich verwende Linux Mint 12, Problem war, auf Ubuntu 12.04.1 LTS Server I ssh'ed in.)

Ich schlage vor, @dkamins Beratung und dafür sorgen, haben Sie mcrypt installiert und aktiv auf php5 installieren. Verwenden Sie "sudo apt-get install php5-mcrypt" zu installieren. Meine Anmerkungen unten.

Mit PHP Version PHP Version 5.3.10-1ubuntu3.4, wenn Sie offen phpinfo (), wie durch @John Conde vorgeschlagen, die Sie auf Web-Server, indem Testdatei tun (zB Statusseite testphp.php erstellen nur mit dem Inhalt „“ überall zugänglich auf dem Server via Browser)

fand ich keine Anwesenheit von aktivierten oder deaktivierten Status auf der Statusseite, wenn in Browser geöffnet. Als ich dann die php.ini-Datei geöffnet, erwähnt von @Anthony Forloney, zu uncomment ;extension=php_mcrypt.dll to extension=php_mcrypt.dll Denken

ein- und ich das hin und her und neu gestartet Apache (Ich bin mit Apache2 und Sie können mit sudo /etc/init.d/apache2 restart in meinem Setup neu starten, oder wenn Sie in diesem Verzeichnis sind nur sudo restart glaube ich) mit Umsteigen und ohne Änderung aber alle nicht gehen. Ich nahm @dkamins Beratung und ging das Paket mit „sudo apt-get install php5-mcrypt“ und dann neu gestartet Apache wie oben zu installieren. Dann wurde mein Fehler gegangen und meine Anwendung hat gut funktioniert.

Wenn Sie mit php5-fpm Erinnern es neu zu starten, nach der Installation von mcrypt

Service php5-fpm Neustart

Wenn Sie Ubuntu 14.04 ist hier das Update für dieses Problem mit:

Überprüfen Sie zunächst, php5-mcryp bereits installiert apt-get install php5-mcrypt

Wenn installiert, nur diese zwei Befehle ausführen oder installieren und ausführen dieses zwei Befehle

$ sudo php5enmod mcrypt
$ sudo service apache2 restart

Ich hoffe, es wird funktionieren.

für Linux-basierte (Fedora)

yum -y install php-mcrypt

Aktivieren Sie das Modul durch Hinzufügen: 'extension = mcrypt.so' zu PHP.ini. (/Etc/php.ini)

systemctl restart httpd.service

Fertig!

Für mich ist es zu deinstallieren mcrypt half mit:

sudo apt-get purge php5-mcrypt

und es einfach neu zu installieren:

sudo apt-get install php5-mcrypt

und vergessen Sie nicht, Apache neu zu starten, wie oben beschrieben.

Sie nicht wissen, warum und wie dies in meinem Fall anders war (eine vm mit provisioniert php55 verwenden), aber vielleicht hilft jemand anderes. Ich hatte auch dieses Problem mit einigen anderen Modulen wie xcache ...

Überprüfen und php5-mcrypt installieren:

sudo apt-get install php5-mcrypt
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top