PHP远程调试:XDebug可以';t连接到JetBrains php Storm客户端

PHP远程调试:XDebug可以';t连接到JetBrains php Storm客户端,php,apache2,xdebug,remote-debugging,phpstorm,Php,Apache2,Xdebug,Remote Debugging,Phpstorm,我希望使用以下软件配置进行远程调试: 赢7职业64位 WAMP服务器2.2(32位),包括Apache 2.2.22、PHP 5.4.3、XDebug PHP_XDebug-2.2.1-5.4-vc9.dll JetBrains PHPStorm 4.0.3 1.)WAMP已启动并正在运行,可以在localhost/fox下找到我的站点/ 2.)PHP Storm有一个项目,其中my sourcefiles和apache别名localhost/fox之间存在映射 2.)我安装了php扩展XDeb

我希望使用以下软件配置进行远程调试:

赢7职业64位 WAMP服务器2.2(32位),包括Apache 2.2.22、PHP 5.4.3、XDebug PHP_XDebug-2.2.1-5.4-vc9.dll JetBrains PHPStorm 4.0.3

1.)WAMP已启动并正在运行,可以在localhost/fox下找到我的站点/


2.)PHP Storm有一个项目,其中my sourcefiles和apache别名localhost/fox之间存在映射

2.)我安装了php扩展XDebug,并在php.ini中添加了以下行

[xdebug]
zend_extension="c:/wamp/bin/php/php5.4.3/zend_ext/php_xdebug-2.2.1-5.4-vc9.dll"
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_connect_back=On
xdebug.remote_autostart=On
xdebug.profiler_enable=On
xdebug.profiler_enable_trigger=off
xdebug.profiler_output_name=cachegrind.out.%t.%p
xdebug.profiler_output_dir="c:/wamp/tmp"
xdebug.remote_log="C:/wamp/tmp/xdebug.log"
xdebug.remote_cookie_expire_time=6000
这应该配置远程调试XDebug和回调地址

我已经在这里检查了我的安装:xdebug.org/wizard.php

3.)我配置了phpstorm,首先添加了本地服务器

然后在这里检查我的设置

(我尝试将127.0.0.1/fox作为服务器地址,改为localhost)

hier我的调试设置:

现在我重新启动apache,进入phpstorm,设置断点(红色),单击函数

Run  -> Start listen to PHP Debug Connections
电话接收器变成绿色,这可能意味着什么,但对我来说是一个积极的信号

当我现在在本地Web服务器Absolutey上运行我的php脚本时,什么都没有发生,程序运行在断点上并且没有停止

在Xdebuggers日志(C:/wamp/tmp/xdebug.log)中,我发现了大量这样的消息:

 I: Checking remote connect back address.
 I: Remote address found, connecting to ::1:9000.
 E: Could not connect to client. :-(
 Log closed at 2012-07-19 14:21:08
在互联网的某个地方,我发现了一个提示,windows防火墙可能会阻止通信,所以我完全关闭了它,但这没有帮助

我还尝试通过telnet连接到localhost:9000,得到了phpstorm的响应

有没有人知道在哪里搜索错误,或者我可以尝试做些什么来让这些东西正常工作

非常感谢您事先的帮助, 迈克尔


p、 很抱歉,我不允许发布超过两个链接,因为我是新来的,因此没有指向xdebug向导的超链接。

您可以尝试禁用IPV6,我认为这是问题所在,当您尝试连接时

找到远程地址,正在连接到::1:9000


系统正在尝试连接IPV6,我认为XDebug只支持IPV4。

代码中的断点在哪里?我知道XDebug可能很有趣

对于PHP5.4,您的Xdebug设置应该是

[XDebug]
zend_extension="<path to php_xdebug.dll>"
xdebug.remote_enable=1
xdebug.remote_port="<the port for XDebug to listen to>" (the default port is 9000)
xdebug.profiler_enable=1
xdebug.profiler_output_dir="<AMP home\tmp>"
[XDebug]
zend_extension=“”
xdebug.remote\u enable=1
xdebug.remote_port=“”(默认端口为9000)
xdebug.profiler_enable=1

xdebug.profiler\u output\u dir=“

可能有点晚,但

在这里,您的设置存在矛盾:

xdebug.remote_host="localhost"
xdebug.remote_connect_back=On
这两种设置重叠。你的情况是什么

a) 您希望只从一个源调试应用程序(例如,您正在从
localhost
)进行开发和部署)

然后就差不多完成了:您已经定义了远程主机是
localhost
。注释掉
remote\u connect\u back
行(使用

b) 您希望接受多个开发源(例如,多台机器在同一网络中调试应用程序)

然后将覆盖
远程\u主机
行,以便您可以删除或注释它

这实际上是您当前正在运行的配置。那么,它有什么问题吗?请在运行此脚本时检查它:


使用TcpView、netstat、Process Explorer或类似工具验证PhpStorm是否正在侦听端口9000。然后尝试使用
telnet 127.0.0.1 9000
连接到它。如果telnet工作,XDebug也应该工作。如果不工作,则是网络问题。是否使用浏览器中的PhpStorm书签激活调试器(或同等产品)?嗨,疯狂代码员,我忘了提到我试过telnet,它工作了。phpstorm正在监听。thx。1)你有
xdebug.remote\u connect\u back=On
,因此这个选项被忽略了
xdebug.remote\u host=“localhost”
。2)我建议你阅读这篇文章——每次都能很好地工作(首先在新的简单项目上尝试):“PHP Storm有一个项目,其中我的sourcefiles和apache别名localhost/fox之间有一个映射”——问题可能在这里。什么样的映射?您在哪里提供的(“设置| PHP |服务器”?或者“设置|部署”?等等)?xdebug.profiler\u output\u dir要求什么?系统上tmp目录的路径?我正在使用Ubuntu,所以也应该设置:/tmp?@johns确定将写入分析器输出的目录,确保运行PHP的用户对该目录具有写入权限。默认为
/tmp
,谢谢ot.主机文件的诀窍是我丢失的密钥;)啊,你是我的英雄。我花了最后两个小时浏览了所有的互联网文章,他们都把远程连接设置了。谢谢你解释并保存了我的理智。+1这很有用。很遗憾OP没有将答案设置为真实的。谢谢!我的xdebug正在尝试连接IPv6地址。删除了
远程连接_返回
行,它成功了。谢谢,很好的解释。谢谢!我的MAMP Pro虚拟主机配置会自动将IPv6本地主机条目(::1)添加到/etc/hosts。在删除它们之后,xDebug再次正常工作!
I: Remote address found, connecting to ::1:9000.
E: Could not connect to client. :-(
127.0.0.1 localhost