循序渐进:如何对客户端IDE进行Xdebug故障排除连接

dre*_*mac 26 php ide network-programming xdebug

背景

使用Xdebug与PHP和Komodo IDE以及Eclipse PDT.

Xdebug安装在服务器上并正常工作.这是确认的,因为Xdebug代码命令在插入服务器上的PHP文件时按预期工作.

问题

连接到客户端工作站不起作用,很难确定原因,因为它失败了多个IDE.

如果您知道Xdebug已安装并在服务器上运行,但客户端无法连接,那么请逐步检查清单.

任何人都可以帮助添加到这个以制作全面的故障排除清单吗?

具体来说,是否有任何简单的方法来确保网络流量到达客户端,并且以IDE期望查看数据的方式正确格式化?

  • SSH进入Web主机并尝试访问客户端:

    • 可以主持到达客户端吗?(ping -c 5 xxx.xxx.xxx.xxx)
    • 可以托管到达9000端口?(nmap -p 9000 xxx.xxx.xxx.xxx)
    • 如果以上两个成功,输出应该是什么?
    • 如果上述两个失败,下一个故障排除步骤是什么?
  • 验证客户端上基于软件的防火墙的设置

  • 验证linux主机上的iptables设置
  • 验证硬件防火墙b/t客户端和主机

目标

目标是找到一些解决方案,其中客户端计算机上的人员至少可以确认某些东西是否到达客户端而无需确定IDE是否是问题,因为IDE是另一个可能引入问题的复杂程度.

Der*_*ick 12

这是我肯定想要包含在Xdebug文档中的内容.我认为最好让很多人就此进行合作,所以我在xdebug.org github存储库中创建了一个文件(https://github.com/derickr/xdebug.org/blob/master/html/docs /tutorials/troubleshooting.rest)收集提示.随意分叉和延伸!

在Xdebug方面,在即将发布的版本(2.2)中,它已经在其xdebug.remote_log文件中转储了一些额外的诊断,例如它是否尝试连接以及连接是被接受还是被拒绝.


小智 10

您可以使用debugclient实用程序来确定客户端是否可以接收Xdebug连接,您可以在Xdebug文档中阅读:

在开始编写脚本之前,您需要告诉客户端它可以接收调试连接,请参阅特定客户端的文档以了解如何执行此操作.要使用捆绑的客户端,只需在编译和安装后启动它.您可以通过运行"debugclient"来启动它.如果要使用GDB命令集调试脚本,请确保使用与Xdebug 1.3捆绑在一起的调试客户端,因为与Xdebug 2捆绑在一起的调试客户端仅适用于DBGp命令集.当debugclient启动时,它将显示以下信息,然后等待调试服务器启动连接:

Xdebug Simple DBGp client (0.10.0)
Copyright 2002-2007 by Derick Rethans.
- libedit support: enabled
Waiting for debug server to connect.
Run Code Online (Sandbox Code Playgroud)

建立连接后,将显示调试服务器的输出:

Connect
<?xml version="1.0" encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1"
      xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
      fileuri="file:///home/httpd/www.xdebug.org/html/docs/index.php"
      language="PHP"
      protocol_version="1.0"
      appid="13202"
      idekey="derick">
  <engine version="2.0.0RC4-dev"><![CDATA[Xdebug]]></engine>
  <author><![CDATA[Derick Rethans]]></author>
  <url><![CDATA[http://xdebug.org]]></url>
  <copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright>
</init>
(cmd)
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有关Xdebug 2初始化协议的更多信息.
进一步参考:如何检查xdebug安装.
不幸的是,debugclient实用程序仅以源代码形式提供,因此您必须自己构建可执行文件; 这可以在Linux(请参阅INSTALL)和Windows(使用Visual Studio - 请参阅debugclient.dsp)上完成.
XAMPP包含一个编译版本xampp/php/debugclient.exe.


Bas*_*sen 6

Netbeans有一个非常全面的文档,还介绍了如何解决这些问题:

http://wiki.netbeans.org/HowToConfigureXDebug


Dan*_*ncu 5

Windows用户禁用防火墙,然后重试.如果可行,请通过防火墙允许Java(TM)Platform SE二进制文件,然后再次启用它.它会工作得很好!

感谢您的命令,它们在调试时非常有用.