Monday, September 12, 2011

Habilitar XDebug en XAMPP

XDebug es una extension para PHP que permite depurar/analizar el codigo y ya viene incluida en la ultima version de XAMPP, solo se necesitan un par de modificaciones para activarla.

La librería esta almacenada en c:\xampp\php\ext con el nombre php_xdebug.dll, de igual manera si no se encuentra simplemente se descarga del sitio Xdebug y se guarda en esta ubicacion.


Ahora tenemos que editar el archivo PHP.INI que se encuentra en c:\xampp\apache\bin para lo cual necesitamos primero detener el servicio de APACHE, ya sea usando C:\xampp\xampp-control.exe o deteniendo manualmente el servicio usando services.msc.


Una vez abierto PHP.INI con nuestro editor, buscamos [XDebug] y removemos el ";" al inicio de cada linea dentro de este bloque. El simbolo ";" es usado para comentar lineas, de igual manera si vemos la linea de [XDebug] con este simbolo se lo quitamos.



zend_extension_ts=”c:\xampp\php\ext\php_xdebug.dll”
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir=”c:\xampp\tmp”



Enseguida buscamos [Zend] en el mismo archivo y hacemos lo contrario a cada una de las lineas dentro de este bloque, agregamos el simbolo ";" al inicio de cada linea.


Ahora podemos reiniciar el servicio de APACHE y podemos verificar que XDebug este funcionando simplemente navegando a la direccion http://localhost/xampp/phpinfo.php y observamos en el segundo recuadro un mensaje como este


This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
    with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans



Notese que la linea en negritas sobre el mensaje solo aparecerá una vez que la librería este funcionando.


Nota:Si se desa analizar el codigo desde un equipo remoto, entonces debemos modificar la linea xdebug.remote_host en el archivo PHP.INI y poner la direccion ip del equipo remoto al igual que verificar que ambos equipos tengan acceso al puerto 9000 que es el que esta configurado por defecto.



No comments:

Post a Comment