在Windows 7上使用WAMP安装Netbeans Xdebug时出现“等待连接”的问题。

3

我看了很多关于这个常见的 Xdebug 错误的解决方案,但似乎都不能解决我的问题:

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

Netbeans 与 Wamp 上的 xdebug 无法连接:“显示等待连接”

phpinfo() 中,Xdebug 看起来已经正确配置了: xdebug phpinfo

下面是我的 php.ini

zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5

-5.5-vc11-x86_64.dll"
;
[xdebug]

xdebug.remote_enable=1
xdebug.remote_mode = req
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001

xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
xdebug.show_local_vars=0
xdebug.idekey=netbeans-xdebug

Netbeans: netbeans configuration

尝试禁用防火墙似乎没有帮助。 想知道我的Xdebug出了什么问题,但已经没有更多的主意了。


尝试在 php.ini 配置文件中添加 _xdebug.remote_connect_back = 1_。 - Tony
谢谢Tony,但似乎它也没有起作用 :( - SonDang
添加_xdebug.remote_log="您希望存储日志的路径",并在NetBeans开始调试后检查它。 - Tony
对我来说,我不知道我必须在三个位置指定端口= 9000,而不匹配导致“等待连接(netbeans-xdebug)”:https://dev59.com/1WMm5IYBdhLWcg3wbunb#41768167 - Ryan
3个回答

2

一旦你开始调试,检查你的命令提示符是否监听端口9001:

C:\Users\***> netstat -ano | findstr 9001

  TCP    0.0.0.0:9001           0.0.0.0:0              LISTENING       20928
  TCP    [::]:9001              [::]:0                 LISTENING       20928

最后的PID(例如我的是20928)应该属于netbeans,可以从Windows任务管理器中进行验证(添加pid:查看 > 选择列 > pid)。

如果PID不正确或端口未启用,则重启netbeans或重新启动系统即可。

如果netbeans有9001端口,则说明您的浏览器没有监听或连接到netbeans。有时浏览器无法建立连接或无法正确启动。

为了手动尝试连接,在netbeans中按下调试按钮,并在接下来的一分钟内(在超时之前)在您喜欢的浏览器中打开以下url(如果一个浏览器失败,请尝试另一个)。

localhost/<yoursite>/page/?XDEBUG_SESSION_START=netbeans-xdebug

您也可以尝试在NetBeans项目属性中切换到嵌入式浏览器。

您还可以尝试将端口从9001更改为其他端口,例如9002,这有助于解决其他程序正在尝试连接端口9001或尝试侦听此端口的问题。


1

设置

zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5 -5.5-vc11-x86_64.dll";

[xdebug]部分内,而不是外部。
从末尾删除;

错误:

zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll";
[xdebug]
xdebug.remote_enable=1
.....

正确:

[xdebug]
zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
xdebug.remote_enable=1
.....

也可以尝试

zend_extension_ts="c:/.../php_xdebug-2.2.5-5.5-vc11-x86_64.dll"

代替,取代

zend_extension="c:/.../php_xdebug-2.2.5-5.5-vc11-x86_64.dll"


1
最终,我成功地按照文章的指导使用了Xdebug。还有一件事情是当NetBeans显示“等待连接”消息时,我需要手动在浏览器中打开页面(NetBeans本身不会弹出),将index.php?"XDEBUG_SESSION_START=netbeans-xdebug"添加到URL并刷新页面,然后NetBeans的Xdebug状态立即变为运行状态 :) 感谢大家的宝贵帮助!!!

你是否将 zend_extension 放在 [xdebug] 部分内?在回答中,你应该说出你所做的一切,而不是提供链接。如果一切正常,你不需要在浏览器中打开 URL。NetBeans 会自动完成所有操作。 - moskito-x
是的,已经尝试将zend_extension放在[xdebug]部分中,但也没有起作用。而且NetBeans无法正常在浏览器中打开URL,我需要在NetBeans中运行调试后手动将“ XDEBUG_SESSION_START = netbeans-xdebug”添加到URL中 :) - SonDang
@SonDang,看了你的回答,这正是我提到的第二个选项,打开localhost/<yoursite>/page/?XDEBUG_SESSION_START=netbeans-xdebug - arkoak
请确保您的帖子中包含了文章中相关的所有内容,否则如果链接失效,您的帖子将无法提供帮助。 - Black

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接