Instalar Zend Debugger para PHP

  • Por
  • PHP
La extensión de PHP Zend Debugger sirve para darle a nuestro servidor capacidades de debugging: hacer debug de aplicaciones PHP en el servidor.
Uno de los pasos para proveer a nuestro servidor de PHP la posibilidad de hacer debug de aplicaciones creadas con PHP es instalar el Zend Debugger, una extensión para PHP que podemos obtener de manera gratuita. En este artículo veremos paso a paso la receta para conseguir instalar Zend Debugger.

El Zend Debugger lo vamos a utilizar en conjunto con el IDE para desarrollo de aplicaciones en PHP PDT, que es una distribución de Eclipse preparada con todos los módulos para poder programar en PHP. Anteriormente ya publicamos un artículo sobre cómo instalar PDT, que deberemos leer también en algún momento.

Primero, veamos el lugar donde conseguir el Zend Debugger: http://downloads.zend.com/pdt/server-debugger/

En esa página podremos ver varias distribuciones del programa para debug en el servidor de aplicaciones PHP. Tenemos que escoger la que sea adecuada para nuestro sistema operativo.

En mi caso, lo he instalado sobre Windows, en mi servidor para desarrollo local. He descargado entonces la primera opción ZendDebugger-5.2.14-cygwin_nt-i386.zip. Es un archivo comprimido que, si abrimos, veremos que tiene varias carpetas, con el debugger para varias versiones de PHP distintas. Tenemos que escoger la que nos corresponda conforme al servidor PHP que tengamos instalado. Por ejemplo, para mi PHP 5.2.6 tengo que utilizar la carpeta 5_2_x_comp.

Dentro hay un DLL, en el caso de Windows, que se tiene que copiar y pegar en el directorio donde están las extensiones de PHP del servidor. Este directorio lo podemos ver mediante un phpinfo(), que muestra la información completa sobre la instalación de nuestro PHP.

Para hacer este phpinfo(), si no lo sabes, tienes que crear un archivo en el directorio de publicación de páginas de tu servidor con el siguiente código:

<?php
phpinfo();
?>


Luego ejecutas ese archivo desde tu servidor local. Algo como http://localhost/phpinfo.php

Verás, entre la información que contiene, algo como esto:


Nota: Por facilitarme la vida, en mi ordenador local he instalado PHP por medio de Wamp Server, que instala de una vez todo lo necesario para trabajar con PHP. Tenemos descrito este proceso en nuestro artículo Instalar PHP 5 fácilmente.

Así pues, en el paso anterior hemos debido copiar el archivo ZendDebugger.dll (en el caso de Windows) en el directorio de extensiones de PHP que tengamos marcado al ver las características de nuestro PHP con phpinfo(). En mi caso he colocado el archivo dll en el directorio c:/wamp/bin/php/php5.2.6/ext/

El siguiente paso será colocar en el php.ini unas líneas para iniciar el Zend Debugger cuando se trabaje con PHP. Esas líneas de código las podemos ver en el archivo descargado del Zend Debugger, en el README.TXT.

El archivo php.ini de nuestro PHP también se puede localizar mediante el phpinfo(), donde aparece en la siguiente imagen:


De todos modos, para que se vea claro, las líneas que debes colocar en el php.ini, son las siguientes:

[Zend]
zend_extension_ts=[AQUÍ LA RUTA COMPLETA A LA DLL]
zend_debugger.allow_hosts=[AQUÍ LAS IPS DONDE DESEAMOS PERMITIR EL DEBUG]
zend_debugger.expose_remotely=always


Las líneas de configuración las podemos colocar en cualquier lugar del archivo php.ini, por ejemplo abajo del todo. Deberías personalizarlas para tu caso y quedaría con algo como esto:

[Zend]
zend_extension_ts=c:/wamp/bin/php/php5.2.6/ext/ZendDebugger.dll
zend_debugger.allow_hosts=127.0.0.1, 192.168.0.136
zend_debugger.expose_remotely=always


Como se puede ver, he colocado la ruta completa a la librería del Zend Debugger y luego una lista de Ips desde la que permitimos las conexiones para debug. La IP 127.0.0.1 es la dirección IP de localhost, que siempre es esa para todos los equipos. Es para decirle que permita debug desde el propio servidor donde tenemos PHP. Y luego, para asegurarme que funciona, he colocado 192.168.0.136 que es la IP de mi ordenador en mi red local, donde tengo el servidor PHP.

Luego tenemos que hacer, según el README.TXT, otro paso, que es colocar el archivo dummy.php, que viene en el fichero comprimido que hemos descargado antes, en la carpeta raíz de publicación del servidor web. Este paso yo me lo salté y aun así me funcionó, pero bueno.

En el PHP.ini nos recomiendan, según una documentación que he leído de PDT, alterar un par de configuraciones. Estas las comento por si acaso pudieran ser de utilidad o necesarias para nuestros casos, pero también me las he saltado y he podido hacer el debug PHP con PDT sin problemas.

implicit_flush = On
output_buffering = 0


Una vez hemos realizado estos pasos, debemos reiniciar el servidor PHP, es decir, reiniciar Apache o lo que tengamos como servidor, para que los cambios realizados en el php.ini se pongan en marcha.

Después de reiniciar el servidor debemos fijarnos que el Zend Debugger está funcionando, que podemos verlo en el phpinfo(). Debe aparecer un texto como este:


Si no aparece ese texto, es que no está funcionando el Zend Debugger, por lo que algo hemos debido hacer mal en la instalación. Revisar los distintos pasos, fijándonos bien en el directorio donde hemos colocado la extensión de Zend Debugger (la ZendDebugger.dll en el caso de Windows) y la ruta de la extensión escrita en el php.ini.

Todas estas explicaciones te deben haber ayudado a instalar esta extensión para depuración de aplicaciones web en PHP, pero si aun así sigues con dudas, te recomendamos ver el vídeo Instalación de Zend Debugger, donde podrás ver el proceso en vivo. Además, si quieres dar el siguiente paso y utilizar el Zend Debugger para depuración de aplicaciones web, seguramente te interesará también el vídeo tutorial Debug en PHP con Eclipse + PDT + Zend Debugger.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

DSXP

09/10/2008
una nota:

Si estas corriendo el Zend Optimizer el error log del apache te estara mostrando errores diciendo que primero debe de cargarse el Zend Optimizer y despues el debugger y no cargara el debugger (Ñde hecho en mi caso ni siquiera arranco el apache)... Solucion: cambia la linea de

zend_extension_ts=[AQUÍ LA RUTA COMPLETA A LA DLL]

por

zend_extension_manager.debug_server_ts=[AQUI LA RUTA COMPLETA A LA _CARPETA_ CON LA DLL]

Ojo, la ruta ahora es a la carpeta, no a la dll...

Saludos!

Mariano

23/10/2008
Todo muy bueno, pero... como USO el debugger una vez instalado en eclipse???

gaston

27/10/2008
Yo coloque esto despues del [Zend] en el php.ini:

[Zend DEBUGGER]
zend_extension_manager.debug_server_ts="C:xamppphpextdebug"
zend_debugger.allow_hosts=<127.0.0.1>
zend_debugger.expose_remotely=always

y el archvo dll lo tube que colocar dentro de la carpeta C:xamppphpextdebugphp-5.2.x

La carpeta debug y php-5.2.x no existian, las tube que crear.

Suerte y aguante Platense!!!

daniel

25/11/2008
al igual que mariano ... y despues como lo configuro en eclipse? yo uso el 3.2.2, no el PDT

Luis

07/11/2009
Configuracion
Hola amigo me parecio buena la explicacion de como configurar el Zend Debug pero te quiero hacer lo siguiente, actualmente tengo configurado en mi servidor el Zend Extension Manager v1.2.0 y Zend Optimizer v3.3.3 pero necesito instalar el Zend Debug y al implementar la configuracion tuya hay que deshabilitar el Zend Optimizer y unicamente funcion el Zend debug en mi configuracion tengo asi

[Zend]
;zend_extension_ts = "C:xamppphpextendDebugger.dll"
;zend_extension_manager.debug_server_ts = "C:xamppphpext"
;zend_debugger.allow_hosts=127.0.0.1
;zend_debugger.expose_remotely=always

zend_extension_ts = "C:xamppphpzendOptimizerlibendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "C:xamppphpzendOptimizerlibOptimizer"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15

como podria tener configurado los tres componentes es mi pregunta en si

midesweb

13/11/2009
Para hacer debug con Eclipse
Para los interesados en utilizar Zend Debugger en Eclipse, para depuración de aplicaciones PHP, hemos publicado el vídeo de debug en PHP con PDT y Zend Debuggger:
http://www.desarrolloweb.com/articulos/video-debug-php.html

biko8

15/11/2009
Error con el inicio del xampp
Hola necesito ayuda,

He hecho todo lo que poneis aqui y en el log de errores me sale esto:

[Sun Nov 15 15:10:38 2009] [error] [client 127.0.0.1] script 'C:/xampp/htdocs/dummy.php' not found or unable to stat

Por lo que veo es que no encuentra el archivo dummy.php pero realmente he colocado este archivo en ese directorio,? que puedo hacer?

Joan

08/8/2010
Todos los pasos pero..
Buenas,

He echo todos los pasos. Estoy usando XAMPP, y he revisado el path y no hay manera que me salga actualizado el fichero php.ini.

Alguna sugerencia?

Gracias.

erickbuzz

24/6/2011
agradecimiento
gracias

conceptuando

07/1/2014
Ayuda por favor
He seguido los pasos, tanto aquí como en el video y me sigue si haceme debugger. Tengo instalado php-eclipse-galileo, he instalado xampp 1.7.1 con PHP: 5.2.9, lo he configurado al puerto 8080 y del mismo modo en el eclipse y no hay manera. Tambien he configurado php.ini y estoy seguro de que está configurado correctamente. El phpinfo() me da esto: This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
Entiendo que Zend Debugger no está iniciado.
Pienso que quizás el fallo sea en la versión de mi debugger que es la ZendDebugger-5.2.14-cygwin_nt-i386 y no la 5.2.15, que no la encuentro por ningún lado. Pido si alguien me la pudiera pasar o enlazar para quitar. Agradezco vuestra ayuda puesto que me es muy necesaria, llevo una semana dándole vueltas a esta tema. Un saludo a todos.