Xdebug使网站加载挂起并启用远程调试

时间:2012-06-12 21:28:42

标签: php apache2 xdebug virtualbox

我会尽量详细了解情况,但这让我困惑了很长时间。

我在Win7主机上运行了一个Ubuntu Server 12.04来宾。我为VBox配置了2个NIC:一个用于与外界通信的NAT适配器和一个Host-Only适配器,用于为主机和guest虚拟机创建专用网络.LAMP堆栈是Ubuntu Server 12.04提供的默认堆栈。 guest虚拟机识别两个NIC,Host-Only NIC具有静态IP配置。主机称为192.168.56.1,guest虚拟机称为192.168.56.101。我使用this指南进行设置。 ifconfig显示两个适配器。我通过ping它来测试主机是否可以访问,我确实收到了回复。

我让一切正常运行:MySQL,PHP,Apache2,APC,共享文件夹挂载,项目可以访问,并且加载速度尽可能快。

这就是xdebug的用武之地。只要我禁用远程调试器或告诉xdebug我的远程主机是localhost,项目以适当的速度加载。但是,一旦我告诉xdebug远程主机不是localhost,或者它应该连接回任何请求,页面加载似乎会挂起分钟,然后才能最终传递结果。

我使用Symfony2开发,它有一个漂亮的开发人员工具栏,这个工具栏实际上告诉我页面加载花了1174毫秒。这让我怀疑它可能是xdebug而Apache并不是很好玩。以下是我尝试使用xdebug的基本配置:

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

xdebug.remote_enable=on
xdebug.remote_handler=dbgp
;xdebug.remote_connect_back=on
xdebug.remote_host=192.168.56.1
xdebug.remote_port=9000
xdebug.remote_log = /var/log/xdebug.log

我完全不知道可能导致这个问题的原因,并且非常感谢任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分:4)

好吧,它没有我想象的那么复杂。

Windows防火墙阻止了该端口。在我以为我允许端口9000通过防火墙后,我决定再次检查,只需将其完全关闭即可。低,看,它完美无瑕。所以我会在这里留下这个回复,让人们遇到同样的问题:

使用类似的结构时,请确保允许通过所选调试器端口的流量!