Debugger un projet Zend MVC à distance avec Netbeans et Xdebug

logo-zend-frameworkContexte

Débugger pas à pas une application Php basée sur Zend Framework, hébergée sur un serveur distant Ubuntu 14.04.
Les sources du projet Netbeans sont donc distantes.

Prérequis

– Activer XDebug sur le serveur

Au cas où il ne serait pas déjà installé

sudo apt-get install php5-xdebug

Par défaut, l’extension n’est pas active. Pour l’activer

sudo php5enmod xdebug

Il faut maintenant activer le debugging à distante en ajoutant la directive remote_enable au fichier /etc/php5/mods-available/xdebug.ini. Il doit ressembler à ça

zend_extension=xdebug.so
xdebug.remote_enable=On

Redémarrer Apache et xdebug devrait apparaitre avec phpinfo()
xdebug
– Créer un tunnel SSH

Afin que Xdebug puisse communiquer correctement avec Netbeans, il faut que le serveur puisse se connecter au client.

Avec Putty, configurer la connexion et ajouter une redirection de port dans la section SSH > Tunnels

putty-xdebug

Netbeans

Menu Tools > Options > Php > Debugging

Décocher « Stop at first line »

netbeans-debug

Ouvrir le projet dans Netbeans, aller dans les propriétés du projet, section Run configuration.
Ouvrir les propriétés avancées
Cocher « Ask every time » de façon à pouvoir debugger n’importe quelle url sans avoir à passer par la page d’accueil.
Ajouter les correspondances de chemins pour que Netbeans fasse la correspondance entre l’arborescence locale et celle distante. Un mapping du repertoire racine de l’application doit suffire.
Pour ceux qui veulent aussi debugger le framework, il suffit de disposer des sources du framework en local et d’ajouter le mapping correspondant (et surement l’ajouter dans l’include path au passage).
netbeans-project

Exécution !

Il ne reste plus qu’à ouvrir le script qu’on veut tester, y placer un point d’arrêt et balancer la sauce par CTRL+F5.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *