waiting tutorial para instalar for debug configurar php windows apache netbeans xdebug

php - tutorial - waiting for connection netbeans-xdebug



netbeans muestra "Esperando Conexión(netbeans-xdebug)" (21)

necesita ayuda para configurar xdebug, para depurar proyectos de IDE netbeans.

Estas son las características de mis componentes:

XAMPP 1.8.2

PHP: 5.4.16

netbeans: 7.3.1

Apache: 2.4.4 (Win32)

esta es la parte final de mi archivo php.ini:

[XDebug] zend_extension = "C:/xampp/php/ext/php_xdebug-2.2.3-5.4-vc9-nts.dll" ;xdebug.profiler_append = 0 ;xdebug.profiler_enable = 1 ;xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir = "C:/xampp/tmp" ;xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "127.0.0.1" ;xdebug.trace_output_dir = "C:/xampp/tmp"

cuando ejecuto phpinfo (), no hay xdebug instalado, y cuando depuro un proyecto de netbeans, dice "Waiting For Connection (netbeans-xdebug)".

¿alguien puede ayudarme a configurarlo? sería muy apreciado

gracias por adelantado.


¿Has rectificado el problema? Si no, por favor intente esto.

1.) contenido del archivo php.ini

[xDebug] zend_extension = "c:/xampp/php/ext/php_xdebug-2.2.3-5.4-vc9.dll" xdebug.remote_autostart=on xdebug.remote_enable=on xdebug.remote_enable=1 xdebug.remote_handler="dbgp" ;xdebug.remote_host="localhost:81" xdebug.remote_host=192.168.1.5 ;xdebug.remote_connect_back=1 xdebug.remote_port=9000 xdebug.remote_mode=req xdebug.idekey="netbeans-xdebug"

xdebug.remote_host=192.168.1.5 - Esta es la dirección IPv4 de mi sistema, cambié a esto porque no pude depurar con localhost y 127.0.0.1 .

en NetBeans IDE, abra Tools-> Options -> PHP -> Debugging . Los valores del puerto del depurador y de la identificación de la sesión deben coincidir con el puerto y la idekey especificados en php.ini .

Ahora guarde php.ini, reinicie Apache e intente depurar.

Gracias Johnson


Acabo de pasar horas leyendo tantas respuestas en esta página y otras similares, y nadie mencionó lo que terminó siendo la solución para mí:

Asegúrate de que la configuración del puerto elegido coincida en las 3 ubicaciones

Mi problema es que hay TRES lugares que el puerto elegido debe coincidir. Dos de ellos dijeron 9001 y uno dijo 9000. Los cambié a 9000.

Ese era el problema y por qué Netbeans solo decía "Waiting For Connection (netbeans-xdebug)".

Las ubicaciones de configuración de 3 puertos son:

  • php.ini ( xdebug.remote_port=9000 )
  • propiedades del proyecto> Ejecutar configuración> Avanzado
  • Netbeans> Herramientas> Opciones> PHP> Depuración

Agregar esto me funcionó:

xdebug.idekey=netbeans-xdebug


Cuando Netbeans inicia una sesión de depuración, inicia dos Listeners, uno en 0.0.0.0:9000 (todas las direcciones IPv4 que tiene el sistema) y el otro en la interfaz IPv6.

Si Netbeans y el servidor web están en el mismo sistema, lo ideal sería que XDebug se configurara para enviar los datos a 127.0.0.1:9000 , en los que NetBeans estaría escuchando (y solo por sesión) ...

xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_autostart=0 xdebug.remote_connect_back=0

Si por alguna razón XDebug no puede informar a 127.0.0.1 , o Netbeans no está escuchando en 127.0.0.1 , puede configurar XDebug para que envíe los datos a $_SERVER[''REMOTE_ADDR''] de la solicitud original. .

xdebug.remote_connect_back=1

De esta forma, no tiene que especificar la IP exacta (es decir, como en la respuesta anterior, IP de LAN: 192.168.1.5 ). La desventaja aquí es que cualquier fuente puede conectarse.

Si tienes más problemas, esto ...

xdebug.remote_autostart=1

... también iniciará el proceso de depuración para todas las solicitudes, y no solo para las que tengan la consulta de inicio de sesión o la cookie correctas. La desventaja aquí es que todas las solicitudes iniciarán la recopilación de datos de depuración y la devolución de informes (haciendo que todo sea más lento y generando más datos).

Aunque por lo que he reunido, la mayoría de estos problemas de "Esperando Conexión (netbeans-xdebug)" en Windows (con XAMPP, Wamp-Server, etc.) suelen ser el resultado de Windows Firewall y McAfee (u otro firewall y anti -virus software) bloqueando la conexión ...

Fuente: Netbeans "Esperando conexión (netbeans-xdebug)" Problema


Después de haber configurado correctamente el archivo php.ini, netbeans, reenvío de puertos en el enrutador, todavía estaba obteniendo el miserable "esperando la conexión (netbeans-xdebug). Eventualmente lo noté en la página netbeans" No olvides establecer output_buffering = Off en tu archivo php.ini ".

Así que revisé el archivo /etc/php/7.x/apache2/php.ini y, efectivamente, su valor era 4096. Así que reinicié output_buffering = Off y ¡¡¡funcionó !!!

Espero que esto ayude a alguien, ya que el mensaje implica que es un error de conexión en lugar de un error de configuración.


Después de realizar cambios en sus archivos php.ini o xdebug.ini, independientemente de cómo esté ejecutando su servidor web, asegúrese de reiniciar ese servidor web (por ejemplo: service httpd restart on CentOS) o Apache no recuperará el cambios que ha realizado en ese archivo .ini.

El paquete xdebug en CentOS es "phpXXu-pecl-xdebug".

Los valores predeterminados en Xdebugs más recientes generalmente están bien. Es estrictamente necesario obtener estos dos valores correctos, en algún lugar de un archivo .ini de Apache:

xdebug.remote_enable=on xdebug.remote_host=[DNS entry that resolves to the IP4 of your debugger]


En mi caso, el registro de Apache mostró una advertencia de PHP sobre no haber configurado date.timezone. Xdebug / netbeans comenzó a funcionar tan pronto como lo configuré en php.ini y reinicié Apache.

date.timezone = America/Los_Angeles

Esto es PHP 5.5.


Estoy en Windows con xampp y cambié la sección [XDebug] de mi php.ini (en la parte inferior) a la siguiente para que funcione:

zend_extension = "C:/xampp/php/ext/php_xdebug.dll" xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000

Procedencia del wiki de Netbeans aquí: http://wiki.netbeans.org/HowToConfigureXDebug

Si tiene Apache ejecutándose, recuerde reiniciarlo después de configurar XDebug y guardar php.ini.


Para usuarios de Ubuntu:

  1. sudo su
  2. apt-get install php5-dev php-pear
  3. pecl instalar xdebug
  4. buscar / -name ''xdebug.so'' 2> / dev / null
  5. Devolverá algo como: /usr/lib/php5/20121212/xdebug.so
  6. vi /etc/php5/apache2/php.ini
  7. agregue esta línea: zend_extension = "/ usr / lib / php5 / 20121212 / xdebug.so"
  8. servicio apache2 reiniciar
  9. reiniciar IDE

Pasé mucho tiempo tratando de obtener la configuración óptima y esto merece su propia respuesta, aunque la de @Johnson TA es casi correcta.

Él dice

xdebug.remote_host = 192.168.1.5 - Esta es la dirección IPv4 de mi sistema, cambié a esto porque no pude depurar con localhost y 127.0.0.1.

Bueno, no todos pueden usar una dirección privada, o puede ser dinámica u otras cosas. Además, en mi caso sufría tiempos de espera muy largos antes de que realmente empezara la depuración, unos 30 s más o menos. Eso no fue práctico.

Estoy seguro de que todos los que tienen estos problemas están, al menos, en Windows 7 más o menos. El problema está relacionado con una mezcla entre resolución de nombre y xdebug. Para superarlos, asegúrese de que:

  • El puerto 9000 no está en uso. Si ese es el caso, cámbialo a uno no utilizado, tanto en php.ini como en netbeans.
  • Asegúrate de que xdebug.remote_enable esté xdebug.remote_enable .
  • Si desea poder depurar utilizando direcciones 127.0.0.1 y 127.0.0.1 , abra /Windows/System32/drivers/etc y asegúrese de que tenga las siguientes líneas:

    127.0.0.1 localhost

    :: 1 localhost

Asegúrese de que la primera línea no tenga un # antes y la segunda lo tenga.

Mi sección php.ini en funcionamiento (no necesito el generador de perfiles, así que lo desactivé):

[XDebug] zend_extension = "C:/xampp/php/ext/php_xdebug.dll" xdebug.profiler_append = 0 xdebug.profiler_enable = 0 xdebug.remote_enable = on xdebug.remote_handler = "dbgp" xdebug.remote_host = "localhost" xdebug.remote_port = 9001 xdebug.trace_output_dir = "C:/xampp/tmp" xdebug.remote_log = "C:/xampp/tmp/xdebug/xdebug.log" xdebug.idekey = "netbeans-xdebug" xdebug.remote_autostart = on xdebug.remote_connect_back = on

Detener depurador netbeans. Reinicie Apache.

Apuesto a que ya no sufrirás largos tiempos de espera ni comportamientos extraños con el depurador.

Explicación: Aunque en etc / hosts dicen que "la resolución del nombre del servidor local se maneja dentro del DNS mismo", por cualquier razón no funciona bien con xdebug si no lo tiene explícitamente establecido en ese archivo. Ponerlo explícitamente parece no hacer daño en general, y resuelve este problema con xdebug. Pero también necesita deshabilitar explícitamente la notación corta sIPv6 para localhost (:: 1) para que todo esto funcione. No conozco las razones internas, pero conozco todas las combinaciones y esta me funciona como un amuleto.


Quiero mencionar algo aquí sobre xdebug.remote_host

xdebug.remote_host="127.0.0.1"

No es válido. Puede funcionar en algunos casos, pero las comillas también pueden causar problemas. La mayoría de las personas no tienen problemas cuando usan direcciones IP entre comillas, pero esto establece un mal precedente. Hace que las personas piensen que si quieres usar un nombre de host o URL, debes ponerlo entre comillas. Esto es incorrecto, las URL entre comillas no funcionarán.

Si desea depurar usando una url, puede hacer esto simplemente colocando la url después de los iguales como este:

xdebug.remote_host=subdomain.mydomain.com

También quiero mencionar que si tiene un número de puerto, no lo agregue. Esto no funciona:

xdebug.remote_host=subdomain.mydomain.com:9000

Esto es lo que quieres hacer:

xdebug.remote_host=subdomain.mydomain.com xdebug.remote_port=9000

Si hace esto, también le advierto que se asegure de que remote_connect_back esté desactivado. Me gusta esto:

xdebug.remote_connect_back=0

o puedes omitirlo por completo, así:

;xdebug.remote_connect_back=1

Si remote_connect_back está habilitado, intentará extraer su dirección IP de la conexión entrante e ignorará el host remoto y la configuración del puerto.

Xdebug usa TCP simple antiguo para hacer conexiones. Esto no es HTTP. Esto significa que herramientas como Fiddler no mostrarán ningún paquete o información sobre la depuración. Si necesita depurar y ver si el servidor realiza una llamada a su IDE, existen algunas maneras de verificarlo.

Wireshark te permitirá ver el tráfico TCP. Además, si está en Windows, Microsoft Message Analyzer también puede monitorear TCP.

Pero, si todo lo que intenta hacer es eliminar su IDE es una posible causa de problemas de depuración remota, sugiero que inicie un servidor TCP local.

Este es un gran programa Java gratuito para iniciar un servidor TCP: http://sockettest.sourceforge.net/

En la sección Dirección IP, solo liste 127.0.0.1 o déjelo en 0.0.0.0. Luego, enumere el número de puerto, que generalmente está predeterminado en 9000 para xdebug.

Una vez que el servidor TCP se está ejecutando, abra su página web remota con xdebug_break (); Llamada de función en él. Esto le dirá a xdebug en el servidor remoto que comience a depurar en cualquier servidor y puerto que haya listado en su php.ini.

Mire el servidor de socket y vea si obtiene una conexión. Los primeros datos enviados deberían verse más o menos así:

<init appid="APPID" idekey="IDE_KEY" session="DBGP_COOKIE" thread="THREAD_ID" parent="PARENT_APPID" language="LANGUAGE_NAME" protocol_version="1.0" fileuri="file://path/to/file">

Si ha llegado hasta aquí, ¡la depuración remota funciona! ¡Solo detén el servidor y configura tu IDE para escuchar en ese puerto!

Si usted es como la mayoría de nosotros, su máquina de desarrollo está detrás de un enrutador con NAT. Esto significa que todos en su oficina tienen la misma dirección IP pública. Esto es un problema porque cuando xdebug contacta esa dirección IP para iniciar la depuración, golpea el enrutador y no su computadora. El enrutador puede configurarse para pasar ciertos números de puerto a computadoras individuales, pero es posible que no desee hacerlo ya que ese puerto estará abierto hasta que vuelva a cambiar la configuración del enrutador.

Otra opción es usar SSH. Hay un gran ejemplo de cómo hacer esto aquí: http://stuporglue.org/setting-up-xdebug-with-netbeans-on-windows-with-a-remote-apache-server/#attachment_1305

Mi opción preferida es usar Ngrok . Ngrok es una gran herramienta para redirigir el tráfico http, https y TCP. Para utilizar la función de redireccionamiento de TCP, debe registrarse para obtener una cuenta gratuita.

Una vez que se haya registrado para una cuenta y haya agregado su clave API a su computadora, ejecute este comando en la computadora en la que se encuentra su IDE:

ngrok tcp 9000

Esto abrirá un túnel tcp (no http) desde el servidor ngrok a cualquier máquina en la que haya ejecutado el comando. Estoy usando el puerto 9000, puede cambiar este puerto si su IDE está configurado para un puerto Xdebug diferente.

Esto es lo que deberías ver:

Tendrá que ver cuál es la url para el túnel TCP que se abrió. En este ejemplo, es:

0.tcp.ngrok.io:14904

Para esta sesión, la configuración de Xdebug en su servidor debería ser esta:

xdebug.remote_host=0.tcp.ngrok.io xdebug.remote_port=14904

La URL y el puerto cambiarán cada vez que se inicie ngrok. Si desea tener el mismo URL y puerto, debe actualizar a una cuenta paga. Asegúrese de reiniciar Apache después de realizar cambios en su php.ini.


Seleccione un navegador específico para la depuración:

  1. Haga clic con el botón derecho en proyecto -> seleccione Propiedades
  2. Seleccione categorías: el navegador luego seleccionó un navegador específico para la depuración

Si su xdebug no funciona correctamente, verifique su registro del servidor:

$ sudo less /var/log/httpd/error_log

Para verificar las conexiones, use este comando:

$ sudo netstat -an

Después de iniciar la depuración en netbeans, si usa el comando netstat, puede ver el puerto de xdebug (probablemente sea 80):

tcp6 0 0 192.168.33.10:80 192.168.33.2:49901 ESTABLISHED

El puerto de netbeans es 9000:

tcp 0 0 192.168.33.10:52024 192.168.33.2:9000 ESTABLISHED

Puede cambiar el puerto de xdebug desde aquí (desde el menú superior, Herramientas -> Opciones -> PHP):

Si la conexión no está establecida, es muy posible que su conexión sea bloqueada por su programa antivirus o firewall. Puede verificarlo en su programa antivirus o firewall y eliminar el bloque ya que es una conexión segura.


Soy un programador de .Net y muy nuevo en PHP. Recientemente, estaba tratando de alojar una aplicación PHP de código abierto en mi máquina (Windows). Después de la lucha por 5-6 días, enumeraré los pasos que funcionaron para mí.

Desinstalé todas las instalaciones previas de XAMPP y NetBeans y procedí con nuevas instalaciones.

Esta podría no ser la solución para todos, pero funcionó para mí y espero que ayude a alguien.

  1. instalar XAMPP

  2. instalar netbeans para PHP.

  3. Abra IIS y deténgalo. Se está ejecutando en el puerto 80 de manera predeterminada. (Estoy ejecutando XAMPP en el puerto 80, es decir, por defecto, la ejecución en otro puerto puede necesitar ajustes de configuración adicionales)

  4. Abra el panel de control de XAMPP e inicie Apache. Si el puerto 80 es gratis, no debería surgir ningún problema.

  5. Abrir localhost en el navegador debe mostrar la página de inicio de XAMPP.

  6. abra el enlace phpinfo() en el panel izquierdo y copie todos los contenidos en la página. Vaya a: http://xdebug.org/wizard.php y pegue todo el contenido en TextBox y haga clic en Analizar mi salida phpinfo. Le mostrará el archivo Xdebug adecuado para su configuración.

  7. Descargue el dll Xdebug proporcionado y cópielo en C:/xampp/php/ext (Xampp es el directorio de instalación predeterminado de Xampp)

  8. Vaya al panel de control de XAMPP, haga clic en el botón Configurar en frente de Apache y seleccione php.in ,

  9. Buscar línea similar o exactamente igual,

; zend_extension = "C: / xampp / php / ext / php_xdebug.dll"

(Semicolon significa que se comenta)

Elimine el punto y coma y reemplace la ruta con la ruta de acceso de dll que acaba de copiar, como:

zend_extension = "C:/xampp/php/ext/php_xdebug-2.3.2-5.4-vc9.dll"

  1. Del mismo modo, encontrar líneas

    ; xdebug.remote_enable = 0; xdebug.remote_handler = "dbgp";

eliminar punto y coma delante de ambas líneas y hacer remote_enable = 1

xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp"

  1. Reinicie el servidor Apache.

  2. Copie el código de su sitio web en C:/XAMPP/htdocs/(your_website)/ eso significa que su index.php debe estar en C:/XAMPP/htdocs/(your_website)/index.php

  3. Open Netbeans selecciona Nuevo proyecto -> PHP -> Proyecto PHP desde el origen existente y selecciona la carpeta que acabas de copiar en la carpeta htdocs. Configúrelo para que se ejecute en el servidor web local.

  4. Establezca un punto de interrupción en la primera línea de index.php y depuración.

Eso es.

Se sugirieron ajustes adicionales en varias publicaciones diferentes, pero los pasos mencionados anteriormente funcionaron perfectamente para mí.


Tuve el mismo problema e intenté resolverlo durante horas. Finalmente descubrí que la extensión de cromo ipflood que cambia los encabezados para hacer que parezca que está usando un proxy, fue la causa.

¡Funciona perfectamente bien después de que lo desactivé!


Tuve este problema para un proyecto, pero no para otros. Entonces xdebug se configuró correctamente, la configuración del proyecto estaba bien, pero aún así no funcionó.

Así que acabo de eliminar el subdirectorio nbproject, que contiene la configuración del proyecto, y creé un nuevo proyecto con la fuente existente. Esto resolvió el problema para mí.


Una prueba podría ser iniciar php -i en la ventana de comandos. Al redireccionar el resultado, se produjo un error

Para mí fue la solución FINAL porque tuve una versión incorrecta de Xdebug descargado

Para mí debería haber sido: php_xdebug-2.1.2-5.3-vc6.dll

Pero tuve: php_xdebug-2.2.4-5.3-vc9.dll . Entonces, se produjo un error de php -i

E:/Programme/php>php -i > myOutputFromPhp

rendimientos después de ERROR

No se puede cargar Xdebug: se creó con la configuración API220090626, TS, VC9, mientras que el motor en ejecución es API220090626, TS, VC6


Verifique también la configuración del firewall de "Windows".

Para mí, no funcionó porque mi red LAN fue declarada como "red pública". Después de cambiarlo a "Red de trabajo" funcionó bien.


Yo mi caso si agrego siguiente en php ini no funcionó

zend_extension_ts = "C: / PHP / PHP560 / ext / php_xdebug-2.4.0rc4-5.6-vc11.dll"

Pero si agrego

zend_extension = "C: / PHP / PHP560 / ext / php_xdebug-2.4.0rc4-5.6-vc11.dll"

Está funcionando bien.


Yo tuve el mismo problema. ¿por qué? Primero instalé WAMP, gracias a Netbeans y trabajan juntos como un encanto. Más tarde instalé XAMPP y los sitios de Localhost se ejecutaron sin problemas, pero NetBeans nunca pudo conectarse a XAMPP (netbeans-xdebug). Al mismo tiempo, NetBeans funcionaba bien con Wamp.

Mi solución fue volver a Wamp. Es mejor que nada.

Mi PC: Win-7-32, NetBeans-8.0.2,

wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b

xampp-win32-5.6.8-0-VC11