php - la sesión eclipse xdebug nunca termina
xampp (27)
Después de luchar durante 3 horas y probar todas las soluciones en los foros, descubrí que el truco más simple era eliminar las comillas al especificar la ruta del dll de Xdebug en zend_extension en php.ini . Estoy usando XAMPP (PHP 5.3.6 + Apache 2.2) + Eclipse Indigo + PDT + Xdebug 2.1.2 en Windows Vista.
Aquí está la configuración exacta que funcionó para mí:
zend_extension=C:/xampp/php/ext/php_xdebug-2.1.2-5.3-vc6.dll
#Note that the path above is not in quotes
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir=C:/xampp/tmp
Utilicé el puerto 9001 para que no entre en conflicto con el 9000 en caso de que ya lo haya utilizado otro programa. Asegúrese de que esto coincida con el puerto en Eclipse> Preferencias> PHP> Depurar> Xdebug también. Además, reinicie apache después de editar php.ini.
Una vez que agregué esto a php.ini, todo funcionó como helado.
Estoy intentando que xdebug trabaje con eclipse (3.5) / php (en xampp windows 7). He verificado que xdebug está habilitado en php: tengo la salida elegante y mi phpinfo muestra todas las cosas de xdebug. Tengo la depuración remota activada, y escribí la dirección LAN de mi eclipse.
Cuando le digo a eclipse que depure, inicia el navegador y pasa los parámetros de depuración de la URL. Eso se ve bien
Sin embargo, en la perspectiva de depuración de eclipse se muestra ''lanzando mi proyecto'' 57% ''esperando la sesión xdebug''. Se sienta allí para siempre.
He desactivado el firewall de Windows en ambas máquinas.
Traté de enrojecer implícitamente.
¿Algunas ideas?
Me di cuenta de que el puerto TCP estaba en uso y esa era la razón por la que estaba colgando. Cambié el puerto en las configuraciones php.ini y eclipse.
¡No sé si esto significa para ti más o no! Pero, ¿accedió a un archivo PHP (anything.php) con el parámetro de depuración correcto, algo así como XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=12882809194391
.
La gente a menudo comete errores al acertar un archivo HTML con los parámetros de depuración que hace que Eclipse se cuelgue en la sesión xdebug
Tuve un problema similar y resultó que estaba usando el dll incorrecto. Espero que ayude a alguien en el futuro.
mira este enlace:
Hay una sesión sobre los nuevos complementos para Chrome y Firefox y funcionan bien.
Tuve el mismo síntoma. Sin embargo, mi problema fue que configuré xdebug.remote_host = ""
Lo hice porque estoy usando hosts virtuales de apache para eliminar la necesidad de un host localhost
. Sin embargo, tuve que volver a xdebug.remote_host = "localhost"
a xdebug.remote_host = "localhost"
y luego cambiar mi apache / etc / hpppd-vhosts.conf para que localhost apunte a mi raíz c: / web.
Para mí, estos síntomas fueron causados por el firewall de Windows (Win7 Pro). Necesitaba permitir explícitamente que eclipse pasara el firewall. Hice esto a través del diálogo en "Panel de control / Todos los elementos del panel de control / Firewall de Windows / Programas permitidos".
Puede que no sea útil para todos, pero ... al intentar depurar hosts remotos, siempre recuerde el enrutador DSL. (o cualquier enrutador en el camino) Pasé horas tratando de encontrar una solución, cuando noté que todo lo que tenía que hacer era activar el reenvío de puertos (puerto 9000) en mi Linksys y todo funcionó como un encanto :)
Tuve el mismo problema y lo solucioné cambiando el puerto a XDebug (ahora usando el puerto 9001).
Aquí está mi contenido de php.ini:
zend_extension ="C:/.../EasyPHP-5.3.3/php/ext/php_xdebug-2.dll"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
xdebug.remote_mode=req
xdebug.remote_autostart=0
También verifique el archivo de registro de Apache y asegúrese de que no tiene el siguiente mensaje de Advertencia:
Advertencia PHP: Xdebug DEBE estar cargado como una extensión Zend en Desconocido en la línea 0
Advertencia : Xdebug DEBE cargarse como una extensión Zend en Desconocido en la línea 0
Si lo hace, abra el archivo php.ini y comente con un '';'' la extension=php_xdebug-2.dll
línea:
;extension=php_xmlrpc.dll
extension=php_xsl.dll
**;extension=php_xdebug-2.dll**
;/PHPExt
- Las entradas anteriores fueron útiles. Comprobé los valores de los parámetros de xdebug en phpInfo () y descubrí que, a pesar de que mi configuración era 1 o Activado, auto_trace y remote_enable estaban desactivados. Así que lo hice a verdad . ¡Y luego trabajó a distancia !. Gracias.
- Tenga en cuenta que ahora puede iniciar la sesión de depuración remota desde Eclipse configurando varias configuraciones de depuración O bien cada vez que ejecute su aplicación configurada fuera de Eclipse, obtendrá una pregunta en Eclipse para aceptar o no la sesión de depuración. Por lo tanto, si se encuentra en una máquina diferente a la UI del eclipse, es posible que la llamada a su aplicación se agote sin ningún motivo. En realidad, habría un cuadro de diálogo de sí - no donde sea que esté la sesión de Eclipse
Este hilo me ayudó a resolver mi problema con MAMP en OSX con Eclipse. Después de actualizar a MAMP 2.1.1 desde la versión 1.x, no pude hacer que xdebug funcionara en eclipse. Estaba colgando al nivel de 57%.
phpinfo demostró que la extensión xdebug se estaba cargando bien y que no había errores en los registros de PHP o Apache.
Solo quería depurar localmente, pero la razón del problema era que la depuración remota no estaba habilitada. Agregar xdebug.remote_enable = true a la plantilla PHP.ini de MAMP y reiniciar MAMP resolvió el problema.
Verifique que la configuración del navegador web de Eclipse sea correcta.
Ventana / Preferencias / General / Navegador web / Navegadores web externos / Editar configuración
En mi caso, la ruta al binario del navegador web externo era incorrecta. Dijo "/ usr / bin / mozilla" en lugar de "/ usr / bin / firefox". No sé cómo se produjo esta configuración, pero después de cambiarla, finalmente apareció la ventana del navegador Firefox.
En mi caso, la aplicación CLI funcionaba bien, pero fue la aplicación web la que se estancó al 57%.
Funcionó después de 2 cambios:
- hizo depurador de servidor como XDebug
- Auto Generar URL verdadero.
Si Netweaver/Eclipse
no se conecta a XDebug
, es posible que desee comprobar los registros de Apache
busca de algo así como: Cannot load Xdebug - it was built with configuration API220090626,TS,VC6, whereas running engine is API220090626,TS,VC9 [Fri Jun 01 18:38:05 2012] [notice] Child 3404: Child process is running
Para remediar esto, elija la versión correcta del binario XDebug
sitio web XDebug
(pruebe algunas combinaciones hasta que funcione)
Aquí hay otro blog que menciona cómo verificar si Xdebug está instalado correctamente o no a través de la línea de comando http://allcodeverything.blogspot.com/2012/07/code-debugging-with-xdebug-and-eclipse.html
Menciona esto. Si quieres saber si todo funcionó bien, aquí hay una buena porción de código que ejecutarás a través de la CLI (intérprete de línea de comandos, básicamente fuera de Apache o un navegador, solo PHP puro) después de que tengas escribió lo siguiente en su navegador: "http: //localhost/dbgtest.php? XDEBUG_SESSION_START = ceable"
<?php
$address = "localhost";
$xdebug_port = 9000;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $xdebug_port) or die(''Unable to bind'');
socket_listen($sock);
$debug_client = socket_accept($sock);
echo "connection established: $debug_client";
socket_close($debug_client);
socket_close($sock);
?>
La ventana de línea de comandos debería imprimir algo así como "conexión establecida: ID de recurso n.º 5".
Tuve el mismo problema con Zend Studio. Me di cuenta de que la sesión xdebug no se iniciaba correctamente. Pasé esta cadena a la url una vez y funcionó desde entonces.
http://localhost/myalias/?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13750956767461
Estoy seguro de que es una cuestión de configuración en algún lugar del IDE.
Antes de la configuración del eclipse, compruebe que el siguiente contenido esté visible en la función phpinfo.
Este programa hace uso de Zend Scripting Language Engine: Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies con Xdebug v2.2.3, Copyright (c) 2002-2013, por Derick Rethans
Miré en el registro de Apache y había muchas líneas con error de archivo no encontrado.
Ejecutar -> Configuraciones de depuración -> Página web de PHP -> Your_configuration
Desmarqué auto generate
y establecí el nombre del archivo en index.php
.
Parece que en caso de cualquier error que impida que el eclipse funcione normalmente, esta "espera de sesión"
He intentado con todas las soluciones posibles en esta publicación para que xdebug funcione en un sitio que se ejecuta en Apache (puerto http 8000) en vano. Luego noté accidentalmente que xdebug estaba trabajando en otro sitio que tenía ejecutando en el puerto 80. Tan pronto como cambié el otro sitio al puerto 80, finalmente me permitió depurarlo.
Me pregunto si hay una configuración que pueda dirigir a Apache para permitir xdebug en otros puertos además de 80. Tengo más de un sitio ejecutándose en Apache y me gustaría depurar cada uno de ellos sin tener que reconfigurar los puertos. ¿Alguien tuvo este problema antes? o sabe cómo solucionarlo?
Tuve exactamente el mismo problema. Mis configuraciones eran iguales a las tuyas y además de tener xdebug.remote_enable = On
en el archivo php.ini también agregando lo siguiente:
xdebug.remote_connect_back=1
esto permite la depuración remota multihost, como alternativa puede definir la IP del host.
xdebug.remote_host=IP_ADDRESS
Asegúrese de definir zend_extention con la ruta ABSOLUTA en php.ini
:
por ejemplo: zend_extension=D:/SANDBOX/server/php/php_xdebug-2.1.0-5.3-vc6.dll
Estoy depurando un proyecto local en Windows. Hasta ahora no necesitaba xdebug.remote_enable = On
.
Sugerencias si la sesión de Xdebug no se inicia (se bloquea al 57%), asegúrese de que:
-
zend_extention
directivazend_extention
se establece con la ruta absoluta y se carga la depuración, usephpinfo()
para verificar - el firewall no bloquea el puerto predeterminado 9000 o Eclipse.
- otra aplicación no está utilizando el puerto (ejecute:
netstat -an |find /i "listening"
desde la línea de comando)
Si necesita configurar un puerto diferente use en php.ini
:
xdebug.remote_enable = on
xdebug.remote_port = XXXX
y corrige la configuración de Xdebug en Eclipse:
También tuve este problema y me faltaba esta línea en el archivo php.ini
:
xdebug.remote_enable = On
Si su configuración es correcta, simplemente elimine el archivo: YOUR_WORKSPACE / .metadata / .plugins / org.eclipse.core.resources / .root / .markers
Tenía el mismo problema al usar Uniserver Zero XIII 13.2.0 (requiere la instalación redistribuible de MS VC12) y Eclipse Neon Release Candidate 3 (4.6.ORC3). Nuestro sitio web utiliza phalcon, cuando encontramos un problema con phalcon.dll y php7.0 volvimos a php5.6. Verificamos la configuración de xdebug más arriba, agregamos zend_extension = $ (US_ROOTF) /php56/extensions/php_xdebug.dll --no nos conectamos, no tenemos puntos de corte.
Se ha encontrado una advertencia en la parte superior del proyecto Eclipse Dialog Project | Propiedades | PHP | Depurar | Configurar los ajustes del área de trabajo ... | Ejecutables de PHP | PHP56 (predeterminado del espacio de trabajo) | Editar | Depurador | "La extensión XDebug no está instalada. Visite http://xdebug.org ...". Esto nos hizo sospechar de la versión de php_xdebug.dll (2.5.0) en el Unserver 13.2.0 php56. Descargué php_xdebug-2.4.1-vc11.dll, lo dejé caer en / php56 / extensions y PRESTO! ¡Eclipse PHP Debugger funciona!
Para mí, agregar las configuraciones [xdebug] sugeridas por otros a un archivo php.ini mantenido en la siguiente ruta C: / wamp64 / bin / apache / apache2.4.23 / bin ayudó. Básicamente, se trata de un enlace simbólico que apunta / vincula al archivo phpForApache.ini en su respectiva carpeta de versión de php que se instala con wamp64, por ejemplo, php5.6.25.
En pocas palabras, agregando las siguientes líneas phpForApache.ini para ayudarme -
zend_extension = c:/wamp64/bin/php/php5.6.25/ext/php_xdebug-2.5.1-5.6-vc11-x86_64.dll
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
Espero que esto ayude
Sí, revisa las estadísticas de red / puerto. En mi caso estoy usando vmware fusion en mac, y el proceso vmware-natd estaba acaparando la CPU (bloqueo en un puerto abierto que estoy asumiendo), que no noté. php.ini estaba completamente bien, tenía que ejecutar esto para que funcione nuevamente:
sudo "/Library/Application Support/VMware Fusion/boot.sh" --restart
Así que primero compruebe su archivo php.ini (o xdebug.ini). Si se ve bien a la espera de esta discusión , entonces verifique que no tenga problemas de red.
Yo también encontré el mismo problema. Comprobé dos veces todas las configuraciones en php con la salida de phpinfo()
y todo estaba bien.
Permitir el binario Java (TM) Platform SE a través del firewall hizo el truco.
Echa un vistazo a los comandos de esta pregunta , ¡son muy útiles para la depuración!