netbeans显示“Waiting For Connection (netbeans-xdebug)”

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (109)

这些是我的组件的功能:

XAMPP 1.8.2

PHP:5.4.16

netbeans:7.3.1

Apache:2.4.4(Win32)

这是我的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"

当我运行phpinfo()时,没有安装xdebug,当我从netbeans调试一个项目时,它说“Waiting For Connection (netbeans-xdebug)”

提问于
用户回答回答于

php.ini文件内容

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- 这是我系统的IPv4地址,我更改为此,因为我无法使用localhost127.0.0.1进行调试。

在NetBeans IDE中,打开Tools-> Options-> PHP-> Debugging。调试器端口和会话ID的值应该与php.ini中指定的端口和idekey匹配

现在保存php.ini,重新启动Apache,然后尝试进行调试

用户回答回答于

当Netbeans启动调试会话时,它启动两个监听器,一个监听器在0.0.0.0:9000(系统具有的所有IPv4 IP)上,另一个监听器在IPv6接口上。

如果NetBeans和Web服务器在同一个系统上,理想情况下,XDebug将被配置为将数据发回127.0.0.1:9000,NetBeans将在其上监听(并且仅在每个会话中)

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

如果由于某种原因XDebug无法返回127.0.0.1或Netbeans未在127.0.0.1监听,则可以配置XDebug将数据发送回$_SERVER['REMOTE_ADDR']原始请求

xdebug.remote_connect_back=1

这样你就不必指定确切的IP地址(例如,在上面的回答LAN IP中:)192.168.1.5。这里的缺点是任何源都可以连接。

如果你还有其他麻烦,这个

xdebug.remote_autostart=1

也将启动所有请求的调试过程,而不仅仅是具有适当的会话启动查询或cookie 的调试过程。这里的缺点是所有的请求都会启动调试数据收集和报告(使得一切都变慢,并且生成更多的数据)。

扫码关注云+社区

领取腾讯云代金券