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
Vuk Stanković
quelle
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.

Vuk Stanković
quelle
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
eaykin
quelle
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
Daroath
quelle
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.

Aleftos
quelle
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

Deric Lima
quelle
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

rreimi
quelle
0

Versuchen Sie diesen Code:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart
Indrajeet Singh
quelle
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!

alexventuraio
quelle
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

SharkWeb
quelle
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

Chukky Nze
quelle