YACS « Bernard's blog «
Xdebug sous Mac OS X ?
Guide d'installation facile en français
Un complément intéressant de MAMP est l'extension Xdebug, pour faire du profiling sérieux. Mais comment faire pour l'installer sous Mac OS X sans le compiler, etc ?
Un article de référence explique comment faire, mais c'est en anglais. Moi, je vous l'indique dans la langue de Molière...
Première étape, il nous faut trouver une librairie déjà compilée par d'autres, et pour Mac OS X. La solution, c'est de visiter les extensions du projet Komodo et de choisir la librairie la plus récente 'PHP Remote Debugging'. Pour un MacBook Pro sous Intel, c'est 'Mac OS X / x86'.
Un clic sur le lien 'download' lance le téléchargement et vous vous retrouvez, après décompression, avec plusieurs répertoires numérotés. Ces numéros correspondent à des versions différentes de PHP, et il faut donc aller regarder la version mise en oeuvre dans MAMP avant d'aller plus loin.
Pour cela, vous pouvez au choix :
lancer le panneau d'aide de MAMP en recopiant l'adresse suivante dans votre navigateur http://127.0.0.1/MAMP/help.php?language=English
activer l'onglet système du panneau de contrôle de yacs
A l'heure où je vous écrit, MAMP gère deux versions de PHP, mais c'est la 5.2.6 qui est active pour yacs. Donc il faut aller chercher le contenu du répertoire 5.2 de l'archive chargée précédemment.
La deuxième étape est d'installer le contenu de ce répertoire, c'est-à-dire le fichier
A priori, le répertoire
La troisième étape est de faire prendre en compte cette extension, en modifiant le fichier
Ouverture du fichier dans un éditeur de texte et ajout des lignes suivantes tout à la fin :
Il faut aussi désactiver l'optimiseur Zend, qui s'avère incompatible avec Xdebug dans les versions dont je dispose. Recherche des lignes correspondantes et insertion d'un point-virgule comme suit :
Puis sauver le fichier, faire un petit tour sur le dashboard, pour arréter et relancer le serveur par le panneau de contrôle de MAMP. Et voilà.
Un article de référence explique comment faire, mais c'est en anglais. Moi, je vous l'indique dans la langue de Molière...
Première étape, il nous faut trouver une librairie déjà compilée par d'autres, et pour Mac OS X. La solution, c'est de visiter les extensions du projet Komodo et de choisir la librairie la plus récente 'PHP Remote Debugging'. Pour un MacBook Pro sous Intel, c'est 'Mac OS X / x86'.
Un clic sur le lien 'download' lance le téléchargement et vous vous retrouvez, après décompression, avec plusieurs répertoires numérotés. Ces numéros correspondent à des versions différentes de PHP, et il faut donc aller regarder la version mise en oeuvre dans MAMP avant d'aller plus loin.
Pour cela, vous pouvez au choix :
A l'heure où je vous écrit, MAMP gère deux versions de PHP, mais c'est la 5.2.6 qui est active pour yacs. Donc il faut aller chercher le contenu du répertoire 5.2 de l'archive chargée précédemment.
La deuxième étape est d'installer le contenu de ce répertoire, c'est-à-dire le fichier
xdebug.so, dans MAMP.A priori, le répertoire
/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922 contient déjà un certain nombre d'extensions .so pour PHP, et c'est là que je dépose le fichier xdebug.so.La troisième étape est de faire prendre en compte cette extension, en modifiant le fichier
php.ini qui, sur ma machine, est dans le répertoire /Applications/MAMP/conf/php5.Ouverture du fichier dans un éditeur de texte et ajout des lignes suivantes tout à la fin :
[xdebug]
zend_extension=/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/xdebug.so
Il faut aussi désactiver l'optimiseur Zend, qui s'avère incompatible avec Xdebug dans les versions dont je dispose. Recherche des lignes correspondantes et insertion d'un point-virgule comme suit :
[Zend]
;zend_optimizer.optimization_level=15
;zend_extension_manager.optimizer=/Applications/MAMP/bin/php5/zend/lib/Optimizer-3.3.3
;zend_optimizer.version=3.3.3
Puis sauver le fichier, faire un petit tour sur le dashboard, pour arréter et relancer le serveur par le panneau de contrôle de MAMP. Et voilà.
