Ce qui nous intéresse aujourd’hui est la compilation de l’extension GD pour PHP5. L’environnement doit être :
– Mac Os X Léopard 10.5.3 (ou plus) et Mac OS X Léopard Server
– Xcode 3.x
– X11
– X11 SDK
– Apache 2
– PHP 5
Mac Os X ne dispose pas en natif de la librairie JPEG. Il faut donc commencer par la compiler et l’installer. Pour ce faire :
1) Ouvrez le terminal
2) tapez les commandes suivantes (sans le $):
$ mkdir -p /SourceCache
$ cd /SourceCache
$ curl -O http://www.ijg.org/files/jpegsrc.v6b.tar.gz
Note : La dernière commande permet de télécharger le fichier et l’enregistrer dans le dossier SourceCache qui se trouve à la racine du disque dur. Il est possible de télécharger l’archive par le navigateur. Enregistrez l’archive dans le dossier SourceCache qui est à la racine du disque dur. Puis décompressez le !
3) Nous allons maintenant décompressez l’archive si vous ne l’avez pas déjà fait :
$ tar xzpf jpegsrc.v6b.tar.gz
4) Nous allons rentrez dans le dossier puis préparer la compilation de la librairie :
$ cd /SourceCache/jpeg-6b
$ cp /usr/share/libtool/config.sub .
$ cp /usr/share/libtool/config.guess .
Les deux dernière commande permettent de copier des fichiers dans le dossier en cours. Il faut bien mettre la commande complète avec le « . » (point).
Maintenant les choses se complique un peu ! Il va falloir connaitre n’architecture de votre Mac. Pour cela allez dans le menu pomme puis « A propos de ce Mac ».
Si en face de processeur vous avez :
– PowerPC G3 (très tare)
– PowerPC G4
– Core Duo
– Pentium 4 (parfois écrit P4)
Et bien votre ordinateur a une architecture 32 bits !
Si vous avez :
– PowerPC G5
– Core 2 Duo
– Xeon
Et bien votre ordinateur a une architecture 64 bits !
5) Maintenant que vous connaissez votre architecture choisissez la commande pour préparer la compilation selon votre cas :
Architecture 32 bits :
$ ./configure –enable-shared
Architecture 64 bits :
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp » CCFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe » CXXFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe » LDFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load » ./configure –enable-shared
Attention : tout doit être sur la même ligne !
6) La compilation :
$ make
7) Préparation à l’installation :
$ sudo mkdir -p /usr/local/include
$ sudo mkdir -p /usr/local/bin
$ sudo mkdir -p /usr/local/lib
$ sudo mkdir -p /usr/local/man/man1
Note : lors de la première utilisation de « sudo » il vous demandera votre mot de passe tapez-le. Vous avez droit à 3 essai avant que cela annule la commande ! Rien ne s’affiche lors de la saisie du mot de passe et c’est normal !
8) Installation :
$ sudo make install
Maintenant les pré-requis pour la compilation de GD en temps que module de PHP est complète ! Nous allons pouvoir nous concentrer sur PHP et GD :
1) Le terminal est encore ouvert (si c’est pas le cas ouvrez le)
2) Retournons dans notre cache de code source :
$ cd /SourceCache
3) On télécharge les sources de PHP. Les sources contiennent les dossiers d’extension pour PHP.
Nous le téléchargeons là ou Apple à mis à disposition les codes sources de la partie libre de Mac Os X ! Il pèse 7,5Mo environ !
$ curl -O http://www.opensource.apple.com/darwinsource/10.5.2/apache_mod_php-44/php-5.2.5.tar.bz2
4) On décompresse :
$ tar xjf php-5.2.5.tar.bz2
5) On rentre dans le dossier de PHP puis des extensions puis GD :
$ cd /SourceCache/php-5.2.5/ext/gd
6) on prépare l’extension à devenir une extension de PHP avec la commande :
$ phpize
Note : si la commande indique des erreurs de permission exécutez : « $ sudo phpize » et saisissez votre mot de passe. Sudo garde le mot de passe 5 minutes. Passez ce délai il redemande le mot de passe pour continuer.
7) Encore une fois choisissez la commande qui correspond à votre architecture :
Architecture 32 bits :
$ ./configure –with-zlib-dir=/usr –with-jpeg-dir=/usr/local/lib –with-png-dir=/usr/X11R6 –with-freetype-dir=/usr/X11R6 –with-xpm-dir=/usr/X11R6
Architecture 64 bits :
$ MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp » CCFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe » CXXFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -g -Os -pipe » LDFLAGS= »-arch ppc -arch ppc64 -arch i386 -arch x86_64 -bind_at_load » ./configure –with-zlib-dir=/usr –with-jpeg-dir=/usr/local/lib –with-png-dir=/usr/X11R6 –with-freetype-dir=/usr/X11R6 –with-xpm-dir=/usr/X11R6
Note : Selon certain critère pas très bien connu, il arrive que la commande génère l’erreur suivante : « /usr/X11/lib/libpng12.0.26.0.dylib: No such file or directory ». Dans ce cas éditez le fichier : « /usr/X11/lib/libpng.la » par la commande : « $ sudo pico /usr/X11/lib/libpng.la ».
Rechezchez les lignes :
library_names=’libpng12.0.dylib libpng12.dylib libpng12.0.26.0.dylib’
current=26
age=26
et remplacez les par :
library_names=’libpng12.0.dylib libpng12.dylib libpng12.0.24.0.dylib’
current=24
age=24
Attention : évitez le copier-coller ! Des caractères spéciaux pourait géner !
Note : l’utilisation de pico se fait avec les racourcis suivant : Ctrl + W pour faire une recherche; Ctrl + O pour enregistrer le fichier; Ctrl + X pour quitter.
8) Compilation de l’extension :
$ make
9) Installation de l’extension :
$ sudo make install
Résultat de l’installation :
iMac-G5:gd admin $ sudo make install Password: Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20060613/ Installing header files: /usr/include/php/
Copier le chemin se trouvant après : « Installing shared extensions: « . Cela sera utile pour la configuration de PHP.
10) configuration de PHP pour prendre en compte les extensions.
$ sudo pico /etc/php.ini
La première chose à faire est de rechercher (raccourci : Ctrl + W ) le texte : « extension_dir » (sans les guillemets).
La valeur par défaut est : extension_dir = « ./ »
Mettez un ; (point-virgule) au début de la ligne pour la désactivez puis saisissez : extension_dir = « »
et collez entre les guillemet le chemin que vous avez copier avant d’éditer le fichier de configuration de PHP.
Cela doit donner :
extension_dir = « /usr/lib/php/extensions/no-debug-non-zts-20060613/ »
Puis faire une recherche de « extension= »
Avant la ligne « ; Windows Extensions » ajoutez des lignes vide et sur l’une d’elle écrivez :
extension=gd.so
Maintenant enregistrez (Ctrl + O puis entrée) puis quittez pico (Ctrl + X).
Dernière chose : redémarrer le serveur Apache par la commande :
$ sudo apachectl restart
Un petit test pour voir si PHP charge bien la l’extension ?
tapez dans le terminal :
$ php -i|grep -i gd
Note : la barre vertical s’obtiens par le raccourcis : alt (option) + Maj + L
Le résultat doit être à quelque chose près :
gd GD Support => enabled GD Version => bundled (2.0.34 compatible)
Si rien n’apprait c’est que l’extension n’est pas chargé!
Autre moyen de le savoir :
1) tapez dans le terminal :
$ echo « » > /Library/WebServer/Documents/info.php
2) puis dans safari allez à l’adresse : http://localhost/info.php
3) Cherchez GD. Si vous l’avez, l’extension est chargé !
Merci d’avoir suivi mon tutoriel. Il est le résultat d’une journée de travail ! N’hésitez pas à me faire part de vos retour !