Mcrypt-Erweiterung fehlt in 14.04 Server für MySQL


112

Die php mcrypt Erweiterung auf Ubuntu 14.04 zeigt, dass es richtig installiert ist, aber phpmyadmin sagt:

 The mcrypt extension is missing. Please check your PHP configuration.

Meine aktuelle PHP-Konfiguration ist hier . Wenn Sie weitere Informationen benötigen, kontaktieren Sie mich bitte über die Kommentare.

$ sudo apt-get install php5-mcrypt
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    php5-mcrypt is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

7
Die akzeptierte Antwort ist keine bewährte Methode. Die einfachste und richtigste Antwort: http://askubuntu.com/a/477608/139249 hat auch die meisten Stimmen.
Mike Stewart

Für andere hat die "einfachste" Antwort bei mir nicht funktioniert. php5enmod mcryptApache gefroren. php5dismod mcryptbefreite es wieder. Ich ging mit der akzeptierten Antwort und änderte den Pfad für extension=..und diesmal php5enmod mcryptarbeitete. Also ja, es ist umfassend und sollte die akzeptierte Antwort sein.
Oliver Williams

Antworten:


138

Versuche dies:

sudo updatedb 
locate mcrypt.ini

Sollte es unter / etc / php5 / mods-available anzeigen

locate mcrypt.so

Bearbeiten Sie mcrypt.ini und ändern Sie die Erweiterung so, dass sie dem Pfad zu mcrypt.so entspricht. Beispiel:

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

Jetzt das:

sudo php5enmod mcrypt - (optional since its already enabled during phpmyadmin setup)

Vergewissern Sie sich, dass hier neue Dateien vorhanden sind (diese sollten aufgrund des obigen Problems automatisch erstellt werden).

ls -al /etc/php5/cli/conf.d/20-mcrypt.ini
ls -al /etc/php5/apache2/conf.d/20-mcrypt.ini

Andernfalls gehen Sie folgendermaßen vor

Erstellen Sie jetzt Symbolverknüpfungen

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

Starten Sie Apache neu

sudo service apache2 restart

Starten Sie php5 oder php5-fpm neu

sudo service php5 restart

Das ist falsch! Ich denke, Sie meinten so etwas wie: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini Und nicht umgekehrt.
Wolfdawn

14
Das hat php5enmod mcryptbei mir einfach reibungslos geklappt.
Diosney

3
Beim Ausführen php5enmod mcryptwerden diese symbolischen Links für Sie erstellt. Das muss nicht manuell gemacht werden (dh Sie können die ln -sBefehle überspringen ).
Serrano

1
Laufen php5enmod mcryptist der richtige Ubuntu / Debian-Weg. Diese Antwort wird funktionieren, ist umständlich und keine bewährte Methode.
Mike Stewart

1
Viele der oben genannten Schritte sind nicht erforderlich. Siehe die Antwort von @ MURATSPLAT.
Raptor

155

Versuchen Sie es einfach so:

sudo php5enmod mcrypt

Und dann:

sudo service apache2 restart 

Ich habe auf meinem Computer Ubuntu 14.04 (Desktop-Version) installiert. Auf diese Weise können Sie bereits installiertes mcrypt aktivieren.


5
Beachten Sie , wenn Sie laufen sind nginx mit php5-fpm - dann php5-fpm service restart(oder neu zu laden , wenn es endlich gepatcht wird )
Mike Stewart

2
Diese beiden Befehle bewirken Folgendes: In der ersten Zeile wird das Modul 'mcrypt' aktiviert und anschließend apache2 neu gestartet, um die Konfiguration zu aktualisieren. Sie können das aktivierte Modul von sehen /etc/apache2/mods-available. Genieße das LAMP-Leben :)
itiskj

sudo service apache2 reloadist genug, es ist kein Neustart erforderlich (auf jeden Fall am 14.04, das ist, was ich es ausprobiert habe)
Jasper

55

Installieren Sie die mcryptErweiterung für PHP, aktivieren Sie sie und starten Sie Apache neu. Es folgen die folgenden Befehle:

sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart

1
Einfach. Perfekt. Funktioniert ohne Probleme, zumindest für mich auf Ubuntu 14.04.1 LTS (vertrauenswürdig)
Gor

Es funktioniert auch auf Ubuntu 14.10
Coca Akat

Ich würde empfehlen, dass Sie nicht mcryptin Ihre erste Zeile aufnehmen. Es wird implizit als Abhängigkeit von installiert php5-mcrypt, aber wenn Sie es explizit installieren, wird apt-get nicht wissen, ob es entfernt werden soll, wenn Sie das ph5-mcryptPaket später deinstallieren möchten.
beldaz

@beldaz es gibt mindestens einen server, auf dem php5-mcrypt per apt-get installiert wurde, aber mcrypt fehlte, weil das pnp-modul nicht aktiviert wurde, was zu einem problem bei der joomla-installation führte. daher macht es für mich Sinn, mcrypt einzuschließen.
TagMacher

6

Das Ubuntu-Paket php5-mcrypt installiert die Konfigurationsdatei, mcrypt.iniin /etc/php5/conf.d/der sich das alte PHP-Konfigurationsverzeichnis befindet.

Die aktuelle Arbeitsweise zum Aktivieren von Modulen in PHP5 besteht darin, die INI-Dateien in das /etc/php5/mods-availableVerzeichnis zu stellen. Um das Modul in PHP5 zu aktivieren, müssen Sie einen symbolischen Link zu den zugehörigen ini-Dateien aus dem /etc/php5/apache2/conf.dVerzeichnis erstellen , um das Modul zu aktivieren, wenn PHP unter Apache verwendet wird, oder / und /etc/php5/cli/conf.dwenn Sie dieses Modul aktivieren möchten, wenn Sie PHP außerhalb verwenden Apache wird in Skripten über die Befehlszeile oder über crontab ausgeführt.

Beachten Sie auch, dass Sie im conf.dVerzeichnis den Link zur INI-Datei erstellen können, indem Sie eine Nummer voranstellen, damit die Module in einer bestimmten Reihenfolge geladen werden. Nützlich, wenn Sie ein Modul laden müssen, das von einem anderen abhängt.

Vergessen Sie natürlich nicht, Apache neu zu starten, wenn Sie das Modul für Apache aktiviert haben:

 sudo service apache2 restart

4

Meine 14.04 Server Installation wird nur benötigt (nachdem php5-mcrypt installiert wurde)

sudo php5enmod mcrypt
sudo service apache2 restart

3

Wenn das Problem weiterhin auftritt,

Aktivieren Sie das Modul durch Hinzufügen von: extension=mcrypt.sozu

/etc/php5/cli/php.ini

und

/etc/php5/apache2/php.ini


1
Bei mir funktionierte das Hinzufügen der 'extension = mcrypt.so' nach der Installation von mcrypt. Lubuntu 14.04 Trusty Thar
Clain Dsilva

Dies funktioniert und ist viel einfacher als die akzeptierte Antwort ... die auch kaputt geht, wenn sie aktualisiert wird.
Eric

Ich habe hier und an anderen Orten jede Anweisung befolgt, aber vergebens. ubuntu 14.04.3 - PHP 5.5.9-1ubuntu4.14 - nginx / 1.8.1 - Serverversion: 5.7.10 - MySQL - Datenbank-Client-Version: libmysql - 5.5.47 - phpMyAdmin Version: 4.0.10deb1 .... hat jemand eine Idee?
Jadeye

2

In Ubuntu 16.04 LTS, um das mcrypt Modul mit PHP 5.6 zu aktivieren:

sudo apt-get install mcrypt
sudo apt-get install php5.6-mcrypt
sudo phpenmod mcrypt

oder mit php 7.0:

sudo apt-get install mcrypt
sudo apt-get install php7.0-mcrypt
sudo phpenmod mcrypt

und dann

sudo service apache2 restart

1

Mit PHP 7

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
sudo /etc/init.d/apache2 restart

$ sudo phpenmod mcrypt WARNUNG: Die Modul-mcrypt-INI-Datei existiert nicht unter /etc/php/7.1/mods-available
Yevgeniy

$ sudo /etc/init.d/apache2 sudo neu starten: /etc/init.d/apache2: Befehl nicht gefunden
Yevgeniy Afanasyev

0

Sie sollten in der Lage sein, die mcrypt-Erweiterung für PHP zu installieren, indem Sie Folgendes ausführen:

sudo apt-get install php5-mcrypt

Nun

1
@ jkt123: Mir ist aufgefallen, dass wenn Sie ein PHP-Modul wie php5-mcrypt in Ubuntu installieren, alle Dateien danach dort sind, aber das Modul in der PHP-Hauptkonfiguration nicht aktiviert ist. Sie müssen es manuell aktivieren, wie in der akzeptierten Antwort beschrieben.
Benoit

es funktioniert nicht ohne die Endung = mcrypt.so zu php.ini hinzuzufügen
Eric

0

Beachten Sie, dass sich in Ubuntu 14.04 die php5-mcrypt im Universums-Repository befindet, das deaktiviert werden könnte. In diesem Fall müssen Sie das Repository aktivieren, um es zu installieren:

sudo add-apt-repository universe

0

Sie müssen das mcrypt-Modul aktivieren:

sudo php5enmod mcrypt
sudo service apache2 restart

0

Dies ist der beste Weg, um PHP 5.5 Mcrypt-Erweiterung auf Ubuntu 14.04 Server hinzuzufügen

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

0

@ Kevsins Antwort funktionierte für mich, aber ich musste die ausführen mkdir -p /etc/php5/apache2/conf.d/und manuell ausführen sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini, um zur Arbeit zu kommen. sudo php5enmod mcryptfunktionierte gut für den ersten Symlink.

Hinweis: Ich verwende PHP5-FPM. Das mag der Unterschied gewesen sein.


0

Für diejenigen, die dies finden, ist dies für Ubuntu 16.04 (mit PHP7), was ich getan habe, um mcrypt zu aktivieren:

sudo apt-get install mcrypt php-mcrypt
sudo phpenmod mcrypt
sudo service apache2 restart
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.