martes, 28 de febrero de 2012

Como instalar Xdebug

Xdebug es un debugger para PHP extremadamente versátil. Además de las funciones esenciales de un debugger común, incluye un profiler y un tracer.

Xdebug se puede instalar directo de los repositorios de Ubuntu:
sudo apt-get install php5-xdebug

Una vez instalado, agregamos esto a la configuración:
#/etc/php5/apache2/conf.d/xdebug.ini

#verificar que sea la ruta correcta 
zend_extension=/usr/lib/php5/20090626/xdebug.so

xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000

xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1

# Aquí se guardan los archivos de salida. Puede ser la ruta que 
# quieras pero el directorio ya debe existir y ademas debe 
# tener permisos de escritura para el usuario que ejecuta el 
# script
xdebug.profiler_output_dir="/tmp/xdebug"

xdebug.show_mem_delta=1
xdebug.trace_format=1
xdebug.trace_enable_trigger=1
xdebug.auto_trace=0

# Aquí aplican las mismas condiciones que para el profiler
xdebug.trace_output_dir="/tmp/xdebug"


Después de hacer las modificaciones, guardamos el archivo y reiniciamos apache para que los cambios hagan efecto.

Profiler


El profiler nos sirve para identificar las funciones dentro de nuestro script que son llamadas con mas frecuencia, y además nos permite saber cuales son las mas lentas.

Para iniciar el profiler desde el browser, mandar un parametro extra por GET:

http://example.com/pagina.php?XDEBUG_PROFILE=1

Para inciar el profiler desde la línea de comandos:

php -d xdebug.profiler_enable=1 pagina.php

En los dos casos, Xdebug generará un archivo de texto con una gran cantidad de información sobre la ejecución del script. La cantidad de información es tan grande que es practicamente imposible analizar el archivo a simple vista. Para esto usamos KCachegrind, una herramienta que sirve para interpretar los archivos que genera xdebug.

sudo apt-get install kcachegrind

Tracer


El tracer nos permite hacer un análisis del uso de memoria del script.

Para iniciar el profiler desde el browser:

http://example.com/pagina.php?XDEBUG_TRACE=1

Para inciar el tracer desde la línea de comandos:

php -d xdebug.auto_trace=1 pagina.php

Al igual que el profiler, el archivo generado por el tracer no es realmente útil por si solo, pero podemos utilizar este script para generar un listado mas práctico.

php tracefile-analyser.php trace.2043925204.xt memory-own 20

No hay comentarios.:

Publicar un comentario