mCrypt ist nach dem Ubuntu-Upgrade auf 13.10 nicht vorhanden


92

Nachdem ich mein System von Ubuntu 13.04 auf 13.10 aktualisiert habe, sind mehrere Probleme mit Apache-, MySQL- und PHP-Konfigurationen aufgetreten.

Ich habe die meisten von ihnen gelöst, aber ich kann die mCrypt-Bibliothek anscheinend nicht zum Laufen bringen. Das Paket ist installiert, so dass ich es nicht bekommen muss. Der Server funktioniert und alles scheint in Ordnung zu sein. Wenn ich jedoch versuche, php artisan servemit Laravel 4 zu arbeiten, wird die Meldung angezeigt, dass mCrypt erforderlich ist.

Ich habe es getan php --ri mcryptund die Ausgabe war, dass Extension 'mcrypt' not present. ich versucht habe, sie extension=mcrypt.sozu setzen , /etc/php5/apache2/php.iniaber es hat nicht funktioniert.

Irgendwelche Ideen?

Ausgabe von dpkg --get-selections | grep php5

libapache2-mod-php5         install
php5                        install
php5-cli                    install
php5-common                 install
php5-gd                     install
php5-json                   install
php5-mcrypt                 install
php5-mysql                  install
php5-readline               install

Sind Sie sicher, dass es installiert istdpkg --get-selections | grep php5
tlenss

apt-get php5-mcrypt installieren?
Lajos Veres

1
Ich habe die Frage mit der Ausgabe des Befehls @tlenss aktualisiert. sudo apt-get install php5-mcryptgibt aus, dass es installiert ist und neueste Version
Vuk Stanković

2
Vielleicht hilft Ihnen die Antwort hier askubuntu.com/questions/360646/…
tlenss

Auf dieser Seite wurde ein Launchpad-Fehler gefunden, der mir eine Lösung gab. Vielen Dank
Vuk Stanković

Antworten:


273

Ich glaube, ich habe die Lösung auf launchpad.net gefunden .

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

Das hat bei mir funktioniert.


Vielen Dank für diese Antwort. In OpenCart 1.5.6 hat dieses Problem den Fehler verursacht ... Schwerwiegender Fehler: Rufen Sie die undefinierte Funktion mcrypt_create_iv () in / <Pfad hier> /system/library/encryption.php in Zeile 8
AndyGaskell vom

Bemerkenswerterweise funktionierte diese Lösung für mich mit Laravel / Artisan nicht, bis ich auch in /etc/php5/cli/conf.d
David M

Ich erhalte diesen Fehler. Welchen Code muss ich aktualisieren? In welcher Datei muss ich aktualisieren? Bitte vorschlagen ..
user2089987

Dies führte dazu, dass Webgility nicht synchronisiert wurde. Die Installation hat es richtig gut gemacht. Vielen Dank!
Ryan

2
Mit Ubuntu 14.04 / PHP5.5 wird die erste Zeile nicht benötigt. php5enmod stellt den Link her.
Wolk

27

Ich hatte dieses Problem mit Ubuntu 14.04 und habe Folgendes getan, um es zu beheben:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

1
Dies hat bei mir funktioniert, ich habe PHP Version 5.5.9-1ubuntu4.4 und ich hatte kein Verzeichnis /etc/php5/conf.d.
Flcoder

14

Ich habe auch dieses Problem mit Ubuntu 14.04 nach der Installation.

Aktivieren Sie zuerst die mcrypt

sudo gedit /etc/php5/apache2/php.ini

Fügen Sie diesen Befehl in eine beliebige Zeile ein

extension=mcrypt.so

Erstellen Sie den Ordner conf.d in / etc / php5

sudo mkdir conf.d

Und in diesem Ordner erstellen Sie die Datei mcrypt.ini

sudo gedit mcrypt.ini 

Fügen Sie dann diesen Befehl zu dieser Datei hinzu

extension=mcrypt.so

Erstellen Sie dann einen Link zur Datei

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available

Aktivieren Sie das mcrypt-Modul

sudo php5enmod mcrypt

Starten Sie Apache neu

sudo service apache2 restart

3
Sie brauchen nicht extension=mcrypt.soin php.ini. Es funktioniert auch ohne es, da PHP-Erweiterungen (wie mcrypt) in separaten .iniDateien sind.
Machineaddict

@machineaddict Für mich funktionierte das Hinzufügen der 'extension = mcrypt.so' nach der Installation von mcrypt. Lubuntu 14.04 Vertrauenswürdiger Thar. Ich wurde nicht automatisch geladen
Clain Dsilva

11

Von Ubuntu 13.10 bis 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Funktioniert bei mir.


Für mich : WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. Die Datei befand sich jedoch an einer anderen Stelle. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/und führte die obigen Befehle aus. Entnommen von www.devraju.com
machineaddict

3

Ich hatte auch dieses Problem mit Ubuntu 14.04 und Nginx, aber der Tipp für mich war, den FPM-Dienst neu zu starten, also tat ich:

Installieren Sie die Bibliothek

apt-get installiere php5-mcrypt

Finde den Weg

aktualisiertb && finde mcrypt.so

Legen Sie den Pfad von mcrypt.so in der Datei mcrypt.ini in /etc/php5/mods-available/mcrypt.ini fest

extension = / usr / lib / php5 / 20121212 / mcrypt.so

Starten Sie dann den FPM-Dienst neu

Service php5-fpm Neustart


Ich musste nur php5-mcrypt installieren und dann php5-fpm auf meinem Ubuntu 14.04 neu starten.
Deanpodgornik

Nizza. In meinem Fall musste die mcrypt lib manuell gefunden werden, da die Erweiterung in der Datei mcrypt.ini leer war.
Deric Lima

0

Eine andere Lösung, wenn das Paket bereits installiert ist:

sudo aptitude reinstall php5-mycript

Dies funktionierte für mich nach dem Upgrade


0

Versuchen Sie diesen Code:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart

0

Ich hatte das gleiche Problem mit PHP 5.5.14 unter Mac OS X Yosemite. Ich habe versucht, Laravel 5.0 zu installieren. Und als ich versuchte, ein neues Projekt zu erstellen, bekam ich einen Fehler wie unten (selbst als ich versuchte, den Laravel-Server mit PHP Artisan Serve zu starten

Alejandros-MacBook-Pro:Documents Lexynux$ laravel new blog
Crafting application...
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Generating optimized class loader
Compiling common classes
Compiling views
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Application key [CCOPocoMjnJTx4AFXk64wqyTKyo3BlHq] set successfully.
Application ready! Build something amazing.
Alejandros-MacBook-Pro:Documents Lexynux$ 

Also habe ich gerade die folgende Zeile am Ende meiner php.ini-Datei mit dem Nano-Editor hinzugefügt:

extension=mcrypt.so
sudo nano /etc/php.ini

Zum Schluss starten Sie einfach das Terminal neu und starten Sie den Laravel App Server mit neu

php artisan serve

Und es funktioniert gut!


0

gerade auf php.net gefunden

Beachten Sie, dass für Ubuntu die einfache Installation von php5-mcrypt mcrypt nicht zum Laufen brachte. Sie müssen die folgenden Befehle als root ausführen, um sie zu aktivieren:

apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service apache2 restart

http://php.net/manual/en/mcrypt.installation.php#114609


0

Manchmal tritt dieses "Problem" auf, weil Sie einen Handwerkerbefehl auf Ihrem lokalen Computer anstatt auf Ihrer virtuellen Maschine eingegeben haben. Wenn Sie Homestead verwenden, ist mcrypt bereits installiert. Betrachten Sie es als Erinnerung anhomestead ssh

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.