Installer des extensions PECL avec XAMPP pour Mac OS X
[ 16 août 2010 ]Travaillant actuellement à la version internationale du site d'un client, je me suis trouvé face à l'obligation d'installer une extension PECL, en l'occurrence pecl_http, sur ce brave Macintosh avec XAMPP. Comme j'ai un poil galéré pour y parvenir, je me suis dit que ça méritait bien un petit billet.
La version de XAMPP que j'utilise est celle qui contient PHP en version 5.3.0, je vous laisse le soin d'adapter si vous avez une version différente. De même, mon Mac tourne avec Snow Leopard (10.6), il faut donc avoir également les outils de développement fournis par Apple. Mais bon, tout le monde à installé ça, non ?
Comme, XAMPP ne contient pas les fichiers de développement de PHP, il faut donc tout d'abord aller récupérer les sources de PHP correspondant à la version utilisée par XAMPP, dans mon cas la 5.3.0 donc.
L'installation s'attend à trouver ces sources dans /Applications/XAMPP/xamppfiles/include/php/php-5.3.0/php/, le plus simple est donc de copier les sources de PHP dans /Applications/XAMPP/xamppfiles/include/php/php-5.3.0/ en créant les répertoires manquants qui n'existent pas dans la distribution de XAMPP:
- /Applications/XAMPP/xamppfiles/include/
- /Applications/XAMPP/xamppfiles/include/php/
- /Applications/XAMPP/xamppfiles/include/php/php-5.3.0/
(je sais, c'est pas super élégant, mais j'avais pas trop de temps pour réfléchir)
Au cas où vous n'auriez pas effectué les étapes précédentes en ligne de commande, il est temps de lancer le terminal...
cd /Applications/XAMPP/xamppfiles/include/php/php-5.3.0/php/ ./configure
Cette opération permet simplement de générer les fichiers idoines pour l'architecture, inutile de compiler PHP :-)
À ce stade, on pourrait espérer que l'installation via pecl puisse se faire normalement, mais non, ce serait trop simple, donc... je place ici les instructions utilisées pour pecl_http, je vous laisse là encore adapter à vos besoins
cd /tmp pecl download pecl_http tar -xzf pecl_http-1.7.0.tgz cd pecl_http-1.7.0 /Applications/XAMPP/xamppfiles/bin/phpize MACOSX_DEPLOYMENT_TARGET=10.6 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config-5.3.0
make sudo make install
Voilà, en principe tout a du bien se passer, il reste à modifier le fichier php.ini pour y ajouter (ou décommenter), dans la liste des extensions, la ligne:
extension="http.so"
Et bien sûr redémarrer Apache.
Happy scripting :-)