Installation manuel de Xdebug pour le débogage à distance

Pour compiler et ajouter Xdebug à Apache il suffit d’exécuter les lignes ci-dessous qui vont compiler Xdebug et activer le débogage à distance :
cd /opt
git clone git://github.com/derickr/xdebug.git
cd xdebug
phpize
./configure --enable-xdebug
make
sudo make install

Il ne reste plus qu’à ajouter la configuration dans un fichier et la lié à Apache.

Rendez-vous dans le dossier qui ressemble à celui ci /usr/lib/php5/20131226-zts afin d’y trouver la librairie compiler xdebug.so

xdebug.remote_port=9000, si vous désirez changer de port il vous suffit de modifier ce port.
xdebug.remote_host=10.0.2.15
, pour changer votre adresse IP fourni par votre Vagrant ou utiliser l’adresse IP du serveur désiré.

echo "[xdebug]
zend_extension=/usr/lib/php5/20131226-zts/xdebug.so
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_host=10.0.2.15
xdebug.remote_handler=dbgp
xdebug.show_local_vars=0
xdebug.var_display_max_data=10000
xdebug.var_display_max_depth=20
xdebug.show_exception_trace=0" > xdebug.ini
mv xdebug.ini /etc/php5/mods-available
sudo php5enmod xdebug
service apache2 restart

Maintenant on vérifie que Xdebug est bien configuré :

php -m | grep xdebug

La commande va lister les modules installés et récupérer Xdebug. Si le module est installé la ligne de commande retournera dans le terminal « xdebug ».

 

Lors du debuggage de script CLI afin de le faire depuis netbeans utiliser la commande :

php -d "xdebug.remote_host=10.0.2.2" <mon_script.php> <params>

la valeur 10.0.2.2 s’obtiens en faisant sur votre vagrant la commande :

netstat -rn

vous allez avoir un tableau du genre :

Kernel IP routing table
Destination      Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0          10.0.2.2        0.0.0.0         UG        0 0          0 eth0
0.0.0.0          10.0.2.2        0.0.0.0         UG        0 0          0 eth0
10.0.2.0         0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.56.51    0.0.0.0         255.255.255.0   U         0 0          0 eth1

Il faudra prendre la valeur de Gateway de la première ligne  soit :10.0.2.2

alias à ajouter au fichier ~/.bash_aliases

 

alias www='cd /var/www/'
alias phpx='export XDEBUG_CONFIG="idekey=netbeans-xdebug" && php -d "xdebug.remote_host=10.0.2.2" -d "xdebug.profiler_enable=0"'
alias phpxp='export XDEBUG_CONFIG="idekey=netbeans-xdebug" && php -d "xdebug.remote_host=10.0.2.2" -d "xdebug.profiler_enable=1" -d "xdebug.profiler_output_dir=/var/www/callgrind"'
alias phpu='phpunit -c app/'
alias phpuc='phpunit --coverage-html reports/ -c app/'

 

Un commentaire