L'extension Mcrypt est manquante dans le serveur 14.04 pour mysql


112

L'extension php mcrypt sur Ubuntu 14.04 montre qu'il est correctement installé, mais phpmyadmin dit:

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

Ma configuration php actuelle est ici . Si vous avez besoin de plus d'informations, s'il vous plaît contactez-moi à travers les commentaires.

$ 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
La réponse acceptée n'est pas la meilleure pratique. La réponse la plus simple et la plus correcte: http://askubuntu.com/a/477608/139249 a également recueilli le plus grand nombre de votes.
Mike Stewart

Pour la référence des autres, la réponse "la plus simple" ne m'a pas fonctionné. php5enmod mcryptgelé Apache. php5dismod mcryptlibéré à nouveau. Je suis allé avec la réponse acceptée et modifié le chemin pour extension=..et cette fois php5enmod mcrypttravaillé. Donc oui, c'est complet et devrait être la réponse acceptée.
Oliver Williams

Réponses:


138

Essaye ça:

sudo updatedb 
locate mcrypt.ini

Devrait le montrer situé dans / etc / php5 / mods-available

locate mcrypt.so

Editez le fichier mcrypt.ini et modifiez l'extension pour qu'elle corresponde au chemin mcrypt.so, par exemple:

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

Maintenant ça:

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

Vérifiez que de nouveaux fichiers existent ici (ils devraient être créés automatiquement à partir du problème ci-dessus)

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

Sinon, procédez comme suit

Créer des liens de symboles maintenant

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

Redémarrer Apache

sudo service apache2 restart

Redémarrez php5 ou php5-fpm

sudo service php5 restart

C'est faux! Je pense que vous vouliez dire quelque chose comme: sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini et non l'inverse.
Wolfdawn

14
Faire a juste php5enmod mcrypttravaillé en douceur pour moi.
Diosney

3
Courir php5enmod mcryptcréera ces liens symboliques pour vous. Inutile de le faire manuellement (c’est-à-dire que vous pouvez ignorer les ln -scommandes).
Serrano

1
Courir php5enmod mcryptest la manière correcte pour Ubuntu / Debian. Cette réponse fonctionnera bien, est lourde et n'est pas une pratique exemplaire.
Mike Stewart

1
de nombreuses étapes ci-dessus ne sont pas nécessaires. Voir la réponse de @ MURATSPLAT.
Raptor

155

Essayez juste de faire ceci:

sudo php5enmod mcrypt

Puis:

sudo service apache2 restart 

J'ai installé Ubuntu 14.04 (version de bureau) sur mon ordinateur. Cette méthode fonctionne pour activer mcrypt qui était déjà installé.


5
Notez que si vous utilisez nginx avec php5-fpm - alors php5-fpm service restart(ou rechargez s'il est enfin corrigé)
mike stewart

2
Voici ce que font ces deux commandes: la 1ère ligne active le module nommé 'mcrypt', puis redémarre apache2 pour mettre à jour la configuration. Vous pouvez voir le module activé depuis /etc/apache2/mods-available. Profitez de la vie de la lampe :)
itiskj

sudo service apache2 reloadest suffisant, aucun redémarrage réel n'est nécessaire (le 14.04 en tout cas, c'est ce que j'ai essayé)
Jasper

55

Installez l' mcryptextension pour PHP, activez-le et redémarrez Apache. Voici les commandes à faire:

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

1
Facile. Parfait. Fonctionne sans problème, du moins pour moi sur Ubuntu 14.04.1 LTS (fidèle)
Gor

Ça marche aussi pour Ubuntu 14.10
Coca Akat le

Je vous recommande de ne pas inclure mcryptdans votre première ligne. Il est implicitement installé en tant que dépendance de php5-mcrypt, mais si vous l'installez explicitement, apt-get ne saura pas le supprimer si vous choisissez ultérieurement de désinstaller le ph5-mcryptpaquet.
Beldaz

@beldaz il y a au moins un serveur sur lequel php5-mcrypt a été installé conformément à apt-get mais mcrypt était manquant car le module pnp n'était pas activé, ce qui a entraîné un problème d'installation de joomla. donc inclure mcrypt est logique pour moi.
tagMacher

6

Le paquet php5-mcrypt Ubuntu installe le fichier de configuration mcrypt.inidans /etc/php5/conf.d/lequel se trouve l'ancien agencement du répertoire de configuration PHP.

La méthode actuelle pour activer les modules en PHP5 consiste à placer les fichiers ini dans le /etc/php5/mods-availablerépertoire. Ensuite, pour activer le module en PHP5, vous devez créer un lien symbolique vers les fichiers ini associés depuis le /etc/php5/apache2/conf.drépertoire afin de l'activer lorsque PHP est utilisé sous Apache ou / et à partir de /etc/php5/cli/conf.dsi vous souhaitez activer ce module lorsque vous utilisez PHP en dehors de PHP. Apache, dans des scripts exécutés en ligne de commande ou à partir de crontab.

Notez également que dans le conf.drépertoire, vous pouvez créer le lien vers le fichier ini en mettant un numéro devant celui-ci pour charger les modules dans un ordre spécifique. Utile lorsque vous avez besoin de charger un module en fonction d'un autre.

Bien sûr, n'oubliez pas de redémarrer Apache si vous avez activé le module pour Apache:

 sudo service apache2 restart

4

Mon installation du serveur 14.04 est seulement nécessaire (après l'installation de php5-mcrypt)

sudo php5enmod mcrypt
sudo service apache2 restart

3

Si le problème persiste,

activer le module en ajoutant: extension=mcrypt.soto

/etc/php5/cli/php.ini

et

/etc/php5/apache2/php.ini


1
Pour moi, l'ajout de l'extension = mcrypt.so fonctionnait après l'installation de mcrypt. Lubuntu 14.04 Trusty Thar
Clain Dsilva

Cela fonctionne et est beaucoup plus simple que la réponse acceptée ... qui sera également interrompue lors de la mise à jour.
Eric

J'ai suivi chaque instruction ici et ailleurs mais en vain. ubuntu 14.04.3 - PHP 5.5.9-1ubuntu4.14 - nginx / 1.8.1 - Version du serveur: 5.7.10 - MySQL - Version du client de la base de données: libmysql - 5.5.47 - phpMyAdmin Version: 4.0.10deb1 ....Quelqu'un a une idée?
Jadeye

2

Dans Ubuntu 16.04 LTS, pour activer le module mcrypt, avec php 5.6:

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

ou avec php 7.0:

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

puis

sudo service apache2 restart

1

Avec PHP 7

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

$ sudo phpenmod mcrypt AVERTISSEMENT: le fichier ini du module mcrypt n'existe pas sous /etc/php/7.1/mods-available
Yevgeniy Afanasyev

$ sudo /etc/init.d/apache2 redémarrer sudo: /etc/init.d/apache2: commande non trouvée
Yevgeniy Afanasyev

0

Vous devriez pouvoir installer l'extension mcrypt pour PHP en lançant:

sudo apt-get install php5-mcrypt

Eh

1
@ jkt123: J'ai remarqué que lorsque vous installez un module php tel que php5-mcrypt dans Ubuntu, tous les fichiers y sont par la suite, mais le module n'est pas activé dans la configuration principale de PHP. Vous devez l'activer manuellement comme décrit dans la réponse acceptée.
Benoit

cela ne fonctionne pas sans ajouter l'extension = mcrypt.so à php.ini
Eric

0

Notez que dans Ubuntu 14.04, php5-mcrypt se trouve dans le référentiel des univers qui pourrait être désactivé. Dans ce cas, pour l'installer, vous devez activer le référentiel avec:

sudo add-apt-repository universe

0

Vous devez activer le module mcrypt:

sudo php5enmod mcrypt
sudo service apache2 restart

0

C'est le meilleur moyen d'ajouter l'extension php 5.5 mcrypt sur un serveur Ubuntu 14.04

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

La réponse de @ Kevsin a fonctionné pour moi, mais je devais courir mkdir -p /etc/php5/apache2/conf.d/et exécuter manuellement sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.inipour me rendre au travail. sudo php5enmod mcrypta bien fonctionné pour le premier lien symbolique.

Note: J'utilise PHP5-FPM. C'était peut-être la différence.


0

Pour ceux qui trouvent cela, pour Ubuntu 16.04 (avec PHP7), voici ce que j'ai fait pour activer mcrypt:

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