studio - xdebug php 5.6 3
xdebug no se detendrá en el punto de interrupción (19)
1- comprueba xdebug config en php.ini
2- eclipse-> proyecto-> propiedades-> phpDebug-> Habilitar configuración específica del proyecto
phpDebugger-> configurattion-> port o widndow-> preferences-> php-> debug-> installedDebuggers
3-widdow-> preferencia-> php->
Intérprete-> ejecutables de versión-> ruta a php-win.exe
punto: para cada debug lib (xdebug, zend_debugger, ...) puede tener un ejecutable php predeterminado.
4-Su servidor de aplicaciones funciona en diferentes puertos con 80. widndow-> preferences-> php-> servidores PHP
Pasé algunas horas para configurar mi IDE para depurar PHP con eclipse y xdebug. Todo está bien, excepto el punto de interrupción que establecí en eclipse. Si hago doble clic en una línea para agregar un punto de interrupción, el depurador no quiere detenerse. Si agrega la línea xdebug_break (), el depurador se detiene en la línea ...
Es tal vez un problema con la configuración. ¿Alguien podría ayudarme?
- Eclipse: Eclipse PDT 2.2.0 Todo en uno Windows 32 bits
- Xdebug: 5.3 VC6 (32 bit)
- PHP: PHP versión 5.3.3
PHP.ini
[xdebug]
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "c:/temp"
xdebug.collect_params = 4
xdebug.collect_return = on
xdebug.collect_vars = on
xdebug.show_local_vars = 1
Agrego el mismo problema en la versión de fedora 20 Heisenbug, php-ZendFramework2-Debug-2.3.9-1.fc20.noarch, php-pecl-xdebug-2.2.7-1.fc20.i686, y eclipse Versión: Mars.1 Lanzamiento (4.5.1). Utilicé las respuestas anteriores, descubrí que eclipse usa ipv6, cambié como se describe en eclipse.ini para -Djava.net.preferIPv4Stack=true
. Lo mismo para xdebug.ini, y aún no funciona, hasta que descubrí que tenía 2 archivos xdebug.ini, uno en /etc/php-zts.d/
que es el incorrecto, y uno en /etc/php.d/
que es la utilizada por apache. Lo modifiqué para incluir la siguiente configuración
; Enable xdebug extension module
zend_extension=xdebug.so
xdebug.remote_enable=on
xdebug.remote_host="127.0.0.1"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.remote_autostart=1
xdebug.idekey=
reinicié el sudo service network restart
y ahora se detectan puntos de interrupción y puedo realizar la depuración como se esperaba.
Estaba teniendo el mismo problema, PDT iniciaría la sesión de depuración, incluso interrumpiría la primera línea de la secuencia de comandos y permitiría avanzar desde allí, pero correría felizmente a través de los puntos de interrupción manuales que había establecido si hacía clic en Reanudar. Después de juguetear con él y leer un montón de otras respuestas, lo arreglé.
Había intentado configurar un Mapa de Ruta (en la configuración del servidor PHP) ya que la ruta de mi proyecto y la del servidor web eran diferentes, pero esto no funcionaba por alguna razón, así que terminé agregando un alias a la configuración de apache para que coincida con la ubicación PDT estaba pidiendo. Sin embargo, no había eliminado esta configuración de mapa de ruta. Cuando quité el mapa de ruta, ¡los puntos de interrupción comenzaron a funcionar!
Probablemente sea un síntoma de que otra cosa no funciona correctamente (la configuración del mapa de ruta) pero los puntos de interrupción y la depuración están funcionando para mí ahora :)
Este problema se me apareció después de mover algunas de mis carpetas de proyectos locales. Podría hacer que xdebugger se rompa al principio del archivo, pero omitiría el resto de mis puntos de interrupción.
Si está utilizando Netbeans, verifique que su URL del proyecto (Propiedades del proyecto-> Ejecutar configuración) apunte a la ubicación correcta. Con la URL del proyecto apuntada a la carpeta correcta, los puntos de interrupción comienzan a funcionar como se espera.
Esto me ha estado molestando por cerca de 3 horas, solo lo resolví. Así que antes de poner una pistola en tu cabeza, intenta esto. Cuando se inicie Eclipse, elija un nuevo espacio de trabajo y configure su proyecto nuevamente.
Después de que hice esto, mis puntos de quiebre fueron alcanzados nuevamente Mis puntos de ruptura funcionaban bien, luego de repente dejaron de funcionar. Lo intenté:
quitando todos los puntos de ruptura
proyecto de limpieza
re instalando eclipse
¡NINGUNO de los anteriores funcionó para mí!
Por cierto estoy usando la ventana 7.
Espero que esta información salve la vida de alguien!
Por cierto: aquí están los pasos a seguir para la configuración, centos 7 con xdebug y vmwere, con un cliente de Windows 7 con eclipse:
descargar vmwere
Descargue y configure vmwere con: CentOS-7-x86_64-Everything-1511.iso
desactivar el firewall
systemctl desactivar firewalld
systemctl stop firewalld
estado del sistema firewalld
conectarse a través de ftp
ifconfig para averiguar ip
ifconfig
eno16777736: flags = 4163 mtu 1500
inet 192.168.170.128 netmask 255.255.255.0 transmisión 192.168.170.255
inet6 fe80 :: 20c: 29ff: fec4: prefijo b8ca 64 scopeid 0x20
ether 00: 0c: 29: c4: b8: ca txqueuelen 1000 (Ethernet)
Paquetes RX 254 bytes 20919 (20.4 KiB)
Errores de RX 0 caídos 0 desbordamientos 0 marco 0
Paquetes TX 95 bytes 10225 (9.9 KiB)
Errores de TX 0 caídos 0 excedidos 0 portador 0 colisiones 0
192.168.170.128 es la ip
configurar la lámpara
rpm --importar / etc / pki / rpm-gpg / RPM-GPG-KEY *
yum -y instalar epel-release
yum -y instalar mariadb-server mariadb
systemctl start mariadb.service
systemctl habilitar mariadb.service
mysql_secure_installation
yum -y instalar httpd
systemctl start httpd.service
systemctl habilitar httpd.service
yum -y instalar php
servicio httpd reinicio
yum -y instalar php-mysql
yum -y instalar php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring
php-snmp php-soap rizo curl-devel
servicio httpd reinicio
yum instalar phpMyAdmin
En ventanas abiertas cmd, escriba ipconfig
encontrar
Adaptador Ethernet VMware Adaptador de red VMnet8:
Connection-specific DNS Suffix . : localdomain
Link-local IPv6 Address . . . . . : fe80::94b8:9e5c:c772:3d47%19
IPv4 Address. . . . . . . . . . . : 192.168.170.1 [ this is the widnows ip to allow ]
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway .
en el cambio de /etc/httpd/conf.d/phpMyAdmin.conf:
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
a:
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip [ WINDOWS IP TO ALLOW GOES HERE ]
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from [ WINDOWS IP TO ALLOW GOES HERE ]
Allow from ::1
</IfModule>
servicio httpd reinicio
cambie $ cfg [''Servidores''] [$ i] [''auth_type''] = ''cookie''; a $ cfg [''Servidores''] [$ i] [''auth_type''] = ''http'';
servicio httpd reinicio
/ etc / selinux / config cambio
Este archivo controla el estado de SELinux en el sistema.
SELINUX = puede tomar uno de estos tres valores:
hacer cumplir: se aplica la política de seguridad de SELinux.
permisivo: SELinux imprime advertencias en lugar de hacer cumplir.
deshabilitado - No se carga ninguna política de SELinux.
SELINUX = hacer cumplir
SELINUXTYPE = puede tomar uno de tres dos valores:
dirigido - Los procesos dirigidos están protegidos,
Mínimo - Modificación de la política dirigida. Sólo los procesos seleccionados están protegidos.
mls - Protección de seguridad multinivel.
SELINUXTYPE = apuntado
a
Este archivo controla el estado de SELinux en el sistema.
SELINUX = puede tomar uno de estos tres valores:
hacer cumplir: se aplica la política de seguridad de SELinux.
permisivo: SELinux imprime advertencias en lugar de hacer cumplir.
deshabilitado - No se carga ninguna política de SELinux.
SELINUX = deshabilitado
SELINUXTYPE = puede tomar uno de tres dos valores:
dirigido - Los procesos dirigidos están protegidos,
Mínimo - Modificación de la política dirigida. Sólo los procesos seleccionados están protegidos.
mls - Protección de seguridad multinivel.
SELINUXTYPE = apuntado
reinicie centos
EN WINDOWS POINT BROWSER TO: http://192.168.170.128/phpmyadmin , debería estar bien
Copie el sitio web a: / var / www / html / [NOMBRE DEL SITIO WEB]
chmod -R 777 html
en etc / httpd / add (esto permite que los enlaces permanentes funcionen con el nombre de la publicación)
Opciones de FollowSymLinks
AllowOverride All
Orden permitir, negar
Permitir de todos
yum install php-devel (para permitir pipsize)
haga un archivo php con: y cópielo a la raíz del sitio web, ejecútelo y copie el htl en https://xdebug.org/wizard.php luego haga clic en el botón de fuente de análisis
https://xdebug.org/wizard.php dará instrucciones como esta: (síguelas)
...... Descargar xdebug-2.4.1.tgz
Descomprima el archivo descargado con tar -xvzf xdebug-2.4.1.tgz
Ejecutar: cd xdebug-2.4.1
Ejecute: phpize (vea las preguntas frecuentes si no tiene phpize).
Ejecutar: ./configure
Correr: hacer
Ejecute: cp modules / xdebug.so / usr / lib64 / php / modules
Edita /etc/php.ini y agrega las líneas
zend_extension = /usr/lib64/php/modules/xdebug.so
xdebug.remote_enable = On
xdebug.remote_host = 192.168.170.1
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
..... servicio httpd restart
ejecute el archivo y debería ver una sección de XDebug, si es así, ¡el servidor está listo para funcionar!
Descargar Eclipse Neon
Archivo> Abrir proyectos desde el sistema de archivos
Terminar (y esperar)
Preferencias de ventana> php> servidores> nuevo
Pestaña servidor
Nombre del servidor [lo que quieras]
URL base [IP o nombre de su servidor]
Document Root [La ubicación en su disco duro donde está todo el código, debe ser la misma que la que tiene en el servidor]
Pestaña del depurador
Depurador: Xdebug
puerto: 9000
Pestaña Mapeo del Servidor (click add)
Ruta en el servidor: [la ruta completa a su sitio web] EG: / var / www / html / website
Ruta en el espacio de trabajo [encuentre el proyecto que agregó: abra proyectos desde el sistema de archivos]
Vaya a la ventana principal de Eclipse> haga clic en la flecha desplegable junto al icono de error> depurar configuraciones
Pestaña servidor
Archivo: [este debe ser el primer archivo en su proyecto local que se ejecutará cuando se abra la aplicación]
URL: desactiva la generación automática: desmarca
Primer cuadro de texto de la URL: [La IP o el nombre de su servidor donde se ejecuta el sitio web]
Segundo cuadro de texto de la URL: [Si su sitio web no está en el directorio raíz, el directorio donde se encuentra aquí]
Pestaña común
Mostrar en el menú de favoritos
- Haga clic en Depurar (casilla de verificación)
ventana> prespectivo> abierto prespectivo> php
Ponga un punto de ruptura en el archivo php que sea golpeado primero (haciendo clic en la barra de desplazamiento vertical en una línea de código)
Finalmente, haga clic en el ícono de depuración en el eclipse, y su punto de ruptura debería ser golpeado (la línea de código con el punto de ruptura se pondrá verde)
Abre Centos 7 en Vemware para el mundo
Cambiar la configuración de red de VMeere a puenteado
Agregue una regla al enrutador para trasladar cualquier tráfico a la IP vmweare en la que se está ejecutando cetnos
Agregue una regla de entrada al servidor de seguridad de viudas que permita http
PD: no tengo tiempo para ver a mi gammer y hablar, lidiar con eso
Estoy en las ventanas, eclipse de oxígeno. Después de pasar una buena cantidad de tiempo, descubrí que la simple eliminación y recreación de la Debug Configuration
de Debug Configuration
ayudaron.
He arreglado esto también Usando zend_extension en lugar de extensión.
zend_extension_ts="C:/xampp/php/ext/php_xdebug.dll"
He tenido un problema similar con Eclipse PDT y Xdebug. La causa fue que Eclipse estaba escuchando a través de IPv6 pero Xdebug intentó conectarse a través de IPv4:
chriki@machine:~$ netstat -an | grep 9000
tcp6 0 0 :::9000 :::* LISTEN
Xdebug no parece soportar IPv6 , todavía.
Después de agregar la línea
-Djava.net.preferIPv4Stack=true
después de la línea -vmargs
en mi archivo eclipse.ini
, Eclipse comenzó a escuchar a través de IPv4:
chriki@machine:~$ netstat -an | grep 9000
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN
La depuración ahora funciona perfectamente.
Me he arreglado el problema.
En mi php.ini, he agregado el xdebug como una extensión en lugar de un zend_extension.
php.ini
zend_extension=C:/EasyPHP-5.3.3/php/ext/php_xdebug.dll
Nota: la ruta debe ser la ruta completa en lugar de una ruta relativa.
El depurador funciona muy bien. ¡Sabroso!
Para mí, el problema parecía php 7.2 con Xdebug v2.7.0beta2-dev, note la parte beta . Esto se instaló utilizando puphpet.com. Probé PHP 7.1 y el problema desapareció. ¡Me tomó horas para encontrar esto!
Parece que hay varios problemas que podrían ser la raíz de este problema. En mi caso, fue el hecho de que pensé que necesitaba establecer algunos mapas de ruta.
Los ajustes encontrados en
rightclick-project->properties->PHP Debug
y entonces
server->edit->path mapping
estaban equivocados.
Yo había agregado manualmente algo que pensé que era correcto, pero Eclipse puede hacer todo esto por sí mismo que parece. Eliminar el mapeo lo hizo funcionar.
Si está utilizando Eclipse, es posible que el depurador configurado para un lanzamiento específico (vea la pestaña Depurador) sea el Depurador de Zend y NO XDebug. Arregla el inicio de tu depuración y vuelve a intentarlo. Eso me solucionó el problema.
Lamentablemente no puedo publicar la captura de pantalla. Sin embargo, en Eclipse, puede ir a: Debug Configurations> PHP Web Application> luego seleccione su inicio> Debugger Tab> use el menú desplegable Server Debugger para seleccionar XDebug> presione el botón Aplicar y vuelva a intentarlo.
Si xdebug no se detiene en ninguna parte de su código, agregue xdebug_break()
a esta parte del código.
Solo para mencionar la solución simple para mí, cuando mi xdebug recién instalado y configurado no funcionó con PhpStorm: simplemente olvidé reiniciar Apache después de actualizar el archivo php.ini.
Tuve el mismo problema con eclipse-php-oxygen El problema radica en eclipse. He instalado eclipse-php-luna-SR2-win32 y he probado xdebug y funciona bien.
Instalado: xampp-win32-7.0.30-0-VC14-installer.exe Java 8 Update 171
Los siguientes son mis ajustes en php.ini:
[XDebug]
zend_extension = C:/xampp/php/ext/php_xdebug-2.6.0-7.0-vc14.dll
;zend_extension = C:/xampp/php/ext/php_xdebug-2.5.5-7.0-vc14.dll
;zend_extension = "c:/xampp/php/ext/php_xdebug-2.6.0-7.2-vc15.dll"
xdebug.remote_autostart = 1
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
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.remote_log = "c:/xampp/tmp/xdebug.txt"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "c:/xampp/tmp"
;36000 = 10h
xdebug.remote_cookie_expire_time = 36000
Espero que esto sea de ayuda.
Br, Ali
Tuve el mismo problema durante días (!) Desde que me di cuenta de que el problema era el más trivial.
Configuración:
- (Windows 7 Host)
- Ubuntu 12.04 en VirtualBox Machine
- LAMP instalado manualmente
- Eclipse Indigo + PDT
- php5-xdebug
/etc/php5/apache2/php.ini
[XDebug]
zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_output_dir=/tmp
El depurador no se detuvo en los puntos de interrupción y tampoco en xdebug_break();
... se debió a los permisos /var/www
la carpeta predeterminada Apache DocumentRoot
Lo cambié a /home/user/Documents/www
.
Tuve el mismo problema y una de dos cosas lo solucionó ...
Eliminé una definición de zend_extension duplicada en mi PHP.ini
o más probablemente acabo de actualizar a la última versión de xdebug desde aquí: http://xdebug.org/download.php
(Estaba ejecutando xdebug que venía con XAMPP v1.7.1)
Esto comenzó de nuevo ... probé todas las versiones diferentes de archivos xdebug dlls, etc ... resultó que lo que estaba causando que esto no funcionara era tener la ventana de Expresiones abierta ... así que mantenla cerrada cuando debug cosas ... puedes agregue un reloj temporalmente y luego cierre la ventana de Expresiones antes de "pasar" ...
falso...
Yo tuve el mismo problema. La solución es abrir el archivo correcto y agregar un punto de interrupción en él.
Mi servidor local está en mi unidad virtual Z: (Estoy usando denwer en lugar de WAMP). La unidad Z apunta a mi carpeta D: / webserver. Entonces puedo abrir mi archivo como 1) Z: /myproject/script.php y como 2) D: /webserver/myproject/script.php
Por algunas razones, el depurador se detiene en los puntos de interrupción solo en el archivo Z: /myproject/script.php abierto .
¿Cómo probar mi solución? Has el siguiente:
- Abre cualquier archivo php que quieras depurar
- Agregue
xdebug_break()
a cualquier línea y guarde el archivo - Ejecutar depuración
En mi caso, después de que el proceso de depuración haya iniciado mi archivo phpDesigner IDE, abra el archivo correcto en IDE y se detenga en la línea xdebug_break (). Así que en este nuevo archivo abierto puede agregar puntos de interrupción y funcionarán. Utilice el archivo abierto para la depuración.
Respuesta rápida: elimine todos los espacios en blanco en la ruta a su script php.
Contexto:
Hay un error en la versión 3.7.0 del complemento PDT que evita que el depurador se detenga en los puntos de interrupción.
¡Y sucede cuando el camino a su script contiene un espacio en blanco!
Se ha corregido, pero supongo que la versión de destino, que es 4.0.0, aún no se ha lanzado.
El comentario que me salvó el día está en https://bugs.eclipse.org/bugs/show_bug.cgi?id=489646#c7 ("Comentario 7").