Pregunta

He estado usando Eclipse-PDT en conjunción con Xdebug y Apache sin problemas, durante más de un año. Las cosas funcionaron sin problemas y pude hacer toda la depuración interactiva que quería desde dentro de Eclipse (usando mi propia máquina como un servidor).

Ahora he pasado de Apache para nginx (PHP y por lo tanto ahora no se ejecuta como un servicio de Apache sino como Fast-CGI) y no puedo encontrar una manera de configurar Eclipse para trabajar muy bien con Xdebug . No soy ni seguro si el problema es con Xdebug o con Eclipse (o ambos) para estar seguro.

En la configuración de Eclipse que ya ha cambiado la referencia al archivo de configuración de PHP para /etc/php5/cli/php.ini.


Los intentos con la versión 1 php.ini

Con el siguiente archivo de php.ini

zend_extension=/usr/lib/php5/20060613/xdebug.so
  • veo que Xdebug está trabajando (por ejemplo, si hago un var_dump() consigo la versión Xdebug de ella, no el PHP plano uno)
  • No puedo tener la depuración interactiva de Eclipse: el navegador se abre y carga la página por completo con la URL típica contiene ...?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=..., pero la ejecución del programa no se detiene en los puntos de interrupción
  • En la esquina inferior derecha de Eclipse veo un mensaje sospechoso: "Lanzamiento = put_the_name_of_my_project_here =: 57%" que se alterna con el "espacio de trabajo refrescante" uno.

Los intentos con la versión 2 php.ini

Si utilizo esta otra versión del archivo (que es lo que funcionó hasta que me pasa a nginx):

zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=On
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req

No puedo acceder a cualquier página de mis sitios en absoluto.


PS: Datos adicionales sobre mi máquina: - OS: GNU / Linux - Ubuntu 9.10 64 bits. - PHP: 5.2.10-2ubuntu6.3 con Suhosin-Patch 0.9.7; Zend Engine v2.2.0, Derechos de autor (c) 1998-2009 Zend Technologies con Xdebug v2.0.4 - Eclipse: ver imagen

.

text alt

¿Fue útil?

Solución

Lo que dijo Beau es correcta (no podía votar ya que soy nuevo!).

Generalmente, addging a /etc/php5/cgi/php.ini (o localice php.ini) las líneas como

zend_extension = /PATH_TO/xdebug.so   ## <-- NOTE the absolute path, not relational (For ex on Windows: "C:\nginx-1.9.13\php\ext\php_xdebug-2.6.0RC2-7.0-vc14-nts.dll")
xdebug.remote_enable = on
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
xdebug.remote_port = 9900        ## <-- Yours will be probly 9000 or other..

hace el trabajo.

Así que después del cambio,

./php-fastcgi stop
./php-fastcgi start

Esto funcionó para mí.

Otros consejos

Xdebug y FastCGI utilizan el mismo puerto predeterminado (9000). Cambiar el puerto de XDebug en su archivo php.ini como esto:

xdebug.remote_port=9001

y actualizar la configuración de IDE a utilizar 9001.

Prueba a reiniciar el php. Debido a que tiene PHP-fastcgi, reiniciar nginx no parece hacerlo. Al reiniciar toda mi servidor el cambio entró en vigor.

Yo tenía el mismo problema y lo resolvió.
En el archivo /etc/php5/apache2/php.ini complemento:

[xdebug] xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req


En el archivo /etc/php5/cli/php.ini complemento:

zend_extension=/usr/lib/php5/20060613/xdebug.so
xdebug.remote_enable=On
xdebug.remote_autostart=off
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode=req


Reinicia Apache:

sudo service apache2 restart

Problema en solución es " xdebug.remote_autostart = on ". Si se establece en el archivo de configuración " xdebug.remote_autostart = on ". Esto obligará a Xdebug para iniciar una sesión de depuración para cada solicitud que se hace en este servidor, sin tener que especificar en la solicitud que se desea una sesión de depuración.

Es necesario cambiar

  

" xdebug.remote_autostart = off "

y reinicie el servicio web. En este ejemplo es Apache.

Puede leer más aquí: http://doc.waterproof.fr/phpedit / debugging_profiling / configuración / debugger_with_xdebug

GoodLuck!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top