web-dev-qa-db-fra.com

Impossible d'obtenir mcrypt pour PHP5

Je l'ai fait plusieurs fois:

Sudo aptitude install php5-mcrypt

Sudo Apache2ctl restart

aptitude dit que mcrypt est installé. Je l'ai déjà réinstallé 3 fois. J'ai redémarré Apache environ 20 fois depuis que je l'ai installé. Quand je regarde phpInfo, je ne vois pas la liste de mcrypt. Lorsque j'essaie d'exécuter mon code, il indique que la fonction mcrypt (en choisir un - n'importe lequel) n'existe pas. mcrypt n'est clairement pas activé.

Est-ce que quelqu'un a une idée de ce qui pourrait être faux? Je ne sais pas quelles pièces devraient être où et comment tout cela est censé s'emboîter.

J'ai installé PHP 5.5.3

28
webDeveloperDave

Essaye ça

Sudo php5enmod mcrypt

Sudo service Apache2 restart
61
user229183

J'ai eu un problème similaire sur Ubuntu 13.10. Lors de l'exécution de composer install, il a généré la même erreur, se terminant par.

****Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-update-cmd event returned with an error

  [RuntimeException]  
  Error Output:****   

J'ai installé mcrypt et php5-mcrypt avec aptitude, et php -m ne montrait toujours pas mcrypt en tant qu'extension chargée:

aptitude install mcrypt
aptitude install php5-mcrypt

J'ai exécuté un updatedb, puis un locate mcrypt. J'ai trouvé mon mcrypt.ini dans /etc/php5/conf.d. Pourtant, toutes les autres extensions (comme json) avaient leurs fichiers .ini dans /etc/php5/Apache2/conf.d et /etc/php5/cli/conf.d. Ces deux étaient des liens vers ../../mods.available.

J'ai donc déplacé mcrypt.ini en /etc/php5/available-modules et défini les liens:

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

Et de même pour /etc/php5/Apache2/conf.d.

Et voila, il est apparu dans php -m!

11
user239289

Ressemble à l'extrait de code ini qui charge libmcrypt lorsque PHP est appelé par Apache et est manquant. Il devrait y avoir un fichier appelé /etc/php5/Apache2/conf.d/mcrypt.ini avec le contenu suivant

; configuration for php MCrypt module
extension=mcrypt.so

Vous devriez pouvoir le copier depuis les autres configurations d'intégration PHP telles que /etc/php5/cli/conf.d/mcrypt.ini ou /etc/php5/conf.d/mcrypt.ini, en fonction de ce qui est installé sur votre système.

2
Henning Kockerbeck

Le module mcrypt n'est pas activé par défaut. Activez le module mcrypt puis redémarrez Apache ( crédit )

Sudo php5enmod mcrypt
Sudo service Apache2 restart
2
Boinst

Eh bien, c'est ça. On dirait que nous cherchons parfois le moyen le plus compliqué de faire quelque chose d'aussi simple que d'enmod; ) Comme Boinst dit: Sudo php5enmod mcrypt. Rechargez ensuite Apache.

1
Maximo