Articles

Divers

PHP/MySQL sous Snow Leopard et Xdebug (Eclipse)

Par Contributeur - Publié le

Installer PHP/MySQL est devenu particulièrement facile sous Mac OS X, pourtant les choses ne sont pas aussi évidentes lorsque l'on souhaite utiliser des outils de debug efficaces. Nouveaux développeurs sous Mac OS X, cet article est là pour vous guider.

Attention !



Attention, même si les manipulations exposées ici se veulent être les plus simples possible, il suffit d'une erreur pour que votre serveur apache ne démarre plus, pour planter mysql, etc. Il est donc préférable que vous compreniez ce que vous faites. En cas de problème, le forum est à votre disposition (évitez d'utiliser les réactions à cet effet, elles sont beaucoup moins lues et vous aurez moins de réponses).

Logiciels utilisés



Apache/PHP : Nous utiliserons le serveur intégré à Mac OS X. Vous pourrez certes économiser quelques clics en installant MAMP, XAMP ou encore le package de Marc Liyanage sur entropy.ch, mais Mac OS X est livré avec un serveur prêt à l'emploi, configurable en quelques clics, il serait donc dommage de réinstaller des outils qui nous sont déjà fournis. Cependant si vous préférez malgré tout utiliser les solutions précitées, le reste de l'article s'y appliquera aussi bien, moyennant quelques ajustements.

MySQL : Nous utiliserons la dernière version stable et gratuite de MySQL, à ce jour la 5.1.39 (Community Serveur). Si vous utilisez MAMP ou XAMP, vous n'aurez pas besoin d'installer MySQL.

PHPMyAdmin : Logiciel en PHP vous permettant d'administrer facilement vos bases de données.

PHP/MySQL sous Snow Leopard et Xdebug (Eclipse)
Eclipse : Il s'agit probablement de l'éditeur gratuit le mieux fourni pour développer en PHP. Pour ceux qui ne le connaissent pas, Eclipse est LA référence en matière de développement Java/JEE, avec un quasi monopole en entreprise. Avec PDT, notamment depuis la version 2, il devient également un excellent IDE pour le PHP, tout en étant gratuit.

TextWrangler : éditeur simple et léger, il est le petit frère du célèbre BBedit. Il vous sera utile pour modifier des fichiers sans avoir besoin de charger tout l'environnement d'Eclipse. Il a notamment l'avantage de très bien se comporter avec les gros fichiers, ce qui n'est pas le cas de nombre d'éditeurs.

Xdebug : Bibliothèque vous permettant de faire du débugage en PHP avec Apache. Il s'intègre parfaitement avec Eclipse-PDT.

Installation de PHP



En fait, il ne s'agit pas véritablement d'une installation, puisque PHP est déjà installé sur votre machine. Cependant, il n'est pas toujours activé, nous allons donc nous en charger.

Pour commencer, rendez-vous dans le menu "Aller" du Finder, et choisissez "Aller au Dossier".

PHP/MySQL sous Snow Leopard et Xdebug (Eclipse)


Tapez "/etc/apache2", validez.

PHP/MySQL sous Snow Leopard et Xdebug (Eclipse)


Ouvrez le fichier httpd.conf avec TextWrangler.
Localisez la ligne suivante :
#LoadModule php5_module libexec/apache2/libphp5.so


Le symbole dièse (#) sert à mettre la ligne en commentaire. Il faut donc le supprimer. Si vous n'avez pas ce symbole, vous n'avez rien à faire, c'est que php est déjà actif.

TextWrangler va vous demander si vous souhaitez déverrouiller le fichier, acceptez (Unlock).

Enregistrez. TextWrangler vous demande alors de saisir votre mot de passe, c'est normal, le fichier appartient à l'utilisateur apache, et il faut donc s'identifier avec un compte admistrateur pour pouvoir le modifier.

Rendez-vous maintenant dans les préférences système dans le panneau Partage. Décochez puis recochez la case Partage web. Cela a pour effet de redémarrer le serveur apache, pour prendre en compte nos modifications.

PHP/MySQL sous Snow Leopard et Xdebug (Eclipse)


Nous allons maintenant vérifier que tout a bien fonctionné.

Avec TextWrangler créez un fichier phpinfo.php, que vous enregistrez dans /Bibliothèque/WebServer/Documents (/Library/Webserver/Documents en anglais ou depuis le terminal et le menu "aller à"). Attention, il s'agît du dossier Bibliothèque qui se trouve à la racine de votre disque dur, pas celui de votre compte utilisateur.

Dans ce fichier saisissez les lignes suivantes :

<?php
phpinfo();
?>


Tapez maintenant l'adresse http://localhost/phpinfo.php

(si vous avez préféré placer ce fichier dans votre dossier Sites, il sera accessible à l'adresse http://localhost/~votreNomUtilisateur/phpinfo.php)

Si tout a bien marché, une page devrait s'afficher avec toutes les informations concernant la configuration de PHP et de ses modules.

MySQL



Venons-en maintenant à MySQL, cette fois c'est encore plus simple, il n'y a qu'à télécharger la dernière version et utiliser le programme d'installation.

Procurez vous donc la dernière version stable disponible pour votre machine/os :
http://dev.mysql.com/downloads/mysql/

Avec une machine utilisant un Core2Duo ou supérieur, ce sera donc la version x86 64bits pour Mac OS X 10.5 (il n'y a pas de version x.6, mais la x.5 fonctionne parfaitement sous Snow Leopard bien sûr). Prenez la version Package Format, l'autre est un peu plus galère à installer.

Attention si vous avez démarré Snow Leopard avec le noyau en 64bits (en appuyant sur 6 et 4 au démarrage), pour raison obscure l'image disque ne veut alors pas se charger.

Dans cette image disque vous trouverez 4 éléments :
- Un ReadMe, que vous allez vous faire un plaisir d'ignorer.
- L'installeur pour MySQL, suivez toutes les étapes, il vous guidera.
- Un panneau pour les "Préférences Système" qui vous permettra de démarrer/arrêter MySQL facilement. Double-cliquez dessus, il s'installera tout seul.
- Un installeur "StartupItem" pour démarrer automatiquement MySQL au démarrage de la machine. À vous de choisir si vous l'installez ou pas. Pour ma part j'ai un serveur MySQL qui tourne en continue depuis Mac OS 10.0, il ne m'a jamais gêné.

Ouvrez le panneau MySQL des "préférences système" (il se peut que les préférences système se relancent en 32bits sous Snow Leopard, c'est normal, ne vous inquiétez pas).

PHP/MySQL sous Snow Leopard et Xdebug (Eclipse)


Cliquez sur le bouton "Start MySQL Server". Si le voyant passe au vert, c'est que vous avez réussi.

PHPMyAdmin



Pour administrer tout ça, et vérifier que tout a bien marché, nous allons maintenant installer phpMyAdmin.

Pour cela, c'est toujours aussi simple, commencez par le télécharger :

http://www.phpmyadmin.net

Placez le dossier de phpMyAdmin dans /Bibliothèque/WebServer/Documents ou dans votre dossier Sites après l'avoir renommé en "phpmyadmin". Accédez à l'application :

http://localhost/phpmyadmin/

Quelques remarques (si vous n'avez pas lu la doc) :

- Il faut renommer le fichier config.inc.sample.php en config.inc.php
- Ajouter (ou modifier) la ligne suivante :
$cfg['Servers'][$i]['AllowNoPassword'] = true;


(Ceci est nécessaire afin de pouvoir se loguer sans mot de passe (config par défaut de mysql))

S'il vous demande un mot de passe, le nom du compte mysql par défaut est "root" et il n'y a pas de mot de passe. Si tout se passe bien, vous devriez maintenant pouvoir administrer facilement vos bases de données, gérer les utilisateurs, etc…
Vous pouvez entre autre mettre un véritable mot de passe à l'utilisateur root, pour plus de sécurité.

php.ini



Pour la suite de cet article, nous allons avoir besoin de modifier le fichier "php.ini", qui gère la configuration de php.

Pour cela, réutilisez le menu "aller"->"aller au dossier" du finder, et tapez :
/etc


Vous allez trouver un fichier php.ini.default. Il faut le dupliquer, puis renommer la copie en php.ini. Évidemment, vous n'avez pas les droits sur ce fichier, lui aussi est la priorité exclusive de notre apache favoris. Il va donc falloir passer par le terminal.

Ouvrez donc votre shell préféré, et tapez la ligne suivante :
sudo cp /etc/php.ini.default /etc/php.ini


Tapez votre mot de passe, validez.

Nous allons maintenant éditer ce fichier, parce que si php sait très bien se connecter à mysql quand il n'y a pas de php.ini, l'adresse du socket fournie dans le fichier php.ini est incorrecte ! Merci Apple.

Il faut donc repérer les lignes suivantes :

pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /var/mysql/mysql.sock
mysqli.default_socket = /var/mysql/mysql.sock


Et les remplacer par :

pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock


Redémarrez Apache (depuis les préférences système partage, comme vu précédemment). Si phpmyadmin fonctionne toujours, c'est que l'opération a réussie.

Installation de Xdebug



Cette fois, c'est à peine plus compliqué. Tout d'abord il faut installer xdebug, pour cela, on se procurera un binaire à l'adresse suivante :

http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging

Le site officiel ne fournissant que les sources, ce qui est toujours un peu plus contraignant, et nous on n'est pas du genre à se fatiguer inutilement, un développeur c'est quelqu'un qui écrit des logiciels pour faire le travail à sa place :-)

Vous prenez donc la version Mac OS X x86 (sauf bien sûr si vous êtes sur un G4/G5, dans quel cas c'est la version PowerPC qu'il vous faut).

Décompressez, vous aurez alors différentes versions correspondant aux versions de php associées, celle qui nous intéresse à ce jour sous Snow Leopard est la 5.3.

Nous allons placer cette bibliothèque dans le répertoire "extensions" de /usr/lib/php. Encore une fois, il nous faudra avoir recours au terminal, car nous n'avons pas le droit d'écrire dans ce répertoire qui ne nous appartient pas.

Tapez la commande suivante :

sudo cp ~/Downloads/Komodo-PHPRemoteDebugging-5.2.1-34168-macosx/5.3/xdebug.so /usr/lib/php/extensions/

Rentrez votre mot de passe quand on vous le demande, validez.

Si vous n'avez pas décompressé la bibliothèque Xdebug dans votre répertoire de téléchargements, ou que le numéro de version a changé, il vous faudra bien sûr adapter la commande en indiquant l'adresse exacte de votre bibliothèque "xdebug.so". Attention, dans le terminal il faut utiliser les noms anglais, certains répertoires du système n'ont pas le même nom en anglais et en français (téléchargements -> downloads, bureau -> desktop, bibliothèque -> library, …).

Si vous utilisez MAMP, placez manuellement le fichier xdebug.so dans votre répertoire MAMP. En fait l'emplacement de ce fichier n'a pas une grande importance, il faudra juste indiquer le bon emplacement dans le php.ini

Retournez maintenant dans le répertoire "/etc" (menu aller, aller au dossier).

Ouvrez php.ini. (si vous utilisez mamp, évidement le fichier php.ini se trouve dans le répertoire de mamp).

Ajoutez les lignes suivantes à la fin du fichier :

zend_extension=/usr/lib/php/extensions/xdebug.so

[Xdebug]
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1
xebug.remote_handler=dbgp


Redémarrez Apache (Préférences Système -> partage -> partage web).

Retournez à l'adresse http://localhost/phpinfo.php ou vous devriez trouver les infos relatives au plugin Xdebug.
Si oui, l'installation est terminée !

Débuguer avec Eclipse



Il n'est pas question d'écrire ici un tutoriel complet sur Eclipse, cependant ce logiciel bien que très complet reste très facile à prendre en main. Il n'y a pas un bouton en trop.
Si vous avez besoin d'aide, internet fourmille d'articles, notamment sur des sites comme developpez.com

Téléchargez Eclipse sur le site officiel :

http://www.eclipse.org/downloads/

Attention, il y a plusieurs versions, celle qui nous intéresse est la version PDT.

Si vous utilisez déjà Eclipse pour du Java, ou autre chose, vous pouvez installer PDT sur une autre version en rajoutant ce site dans le panneau de mise à jour (menu Help, "Install new software") :

http://download.eclipse.org/tools/pdt/updates/2.0/

Il est préférable dans ce cas d'avoir tout de même une version JEE, pour avoir tous les outils de développement web.

Il existe différentes versions d'Eclipse-PDT pour Mac OS X. Celle qui se montrera la plus performante est évidemment la version Cocoa en 64bits (sous réserve d'avoir une machine 64 bits).

Au premier lancement, Eclipse vous demande de créer un workspace. Il n'est pas indispensable qu'il se trouve dans votre dossier Sites (ou dans le documentroot de MAMP), il peut se placer où vous voulez, par contre il faudra alors que les projets soient à l'extérieur du workspace, et qu'eux se trouvent dans votre dossier Sites.

Créer un nouveau projet php, soit à partir de vos sources existantes, soit un projet vide, le projet doit donc se trouver dans votre dossier Sites ou dans /Bibliothèque/WebServer/Documents (ou dans le documentroot de MAMP).

Dans le menu "Eclipse" choisissez "Preferences". À gauche sélectionnez PHP, puis PHP Executables.

Cliquez sur "Add", rentrez les informations suivantes :

PHP/MySQL sous Snow Leopard et Xdebug (Eclipse)


Validez, fermez la fenêtre de préférences en cliquant sur "Ok".

Dans le menu run d'Eclipse choisissez Debug configuration.

Sélectionnez PHP Web Page à gauche. Cliquez sur l'icône avec un "+" en haut. Vous voyez apparaître un élément "New_configuration" en dessous de "PHP Web Page", ouvrez cette configuration.

- Dans serveur debugger choisissez "XDebug".
- À côté de PHPServer cliquez sur "Configure".
- Vérifiez que l'adresse est bien "http://localhost".
- Dans le champ "File" choisissez la page d'accueil de votre site dans votre projet.

PHP/MySQL sous Snow Leopard et Xdebug (Eclipse)


Dans le champ URL vous vous apercevez que le logiciel a tenté de deviner l'adresse qui permet d'accéder à ce fichier en passant par le serveur apache. Dans l'exemple ci dessus :
http://loclahost/m4k/index.php.

À moins d'avoir placé votre workspace Eclipse dans /Bibliothèque/WebServer/Documents il est probable que cette adresse soit fausse.

MAIS NE LA MODIFIEZ PAS. En effet, le debuguer n'arrive à utiliser nos points d'arrêt que si le workspace Eclipse se trouve effectivement dans ce répertoire. Cependant, nous allons ruser en créant un alias du côté d'Apache, pour que cette adresse devienne la bonne, nous verrons cela un peu plus loin.
Pour l'instant, décocher la case "Break at first Line", c'est un peu désagréable à l'usage… ;-)

Passez ensuite sur l'onglet "Common" dans "Display in favorite menu", cochez la case "Debug". Cela permettra de lancer facilement notre debugage depuis le menu debug (celui avec un scarabée dans les raccourcis d'Eclipse).
Cliquez sur Apply, fermez la fenêtre.

Revenons à Apache : retournez dans le dossier /etc/apache2 (menu "aller", "aller au dossier" dans le finder).

Ouvrez httpd.conf avec TextWrangler.

Repérez le bloc < IfModule alias_module > et ajoutez une ligne de ce type :
<IfModule alias_module>
Alias /nomDuProjetDansEclipse /Users/votreLogin/cheminVersVotreProjet/nomDuProjet

#Blablabla
< IfModule alias_module>


Cela va dire à Apache que lorsque l'on tape http://localhost/nomDuProjetDansEclipse, il faut en fait ouvrir le fichier qui se trouve dans "/Users/votreLogin/cheminVersVotreProjet/nomDuProjet".
Attention, votre projet doit quand même être dans votre dossier sites, pour qu'apache ait le droit d'y accéder et sache quelles permissions utiliser pour l'accès à ces pages. Bien sûr on peut configurer d'autres dossiers à cet effet, mais ce n'est pas le but de ce tutoriel.

Redémarrez apache.

Dans Eclipse, ouvrez la perspective PHP debug (menu window, perspectives). Dans le menu debug (le scarabée), choisissez votre configuration de debug créée précédemment. La page d'accueil de votre site devrait s'ouvrir dans votre navigateur.

Placez un point d'arrêt dans Eclipse (en double-cliquant dans la marge), chargez une page dans votre navigateur, vous devriez être en debug sur le point d'arrêt !

Vous avez réussi !

Des questions ?



Si vous avez besoin d'aide, une seule adresse :

http://forum.mac4ever.com/, rubrique développement