fg.jeveuxduweb.com

Blog personnel de Francois Gallienne

Pourquoi cet article ?

Le nouveau système d’exploitation de la firme Apple « Snow Léopard » est livré avec Php 5.3 d’installé avec une multitude d’extensions par défaut. Dans mon cas, il m’en manque une : la librairie mCrypt !

Pour information mCrypt est une librairie écrite en C et en Assembleur qui implémente la majeure partie des algorithmes de chiffrement dans la plupart des modes de chiffrement. Elle donc indispensable pour la cryptage/décryptage de données au sein d’une application Web (utile par exemple pour n’autoriser que la manipulation d’identifiants de données cryptés côté client…).

Après des heures passées à s’acharner sur la compilation de cette librairie avec Php 5.3 sous Snow Léopard (Mac OsX 10.6), je tiens à mettre à disposition la procédure qui m’a permis d’arriver à mes fins !

Mais qu’est-ce qui pose problème contrairement à Léopard ?

Le problème est que depuis Snow Léopard, que l’on ai une architecture 32 ou 64 bits, il faut compiler la librairie mCrypt en 64 bits.

» Si certains savent le pourquoi, merci de me l’expliquer car à ce jour je n’ai pas trouvé de raison(s) valable(s)…

Pré-Requis

Pour pouvoir installer la libraire mCrypt, il vous faut la librairie mHash d’installée sur votre système. Pour cela, veuillez vous référer à l’article suivant.

Installation de la librairie mCrypt sur Snow Léopard

Pour commencer, il faut télécharger les sources de cette librairie depuis (dans mon cas, j’ai téléchargé la version 2.6.8) : http://sourceforge.net/projects/mcrypt

Ensuite il faut préciser l’architecture utilisée pour la compilation (pour rappel, il faut forcer la compilation tout comme si nous avions une architecture 64bits). Pour cela, il suffit d’exporter la variable d’environnement suivante :

export CFLAGS="-arch x86_64"

A partir de ce moment là, il reste à suivre les étapes suivantes :

# tar -xvzf mcrypt-2.6.8.tar.gz
# cd mcrypt-2.6.8
# ./configure --disable-shared --disable-posix-threads
# make
# sudo make install

Note : Au moment du « make » si vous rencontrez une erreur du genre « [rfc2440.o] Error 1« , il faut ouvrir avec un éditeur de texte le fichier src/rfc2440.c puis remplacer la ligne 26 « #include <malloc.h> » par « #include <sys/malloc.h>« . Relancez la commande « make » est tout devrait être Ok.

Recompilation de la librairie mCrypt pour Php 5.3

Téléchargez les sources depuis http://www.php.net/get/php-5.3.0.tar.gz/from/a/mirror, puis procédez comme suit :

# tar -xvzf php-5.3.0.tar.gz
# cd php-5.3.0/ext/mcrypt/
# phpize
# ./configure
# make
# sudo make install

Après l’installation, l’extension est disponible normalement dans ce répertoire :

/usr/lib/php/extensions/no-debug-non-zts-20090626/

Il reste à configurer Php pour qu’il sache où trouver cette nouvelle extension :

  • Ouvrir avec vi le fichier de configuration Php (par défaut sous /etc/php.ini).
  • Précisez le chemin absolu du répertoire où Php doit chercher l’extension, avec la directive : extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20090626".
  • Vérifiez que mcrypt.so est bien dans ce répertoire et non pas dans no-debug-non-zts-20090613 par exemple.
  • Ajoutez le chargement manuel de l’extension avec la directive : extension=mcrypt.so.

Il vous reste à redémarrer Apache + Php est la librairie est disponible.

8 commentaires :

AmorenKo
9 août 2010

Bonjour, après avoir longtemps cherché une réponse simple, claire et en français à mon message d’erreur « PHP ne peut charger l’extension mcrypt. Veuillez vérifier votre configuration de PHP. », j’ai trouvé votre tuto. j’essaie de suivre vos instructions : j’ai téléchargé la version mhash qui est arrivée dans mon dossier téléchargement. que dois-je en faire et où dois-je taper les lignes de code que vous mentionnez (dans mon terminal ?) :
# ./configure
# make
# make install
si vous pouviez m’aider… je vous en serais très reconnaissante.
merci de me répondre.
gaëlle

Francois
10 août 2010

Bonjour,
Sous Mac, l’application « Terminal » est disponibles dans le dossier des applications systèmes.
Une fois l’application lancée, il faut se placer dans votre dossier téléchargement qui contient mhash.
Pour cela : cd ~/Telechargements/dossier_mhash/(par exemple)
puis tapez les commandes indiquées dans l’article (si vous avez télécharger un « zip » ou un « tar » de mhash, il faut préalablement dé-zipper le tout.

En espérant que cela puisse aider.
Francois

AmorenKo
12 août 2010

C’est drôlement gentil de m’avoir répondu. Cette petite explication a le mérite d’être simple et claire pour des gens comme moi qui n’ont pas la chance de pouvoir faire des études informatiques.Mille mercis.

Edmund
16 août 2010

Bonjour à vous, auriez-vous une piste pour comprendre pourquoi je n’arrive pas à compiler comme vous le faites dans votre tutorial?
Ma configuration: php 5.3.1
max osx 6.2.4
Xcode: 3.2.3

Par exemple pour l’installation de mhash:

après cd mhash-0.9.9.9
sudo ./configure
Jusque là ça va. Mais dès que j’entre made, le terminal réponde Nothing to be done for 'all'

De même pour mcrypt… ?

Francois
17 août 2010

Bonjour, il faut taper la commande « make » et non « made ».
Normalement, la commande devrait être reconnue.
Bonne journée,
Francois

14 novembre 2010

Merci pour toutes ces précisions! Pour ma part j’ai dû installer libmcrypt-2.5.8 en plus.

Thend
28 novembre 2010

Hello, pour ma part, arrivé a l’étape de « make » de l’installation MCrypt, ca me dit ça:

make: *** No targets specified and no makefile found. Stop.

Et en effet y’en a pas??

Francois
28 novembre 2010

Bonsoir,
Généralement la commande « make » n’est disponible que lorsque la commande « configure » s’est bien déroulée.
Des erreurs ou warnings durant le « configure » à remonter ? (pour avoir plus d’infos).
Bonne soirée.