XDebug无法连接到客户端。

18

我正在尝试在本地Mac上使用NetBeans进行调试。

这是我的php.ini文件。

[xdebug]
 xdebug.default_enable=1
 xdebug.remote_enable=1
 xdebug.remote_handler=dbgp
 xdebug.remote_host=localhost
 xdebug.remote_port=9000
 xdebug.remote_autostart=1
 xdebug.remote_log="/Applications/MAMP/logs/xdebug.log"
 xdebug.idekey="netbeans-xdebug"
 zend_extension="/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"

这是我在xdebug.log中一直收到的内容。

  I: Connecting to configured address/port: localhost:9000.
   E: Could not connect to client. :-(

我尝试将端口更改为9001并关闭防火墙,但这并没有帮助。


1
有时候,如果您在多个IDE中使用相同的xdebug服务器,则可能无法正常工作。 - Shiplu Mokaddim
我该如何检查我是否有多个xdebug服务器? - user1688346
你没有多个xdebug服务器。我说的是一个服务器,但有多个IDE连接。 - Shiplu Mokaddim
我不知道。它现在正常工作。 - user1688346
3个回答

12

Xdebug的默认端口(9000)与FastCGI冲突(Xdebug是先进的!)- 解决方法是将其更改为另一个端口。完成后,您需要重新启动IDE,在那里您还需要配置新的端口。您还需要重新启动PHP和Web服务器。


2
哎呀,我已经做了很多事情,但是没有关闭我的IDE(Sublime Text),也没有在我的IDE中配置端口...非常感谢你!(这是在经过了许多搜索之后说的) - Edson Horacio Junior
非常感谢,这也为我解决了问题(Windows 10,Netbeans,来自XAMPP的PHP 7.2),使用Postman。 - TomR

8
步骤1: 将xdebug.remote_port=9000更改为xdebug.remote_port=9001 步骤2:
  1. 更改Netbeans中的调试端口。转到 工具 >> 选项 >> 单击PHP选项卡
  2. 在PHP选项卡下单击调试
  3. 更改调试器端口:9001
  4. 更改会话ID:netbeans-xdebug
步骤3: 重启服务器和Netbeans
步骤4: 设置断点并尝试

步骤2:有四个子步骤...抱歉它没有创建新行,所以它只是一行。 - madi

6
我遇到了完全相同的问题。 Xdebug安装向导 (https://xdebug.org/wizard.php) 显示我的xdebug已经正确安装。(向导告诉我要安装 Xdebug 2.5.0rc1 dll ) 在phpinfo中,我也看到了一个 xdebug 部分,显示了(在我看来)正确的值。即使这样,我在错误日志中仍然得到了“无法连接到客户端”的消息。
最终我通过试错解决了这个问题,做了以下操作: 下载了与我的php版本对应的所有旧版本的xdebug dll,并尝试了所有版本。最终有一个版本能够工作。对我来说,是在 Windows 7 32位机器上使用的 php 5.6.8,xdebug 2.4.1 dll (PHP 5.6 VC11 TS (32 bit) )。我使用的是 xampp-win32-5.6.8-0-VC11.zip 进行 xampp 安装。
我学到的东西如下: (a) Xdebug 向导不一定会提供正确的dll (b) 即使 phpinfo 显示了一个带有正确变量的 Xdebug 部分,这并不一定意味着它是正确的。 (c) 如果出现此错误,请尝试使用旧版本的dll。

这对我起作用了。此外,尽管我是在一台64位的机器上,但是32位版本对我起作用 :) - Isaac
这对我也起作用了。我发现php_xdebug-2.6.0rc2-7.2-ts-vc15-x64与PHP7.2.24配合得很好。 不要浪费时间尝试其他适用于PHP7.2.24的Xdebug版本 :) - Adnan Haider

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