Php 一步一步:如何对连接到客户端IDE的Xdebug进行故障排除
背景 将Xdebug与PHP、KomodoIDE和EclipsePDT结合使用Php 一步一步:如何对连接到客户端IDE的Xdebug进行故障排除,php,ide,network-programming,xdebug,Php,Ide,Network Programming,Xdebug,背景 将Xdebug与PHP、KomodoIDE和EclipsePDT结合使用 Xdebug已安装在服务器上,并且工作正常。这一点得到了确认,因为当将Xdebug代码命令插入服务器上的PHP文件时,其工作方式与预期相同 问题 连接到客户端工作站不起作用,很难确定原因,因为它在多个IDE中失败 问题 如果您知道Xdebug已经安装并在服务器上工作,但是客户端没有连接,那么最好有一个分步检查表来对这种情况进行故障排除 有人能帮我补充一下,做一个全面的故障排除清单吗 具体来说,是否有任何简单的方法来确
Xdebug已安装在服务器上,并且工作正常。这一点得到了确认,因为当将Xdebug代码命令插入服务器上的PHP文件时,其工作方式与预期相同 问题 连接到客户端工作站不起作用,很难确定原因,因为它在多个IDE中失败 问题 如果您知道Xdebug已经安装并在服务器上工作,但是客户端没有连接,那么最好有一个分步检查表来对这种情况进行故障排除 有人能帮我补充一下,做一个全面的故障排除清单吗 具体来说,是否有任何简单的方法来确保网络流量到达客户机,并且以IDE期望的方式正确格式化数据
- SSH连接到web主机并尝试连接到客户端:
- 主机能到达客户端吗?(ping-c5 xxx.xxx.xxx.xxx)
- 主机可以到达端口9000吗?(nmap-p 9000 xxx.xxx.xxx.xxx)
- 如果以上两种方法都成功,那么输出应该是什么
- 如果以上两项都失败,下一步的故障排除步骤是什么
- 验证客户端上基于软件的防火墙的设置
- 验证linux主机上iptables的设置
- 验证硬件防火墙b/t客户端和主机
我们的目标是找到一种解决方案,客户机上的人员至少可以确认某个东西正在到达客户机,而无需确定IDE是否是问题所在,因为IDE是另一个可能会带来问题的复杂级别。这是我绝对希望包含在Xdebug文档中的内容。我认为最好让很多人在这方面进行合作,因此我在xdebug.org github repository()中创建了一个文件来收集技巧。请随意分叉和伸展
在Xdebug方面,在即将发布的版本(2.2)中,它已经在Xdebug.remote_日志文件中转储了一些额外的诊断信息,例如它是否尝试连接以及连接是否被接受。您可以使用该实用程序来确定客户端是否可以接收Xdebug连接,如您在:
在开始脚本之前,您需要告诉您的客户 可以接收调试连接,请参阅的文档 具体的客户就如何做到这一点。使用捆绑客户端 只需在编译和安装后启动它。你可以从 正在运行“调试客户端”。如果要使用GDB命令集进行调试 在脚本中,请确保使用与Xdebug捆绑在一起的debugclient 1.3因为与Xdebug 2捆绑在一起的仅适用于DBGp命令集。 当debugclient启动时,它将显示以下信息和 然后等待调试服务器启动连接: 建立连接后,将显示调试服务器的输出:
连接
.
进一步参考:。
不幸的是,debugclient实用程序仅以源代码形式提供,因此您必须自己构建可执行文件;这可以在Linux(请参阅)和Windows(使用Visual Studio-请参阅)上完成。
XAMPP在XAMPP/php/debugclient.exe
中包含一个编译版本,Netbeans有一个非常全面的文档,其中还介绍了如何解决此类问题:
Windows用户禁用防火墙,然后重试。
如果可行,允许Java(TM)平台SE二进制文件通过防火墙,然后再次启用它。
它会很好用的
感谢您提供的命令,它们在调试时非常有用。请小心远程调试会话的防火墙。我通过使用telnet检查9000端口状态来诊断我的问题,并发现防火墙的预防措施。这是我绝对希望包含在Xdebug文档中的内容。我认为最好是让许多人在这方面进行合作,因此我在xdebug.org github repository()中创建了一个文件来收集提示。您提到的xdebug
之所以安装,是因为命令可以工作。我的直觉是xdebug只为PHPCLI启用,而不是为apache启用。。。你能证实这一点吗?相关问题:更多相关问题:“这一点得到了确认,因为当插入服务器上的PHP文件时,Xdebug代码命令可以按预期工作。”你能详细介绍一下吗?“它已经在它的Xdebug.remote_日志文件中转储了一些额外的诊断信息”我试过了,它根本没有记录任何东西。在PHP7.2.5上,似乎不可能将Netbeans与xdebug连接起来,而且在任何日志文件中都没有一条提示它失败的原因。我甚至试过Netbeans 11.1。我总是听到“等待连接”
Xdebug Simple DBGp client (0.10.0)
Copyright 2002-2007 by Derick Rethans.
- libedit support: enabled
Waiting for debug server to connect.
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)