waiting instalar how hacer for debug como php linux netbeans xdebug netbeans6.7

php - instalar - Inicie XDebug en Netbeans en una solicitud externa



netbeans 8.2 debug php (4)

Estoy usando Netbeans 6.7 y XDebug para depurar un sitio PHP en mi máquina, lanzando la solicitud desde dentro de Netbeans (Proyecto-> Depurar). Esto funciona bien, y es muy útil.

Mi pregunta es: ¿es posible adjuntar el depurador a cualquier solicitud que ingrese, en lugar de a aquellas que ejecuto dentro de Netbeans?

es decir, en lugar de hacer clic en "Depurar", ponga Netbeans en un modo mediante el cual se inicia el depurador y se conecta a la siguiente solicitud que entra.

Tengo la sensación de que esta puede ser una pregunta estúpida, pero si es posible, sería genial.

Editar: un poco más de información

Mi sistema (Ubuntu 9.04) está configurado de la siguiente manera:

Contenido de /etc/php5/conf.d/xdebug.ini

zend_extension=/usr/lib/php5/20060613/xdebug.so xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.idekey=netbeans-xdebug

Las opciones de depuración de Netbeans PHP están en los valores predeterminados:

Debugger Port: 9000 Session ID: netbeans-xdebug Stop at the First Line: ticked

Mi /etc/hosts redirige www.mywebsite.com a localhost

Si hago clic en el botón de depuración en Netbeans, Firefox se inicia con la dirección http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug , y el depurador funciona como se esperaba.

Pero si simplemente navego a http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug , esto no inicia el depurador en Netbeans.

También he intentado configurar xdebug.remote_host=www.mywebsite.com , pero eso no hace ninguna diferencia.

Además, he habilitado xdebug.remote_log , y eso muestra información para cuando empiezo desde netbeans, pero nada para solicitudes externas. Así que no creo que XDebug vea las solicitudes externas en absoluto.


No estoy seguro acerca de Netbeans, pero cualquier otro IDE que he usado siempre está a la escucha de una conexión de depuración. Puede iniciar una nueva sesión de depuración desde xdebug agregando la cadena de consulta ?XDEBUG_SESSION_START=name a la url. Si Netbeans está escuchando, esto debería iniciar una nueva sesión de depuración.

Ver http://xdebug.org/docs/remote#browser_session para más detalles


Por defecto, xdebug no intentará conectarse al host remoto cuando no se haya especificado el argumento ''XDEBUG_SESSION_START'' Cookie / URL. Puede habilitar xdebug para que esté "siempre activo", estableciendo xdebug.remote_autostart en 1 en php.ini.

Además, tendría que iniciar el depurador de PHP en NetBeans para que esto funcione. Todavía no encontré una solución mejor, pero puede hacer que el depurador PHP escuche las conexiones entrantes comenzando a depurar un archivo aleatorio (utilice CTRL + MAYÚS + F5 para comenzar a depurar un archivo) y luego continúe (presionando F5) una vez se detuvo en el punto de ruptura. El depurador Netbeans debería ejecutarse hasta que realmente lo detenga.

Actualización: debido a que NetBeans verifica la identificación de la sesión (XDEBUG_SESSION_START), también debe establecer la variable idekey. p.ej:

xdebug.remote_autostart = 1 xdebug.idekey = "netbeans-xdebug"


Tuve un problema similar (en NetBeans, Mac OSX), después de actualizar PHP y compilar / instalar xdebug. phpinfo mostró xdebug como cargado, pero aun así no se conectó, y después de probar todo lo mencionado anteriormente todavía no tuvo éxito. Luego traté de reducir el número de parámetros establecidos en mi archivo PHP.ini al mínimo requerido. Esto pareció resolver el problema para mí.

; REMOVED (commented) the following ; xdebug.remote_log=/myfile.log ;xdebug.extended_info = off ;xdebug.auto_trace=1 ;xdebug.trace_output_dir=/mydir/myphptracefile.txt ;xdebug.trace_output_name=php_trace.%c ;xdebug.collect_params=4

También cambié el nombre de xdebug.idekey por defecto de netbeans-xdebug a los valores predeterminados, y luego de nuevo.

Después de reiniciar Apache, xdebug comenzó a funcionar nuevamente: no estoy seguro de qué fue exactamente lo que lo solucionó, pero un buen punto de partida podría ser comenzar con la cantidad mínima de ajustes de xdebug en su archivo php.ini, luego agregar lentamente más si necesita ellos. Sospecho que puede haber tenido algo que ver con la configuración de rastreo, pero no puedo estar seguro.

La configuración básica que terminé usando fue:

xdebug.remote_enable=on xdebug.remote_port=9000 xdebug.remote_host=localhost xdebug.remote_handler=dbgp xdebug.idekey=netbeans-xdebug

También es una buena idea compilar debugclient (en el paquete fuente xdebug) y verificar la depuración en la línea de comandos, ya que esto le dirá si xdebug puede al menos ejecutarse independientemente de su IDE.


vaya a propiedades del proyecto > ejecutar configuración > avanzada > url de depuración y comprobar no abrir el navegador web (*). no configure el host en el proxy del depurador . guarde estas configuraciones en la ventana del proyecto, en su proyecto: haga clic con el botón derecho del mouse > depuración (esto comienza a escuchar las conexiones de depuración). no se inicia el navegador ingrese http://www.mywebsite.com?XDEBUG_SESSION_START=netbeans-xdebug en su navegador. debería romperse en netbeans. al menos eso es lo que sucede aquí :)

(*) también podría tener que establecer un mapeo de ruta - para mí, funciona sin