2009-12-14 20 views
6

Instalé el último paquete XAMPP que incluye PHP 5.3.0. Estoy intentando habilitar Xdebug, pero simplemente no funcionará.No puedo hacer que Xdebug funcione en Windows 7

Esto es lo que ha cambiado en el php.ini enviado con XAMPP:

; uncommented 
zend_extension = "X:\xampp\php\ext\php_xdebug.dll" 

; added the following lines: 
xdebug.remote_enable=true 
xdebug.remote_host=localhost 
xdebug.remote_port=9000 
xdebug.remote_handler=dbgp 

Apache empieza bien, pero cuando abro http://localhost/ en mi navegador, recibo el siguiente error:

alt text

Si hago clic en el botón Close the program, el mensaje de error volverá a aparecer en un segundo como si estuviera en un bucle infinito. Agradecería enormemente cualquier ayuda para hacer que esto funcione.

Estoy ejecutando una nueva instalación de Windows 7 Ultimate de 64 bits.

EDIT: A partir del resultado de phpinfo():

Zend Extension Build API220090626,TS,VC6 
PHP Extension Build  API20090626,TS,VC6 
Debug Build    no 
Thread Safety   enabled 

Respuesta

4

Es posible que usted tiene la versión incorrecta de Xdebug. Me gustaría echar un vistazo a phpinfo() y comparar la información allí al different versions of the Xdebug dll.

Específicamente, desea ver si la "seguridad de subprocesos" está habilitada, y necesita saber si está ejecutando un PHP compilado en VC6 o un VC9 (si está usando Apache, está casi garantizado que desea el VC6).

+0

Seguridad de los hilos está activada. PHP se cumple con VC6. Cogí 5.3 VC6 seguro para subprocesos y no se cargan ni el sabor de 32 bits ni el sabor de 64 bits. Sin embargo, Apache ya no se cuelga. – Derek

+0

Esto es útil, tuve php 5.4 pero estaba tratando de instalar 5.3 dll que no dio error. – Nap

0

Sí, hay un problema conocido - es casi imposible conseguir Xdebug trabajando con la última Xampp y 64 bits de Vista/Win 7.

Hay una bug informado con muchos usuarios se quejan de ello.

La solución parece ser latest beta version on Xampp. Incluye la versión 2.0.6 (dev) de xdebug y está funcionando bien.

Lo probé en Vista de 64 bits durante aproximadamente 10 días y no he encontrado ningún problema todavía.

0

Como han dicho otros, debe hacer coincidir su versión de xdebug con su versión de php.

Ya ha emparejado el número de versión de PHP, la seguridad de la secuencia y el compilador.

Si aún no lo ha descubierto (este es un hilo antiguo), lo que hace falta es la configuración de INI. Si va a cargar un módulo que es hilo de seguridad, es necesario utilizar la siguiente línea:

zend_extension="C:\Path\To\The\Extension.dll" 

Si el módulo es no hilo de seguridad, a continuación, utiliza la directiva INI que ha estado tratando de usar.

Esto solo se aplica a las extensiones zend_extension y no a las regulares.

+1

Nota: Usar un _ts NO es correcto para Apache 2.2.21, PHP 5.3 bajo W7 x64, incluso si PHP y Apoache son TS, use la tecla normal (simplemente asigne el dll correcto, el que no tiene una _nts_ en él). Tal vez fue correcto hace algún tiempo. –

+0

Tiene razón, duda de que alguien alguna vez vea mi publicación en este momento pero la actualicé – dcousineau

0

Cuando xdebug está instalado no con XAMPP, solo con PHP (32 bits, TS, VC6, en C: \ Archivos de programa (x86) \ PHP) y Apache (32 bits) en Windows 7 (64 bits), en php.ini necesita especificar la ruta completa a x86 carpeta de Archivos de programa como.

zend_extension="C:\Program Files (x86)\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll" 

y NO

zend_extension="C:\Program Files\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll" 

Esta fue mi error, cuando se cambió a la carpeta x86, Xdebug comenzó a funcionar a la perfección. Espero que esto te ayude también.

2

franca-mente, yo también tenía 2 días realmente malos, y no hacer ahora lo que finalmente lo arregló, así que aquí está mi colección de hacer y escollos:

; this is the thread safe version, 
; the absence of _nts_ in the dll name 'shows' this 
; do not use _ts, your library won't get registered and won't show in phpInfo() 
zend_extension = "D:/wamp/bin/php/php5.3.8/zend_ext/php_xdebug-2.1.2-5.3-vc9-x86_64.dll" 

comprobar su php.ini, comprobar phpinfo() si todos los valores (llegan)

xdebug.remote_enable = on 
xdebug.remote_handler=dbgp 
xdebug.profiler_enable = off 
xdebug.profiler_enable_trigger = off 
; if you have multiple virtual hosts (like 'local.fooclient') 
; maybe using the IP is safer (for any same-machine-debugging) 
xdebug.remote_host=127.0.0.1 
; maybe a -much- lower port helped, 84 was free. use netstat to figure out. 
xdebug.remote_port=84 
; idekey! also see note below 
xdebug.idekey=netbeans-xdebug 

Más trampas:

he visto un error tipográfico de xdebug.remote _Manipule (sin r) varias veces en la web. tener cuidado.

Una nota en el idekey: El idekey por encima de sí mostró en phpinfo() como valor principal, PERO fue anulada con un 'valor local' como MYMACHINENAME $. ==> Estableciendo un env var global (en propiedades de la computadora) llamado DBGP_IDEKEY y reiniciando (o simplemente acabando la sesión) a (también) netbeans-xdebug ¡ayuda! De nuevo: vuelva a verificar en phpInfo() se hizo efectivo.

Por supuesto, ajuste netbeans-menu: options-> php tab-> sección de depuración a este puerto e id de sesión.

Here es una secuencia de comandos, para verificar (por php means) si ese puerto con el que tiene la intención de hablar está abierto. (Más abajo también en los comentarios, para aquellos que también escriben perezosa desde la imagen)

Para que su navegador se conecte, no empiece a olvidar (en medio de la frustración) siempre adjunte el argumento de depuración inicial:

http://localhost/myTest.php?XDEBUG_SESSION_START=netbeans-xdebug 

En la frontera puerto, también this tool podría ayudar.

Quadruplecheck está manteniendo las versiones compiladas de VC6 y VC9 de todo aparte.

Ejecutando su whatever/path/php.exe myTest.php desde la línea de comandos (una vez que se realizan las configuraciones anteriores) también podría revelar errores adicionales (lo hizo, mientras yo estaba retocando con un dll incorrecto).

puedo recomendar http://www.wampserver.com (por razones personales que me queda mejor que el paquete XAMPP populares ...)

3

Ha intentado asistente de instalación personalizada de XDebug, se analiza la instalación de PHP y proporciona los pasos exactos que necesita para seguir

Los archivos binarios de Windows generalmente funcionan para cada versión mini de la versión PHP mencionada, aunque la extensión se basa en la versión PHP más reciente en ese momento. El marcador VCx le dice con qué compilador se construyó la extensión, y no es seguro para subprocesos, ya sea que ZTS esté deshabilitado. Esos calificadores deben coincidir con la versión de PHP que está utilizando.Si no sabe cuál necesita, consulte las instrucciones de instalación personalizadas.

http://xdebug.org/wizard.php

basta con pegar el phpinfo hacia fuera puesto en el cuadro de texto y obtendrá DLL Xdebug exacta que se necesita para su php

+0

Esto es brillante. El único problema es que lo instala directamente en PHP, por lo que necesitará un poco más de ajustes para ejecutarlo desde la línea de comandos, que es lo que hacen algunas herramientas. – Dunhamzzz

+0

El asistente me salvó, nada más lo intenté funcionó. Terminó siendo el camino absoluto vs. relativo. – Josh

Cuestiones relacionadas