Netbeans远程XDebug连接被拒绝/等待连接,解决方案即将到来

时间:2013-10-28 14:26:24

标签: php ubuntu netbeans xdebug

首先,我会为另一篇关于Netbeans和XDebuug的帖子堵塞互联网而道歉但是经过两周的努力让XDebug从Windows 7远程连接到我的开发机器之后,我别无选择。仅供参考,我已对该问题进行了广泛的研究,但已经用完了高质量的搜索结果。

总结一下,当我尝试连接调试器时,我得到'附加到127.0.0.1:9000\r.nConnection拒绝。',如果我尝试通过右键单击/调试文件来调试文件,我会'等待连接'

这里是/etc/php5/apache2/xdebug.ini下的我的XDebug.ini文件:

zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so

xdebug.remote_enable = on

xdebug.remote_autostart = off
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.remote_server = localhost
xdebug.remote_mode = req

xdebug.idekey = netbeans-xdebug
output_buffering = off

xdebug.remote_log = "/var/log/xdebug.log"

我的系统规格是:

我的笔记本电脑:

  • Windows 7
  • Netbeans 7.4
  • 调试浏览器:Chrome版本30.0.1599.101 m

我的服务器:

  • Linux Debian Ubuntu 11.10
  • PHP 5.3.6-13ubuntu3.10
  • Zend Engine v2.3.0,版权所有(c)1998-2011 Zend Technologies 与Xdebug v2.2.3,版权所有(c)2002-2013,作者:Derick Rethan [确认在php_info()下运行]

我是如何尝试连接的:

Stuporglues tutorial之后,我将xdebug和netbeans配置为使用putty连接在端口9000(在xdebug.ini和netbeans-> tools-> options-> php-> debugging)上运行端口9000在ssh->隧道(9000 / 127.0.0.1:9000)下作为远程转发。

我可以看到Linux服务器在监听:

james@XXX:/$ netstat -a -n | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN
tcp6       0      0 ::1:9000                :::*                    LISTEN

当我尝试调试文件时,我可以看到Netbeans正在侦听端口9000

netstat -aon
...
TCP    127.0.0.1:9000         127.0.0.1:59691        ESTABLISHED     6744

此外,浏览器(chrome)会在地址栏中正确打开调试参数:

https://xxxxx.xxx/xxxxx/dMotor1_2PropZ.php?XDEBUG_SESSION_START=netbeans-xdebug

但Netbeans只是挂着“等待连接”

事情尝试了:

  • 我已经广泛检查了所有适用的防火墙,禁用了Windows捆绑的防火墙,还擦除了我服务器上的iptables和ip6tables,没有效果。
  • 我尝试在http而不是https下复制项目,以免导致问题,没有效果
  • 所有类型的XDebug.ini设置
  • 禁用项目下的“打开浏览器” - >属性 - >运行配置 - >高级 - >调试网址,并在Chrome中手动打开页面,并正确附加XDEBUG_SESSION_START参数,无效果
  • 在project-> properties-> Run Configuration-> Advanced-> Debug Url中选择'每次询问'并使用project-php设置下的project-> properties->运行配置空白,没有效果
  • 在project-> properties-> Run Configuration下手动附加XDEBUG_SESSION_START参数:netbeans-xdebug,no effect
  • 重新启动计算机,重新启动Apache并无休止地重新启动远程计算机,无效
  • 启用“chrome中的静默调试模式”,无效
  • 添加'--remote-debugging-port = 9000'选项以启动快捷方式运行路径,无效
  • 安装PHPStorm以查看我是否可以进一步使用
  • 使用不同的浏览器(尝试过Firefox和IE),没有效果
  • 重新安装XDebug,使用向导确保版本与我的PHP版本兼容,没有效果
  • 创建index.php以防这个帮助,没有效果
  • 在php.ini文件中设置时区,无效

目前的理论:

连接被拒绝了?是否有阻止连接的东西?如果是这样,我怎么找到它?我已经尝试了所有我能想到的东西。否则这是一个默认的错误消息,它掩盖了一个完全不同的问题?

更多信息:

老实说,我很可能在这里错过了一些简单的东西并且潜水得太深,无法轻易实现,这是我第一次尝试让XDebug在远程机器上工作而我的Linux管理员和Netbeans体验是有限的。

更奇怪的是,我在我办公室的描述配置下工作了一次,然后我将我的电脑置于待机状态并回家,此时我也可以使用调试运行一次然后不更改任何设置,上面描述的问题开​​始了。

XDebug日志文件包含“无法连接”,但目前不添加新内容。

任何帮助都会非常感激。

提前致谢,

詹姆斯

2 个答案:

答案 0 :(得分:1)

您是否尝试更改remote_server INI指令?

我的开发电脑上有Win7,服务器上有Ubuntu 12.04.3,我的ini包含以下xdebug指令:

[xdebug]
xdebug.auto_trace = 0
xdebug.collect_params = 1
xdebug.show_mem_delta = 1
xdebug.collect_params = 1

xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0

xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "MY_HOSTNAME"

它就像一个魅力

答案 1 :(得分:0)

对于所有WINDOWS用户........

这项技术基于unix世界而且它使用 / etc / hosts文件解析所有主机名,包括localhost。

因此;甚至在Windows上它正在寻找“主机”文件 它位于c:\ windows \ system32 \ drivers \ etc。

编辑您的hosts文件并添加localhost或您的任何主机 想要你的xdebug.remote_host。

e.g。

127.0.0.1 locahost

192.168.0.101 abojmsi

这不仅可以解决这个问题,还可以解决几乎所有的apache问题。

相关问题