【问题标题】:NetBeans 12.2 not connecting to Xdebug version 3NetBeans 12.2 未连接到 Xdebug 版本 3
【发布时间】:2021-03-06 12:14:34
【问题描述】:

遇到问题,我需要开始工作。我很难让 NetBeans 12.2 连接到 Xdebug。当我尝试调试时,我得到了可怕的“等待连接(netbeans-xdebug)”,它永远不会连接。我正在运行以下命令:

  • PHP 版本 8.0.2
  • Apache 2.4.46
  • Xdebug 3.0.3

我已经阅读了其他一些主题,例如

但它们适用于旧版本的 Xdebug,并且解决方案似乎不起作用/命令不一样。在阅读了文档并阅读了另一个威胁中的解决方案后,我的 php.ini 文件最后有这个:

[xdebug]
zend_extension = C:\xampp\php\ext\php_xdebug-3.0.3-8.0-vs16-x86_64.dll
xdebug.client_port = 9003
xdebug.remote_handler = "dbgp"
xdebug.client_host = "localhost"
xdebug.mode=debug
xdebug.start_with_request=yes

当我单击调试并运行 netstat 时,我可以看到端口 9003 正在侦听,但由于某种原因,它无法连接。我需要这个工作,所以我希望有人可以帮助一个菜鸟吗?最好的问候。

【问题讨论】:

  • 1) Xdebug 连接到 IDE(在您的情况下为 NetBeans),而不是其他方式。请检查文档。 2) 启用 Xdebug 日志,尝试调试并查看它的内容。 youtube.com/watch?v=IN6ihpJSFDw / learnxdebug.com 3) "xdebug.remote_handler = "dbgp"" 这不是必需的——它来自 v2,在 v3 上什么也不做(即使在 2.9.x 中也不做)—— xdebug.org/docs/upgrade_guide
  • @LazyOne 谢谢。我检查了我的错误“[15920] [Step Debug] ERR:连接到调试客户端超时,等待:200 毫秒。尝试:localhost:9003(通过 xdebug.client_host/xdebug.client_port):-(”的解决方案这里xdebug.org/docs/errors#DBG-E-TIMEOUT。我能得到的最好的功能是第一次打开IDE时的连接,但后来它似乎挂了。另一个用户在这里描述了这个问题:stackoverflow.com/questions/66284710/…他帖子末尾的日志是一样的和我一样。有什么建议吗?最好的问候。
  • 1) 如果显示“连接到调试客户端超时”,则表示没有人在 Xdebug 端口上监听。使用 netstat -a -b -n 并显示当时正在侦听 TCP 9003 端口的应用程序。如果没有 - 那么好吧,这就是答案 - 确保它在那一刻倾听。如果它应该监听——检查防火墙/任何互联网安全防病毒软件等。
  • 2) 如果日志显示它已连接但没有响应......那么它一定是一些 NetBeans 问题。 Xdebug v2 和 v3 中的协议是相同的,所以它应该可以正常工作。那么必须是 NetBeans 本身......我正在使用 PhpStorm 和 Xdebug v3 在 1 岁的 2020.1 版本中为我工作(这是我对 2020.2 版本的证明:stackoverflow.com/a/64820427/783119;自 2020.3 起正式支持 Xdebug v3)
  • Netbeans 正在监听:TCP 0.0.0.0:9003 0.0.0.0:0 LISTENING [netbeans64.exe]。我认为防火墙设置正确,可能是 Netbeans 问题。除非有人回答其他线程,否则我认为这是我能做到的!感谢@LazyOne 的帮助,我可能不得不使用另一个 IDE。

标签: netbeans xdebug


【解决方案1】:

我遇到了同样的问题,这些是我解决它的步骤:

  1. 我重新安装了XAMPP,因为我的php.ini文件因为配置太多次而毁了。

  2. 然后我按照 Xdebug 主页上的步骤进行操作。如果你不集中注意力,你可以快速翻阅它。

    2.1 下载 .dll 文件并放在你的“Xampp/php 扩展目录”(C:\xampp\php\ext)

    2.2 命名为:“php_xdebug.dll”

    2.3 打开php.ini文件(C:\xampp\php\php.ini)

    2.4 实现以下行:“zend_extension = xdebug”
    注意:我不知道顺序是否重要,但以防万一将此行放在以下行下:“;extension=shmop”

    2.5 通过实现以下几行来激活步进调试器:
    “xdebug.mode=debug”(告诉你
    “xdebug.start_with_request=default”
    注意:这里一样,把这些行放在下面一行下面:“extension=php_ftp.dll”(你可以搜索它,用正确的编辑器)

现在您已经完成了 php.ini 文件,可以开始配置 Netbeans。

  1. Netbeans 中的调试配置(工具 > 选项 > PHP > 调试): Netbeans configuration

  2. Netbeans中的项目属性(右键项目>属性): Sources
    对于源文件夹和项目文件夹,我进入了同一个目录,在本例中是我的项目。

  3. (右键单击项目>属性>运行配置): Run Configuration

链接:
https://xdebug.org/docs/step_debug
https://xdebug.org/wizard

我的 PHP xdebug 配置: myphpinfo() - xdebug_config
注意:必须启用 Step Debugger

PS:我测试了这个配置。使用 PHP-8 和 xdebug-3 并在 Windows 10 上作为“localhost”。它不适用于旧版本!


我希望它能解决您的问题,我会很高兴收到反馈!

【讨论】:

    【解决方案2】:

    可能有很多原因:

    1.缺少php ini配置

    xdebug.idekey=netbeans-xdebug(或 netbeans 设置中的值 - 会话 ID)

    ~我认为是netbeans 12的特定版本。*这个已经被删除了,但你仍然可以尝试一下

    1. 尝试配置路径映射

    将 xamp 模拟服务器路径映射到您计算机上的真实路径 要查看您的服务器路径,您可以尝试使用var_dump($_SERVER['DOCUMENT_ROOT')。 必须使用 '/' 分隔符以 linux 格式编写。

    3.可选如果您使用 chrome 进行调试,请检查是否启用了 netbeans 连接器插件。也尝试使用其他浏览器(如 firefox 或 edge)进行调试,看看是否有差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-15
      • 2021-12-13
      • 1970-01-01
      • 2015-11-16
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多