mCrypt non présent après la mise à niveau d'Ubuntu vers la 13.10


92

Après avoir mis à niveau mon système d'Ubuntu 13.04 à 13.10, plusieurs problèmes sont survenus avec les configurations apache, mysql et php.

J'ai résolu la plupart d'entre eux mais je n'arrive pas à faire fonctionner la bibliothèque mCrypt. Le paquet est installé donc je n'ai pas besoin d'apt-l'obtenir. Le serveur fonctionne et tout semble bien, mais quand j'essaye de courir php artisan serveavec Laravel 4, j'obtiens un message indiquant que mCrypt est requis.

Je l' ai fait php --ri mcryptet la sortie était Extension 'mcrypt' not present. j'ai essayé de mettre extension=mcrypt.soà /etc/php5/apache2/php.inimais cela n'a pas fonctionné.

Des idées?

Sortie de 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

Êtes-vous sûr qu'il est installédpkg --get-selections | grep php5
tlenss

apt-get installer php5-mcrypt?
Lajos Veres

1
J'ai mis à jour la question avec la sortie de la commande @tlenss. sudo apt-get install php5-mcryptsorties qu'il est installé et version la plus récente
Vuk Stanković

2
Peut-être que la réponse ici vous aidera à askubuntu.com/questions/360646/…
tlenss

Trouvé un bug du tableau de bord sur cette page qui m'a donné une solution. Merci
Vuk Stanković

Réponses:


273

Je pense avoir trouvé la solution sur launchpad.net .

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

Cela a fonctionné pour moi.


Merci pour cette réponse, dans OpenCart 1.5.6, ce problème provoquait l'erreur ... Erreur fatale: Appel à la fonction non définie mcrypt_create_iv () dans / <chemin ici> /system/library/encryption.php en ligne 8
AndyGaskell

Fait à noter, cette solution n'a pas fonctionné pour moi avec Laravel / Artisan jusqu'à ce que je sois également lié symboliquement dans /etc/php5/cli/conf.d
David M

Je reçois cette erreur.Quel code dois-je mettre à jour? Dans quel fichier dois-je mettre à jour? Veuillez suggérer ..
user2089987

Cela empêchait Webgility de se synchroniser. L'installer l'a bien arrangé. Merci!
Ryan

2
Avec Ubuntu 14.04 / PHP5.5, la première ligne n'est pas nécessaire. php5enmod fait le lien.
Wolk

27

J'ai eu ce problème avec Ubuntu 14.04 et j'ai fait ce qui suit pour le résoudre:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

1
C'est ce qui a fonctionné pour moi, j'ai PHP version 5.5.9-1ubuntu4.4, et je n'avais pas de répertoire /etc/php5/conf.d.
flcoder

14

J'ai également ce problème avec Ubuntu 14.04 après l'installation.

Activez d'abord le mcrypt

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

Ajoutez cette commande dans n'importe quelle ligne

extension=mcrypt.so

Créez le dossier conf.d dans / etc / php5

sudo mkdir conf.d

Et dans ce dossier, créez un fichier mcrypt.ini

sudo gedit mcrypt.ini 

Ajoutez ensuite cette commande à ce fichier

extension=mcrypt.so

Ensuite, créez un lien vers le fichier

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

Activer le module mcrypt

sudo php5enmod mcrypt

Redémarrez Apache

sudo service apache2 restart

3
Vous n'avez pas besoin d' extension=mcrypt.soentrer php.ini. Cela fonctionne également sans cela, car les extensions php (comme mcrypt) sont dans des .inifichiers séparés .
machineaddict

@machineaddict Pour moi, l'ajout de 'extension = mcrypt.so' a fonctionné après l'installation de mcrypt. Lubuntu 14.04 Trusty Thar. Je n'ai pas été automatiquement chargé
Clain Dsilva

11

D'Ubuntu 13.10 à 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Travaille pour moi.


Pour moi: WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. Cependant, le fichier se trouvait ailleurs. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/et a exécuté les commandes ci-dessus. Tiré de www.devraju.com
machineaddict

3

J'ai également eu ce problème avec Ubuntu 14.04 et Nginx, mais le conseil pour moi était de redémarrer le service FPM, alors j'ai fait:

Installez la bibliothèque

apt-get installer php5-mcrypt

Trouvez le chemin

mis à jourb && localiser mcrypt.so

Définissez le chemin de mcrypt.so dans le fichier mcrypt.ini situé dans /etc/php5/mods-available/mcrypt.ini

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

Et puis redémarrez le service FPM

redémarrage du service php5-fpm


J'avais juste besoin d'apt-get installer php5-mcrypt et de redémarrer le service php5-fpm sur mon ubuntu 14.04.
deanpodgornik

Nice..Dans mon cas, il fallait trouver la lib mcrypt manuellement car l'extension était vide dans le fichier mcrypt.ini.
Deric Lima

0

Autre solution si le package est déjà installé:

sudo aptitude reinstall php5-mycript

Cela a fonctionné pour moi après la mise à niveau


0

Essayez ce code:

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

0

J'ai eu le même problème avec PHP 5.5.14 fonctionnant sous Mac OS X Yosemite. J'essayais d'installer Laravel 5.0. Et quand j'ai essayé de créer un nouveau projet, j'ai eu une erreur comme ci-dessous (même lorsque j'ai essayé de démarrer le serveur laravel avec php artisan serve

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$ 

Je viens donc d'ajouter la ligne ci-dessous à la fin de mon fichier php.ini avec l'éditeur nano:

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

Enfin, redémarrez simplement le terminal et redémarrez le serveur d'applications laravel avec

php artisan serve

Et ça marche bien!


0

juste trouvé sur php.net

Notez que pour Ubuntu, la simple installation de php5-mcrypt ne permettait pas à mcrypt de fonctionner. Vous devez exécuter les commandes suivantes en tant que root pour l'activer:

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

Parfois, ce «problème» se produit parce que vous avez entré une commande artisan sur votre machine locale au lieu de sur votre machine virtuelle. Si vous utilisez Homestead, mcrypt est déjà installé. Considérez cela comme un rappel dehomestead ssh

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.