Finalmente he logrado hacer funcionar el depurador remoto. Bueno, no tan remoto porque es localhost, pero lo importante es que se hace através del servidor web.
Hay que tener en cuenta varios puntos:
1. El
workspace de Eclipse debe apuntar a la carpeta contenedora del proyecto. Es decir, si el proyecto está en
C:\Documents and Settings\yomero\Mis documentos\Web\htdocs\miproyecto
entonces el
workspace debe ser
C:\Documents and Settings\yomero\Mis documentos\Web\htdocs
No digo que esto sea imperativo, pero si el proyecto no es hijo del
workspace, parece dar lata.
2. Como me ha funcionado, es haciendo que el
workspace coincida con la carpeta configurada como localhost en apache.
3. Hay que decirle al php que usa apache, que cargue el depurador:
zend_extension_ts=.\extensions\ZendDebugger.dll
Hay que asegurarse que lo encuentre, porque si se pone sólo
zend_extension_ts=ZendDebugger.dll
como en otro tipo de extensiones, no funciona. las extensiones zend parece que hacen caso omiso de la directiva extensions_dir.
4. Para depurar, hay dos opciones:
a) PHP Script
b) PHP Web Page
La primera es la que utiliza directamente el ejecutable php.exe y la segunda es la remota, la que lo hace através del servidor apache.
Hay que configurar una sesión de depuración por cada página con la que deseemos iniciar la depuración.
Para ello se abre el menú Run|Debug... y se selecciona el elemento PHP Web Page. Se añade una configuración de lanzamiento con el botón [+] o desde el menú contextual del elemento.
Se le da un nombre cualquiera a la configuración, por ejemplo,
Pagina Inicio
En File/Project se pone la página a depurar:
/miproyecto/inicio.php
Ahora viene lo interesante. Tal como hemos hecho, en el recuadro que dice URL, aparecerá:
http://localhost/inicio.php
lo cual es erróneo. Como el proyecto está en
workspace\miproyecto, la URL debería ser:
http://localhost/miproyecto/inicio.php
Hay dos formas de arreglar esto. Una es cambiando la configuración del Server que aparece en la configuración de la sesión de depuración y poner
http://localhost/miproyecto
en lugar de lo que dice por defecto:
http://localhost
Pero asi, aunque pone la URL correcta, no depura aunque sí ejecuta y despliega el resultado en el navegador integrado correctamente.
La otra manera es poner la URL uno mismo, desactivando la opción de auto generarla.
Con estos pasos he logrado hacer la depuración. Tiene el defecto de que en cada corrida se abre una nueva ventana del navegador, pero bueno, ver la corrida paso a paso, con
step-in y
step-over, valores de las variables, puntos de corte, etc.
bien vale la pena.
// Saludos