在VirtualBox中远程的Xdebug(Remote Xdebug with VirtualBo

2019-07-31 02:48发布

我试图让远程调试工作。 PHP的是在虚拟机上运行,​​我想从主机上的NetBeans调试。

我跟着指示在这里 ,在Windows 7防火墙和VirtualBox的网络设置转发端口9000,并在NetBeans中设置路径映射。 我Xdebug的设置是这样的:

xdebug.remote_enable = On
xdebug.remote_connect_back = On
xdebug.idekey = "netbeans-xdebug"
xdebug.remote_log = /tmp/xdebug.log

当我打开我想调试(使用正确的idekey)的URL它记录以下内容:

I: Checking remote connect back address.
I: Remote address found, connecting to 192.168.0.1:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" 
         xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
         fileuri="file:///home/dev/web/projects/project.com.vm/httpdocs/index.php" 
         language="PHP" protocol_version="1.0" 
         appid="1380" 
         idekey="netbeans-xdebug">
   <engine version="2.2.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2012 by Derick Rethans]]></copyright></init>

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

不过,NetBeans仍然等待连接。 我有它设置为停在第一线,除了有一个断点集。 日志文件将包含即使在NetBeans是不听的“连接到客户端”的消息。

任何想法,我可能会丢失?

谢谢。

Answer 1:

什么工作对我来说是从我的主机的以下:

ssh -R 9000:localhost:9000 yourUserName@yourVirtualMachine

注意使用-R标志,而不是-L的。 我不得不使用端口转发,把事情闹的工作,而SSH隧道完美。 请注意,您还可以通过从虚拟机内运行ssh命令,并连接到与-L标志主机做到这一点。

自从我结束了在这个问题上与放浪工作时,这是在提示时我亲自使用,使用密码“流浪者”的命令:

ssh -p 2222 vagrant@127.0.0.1 -R 9000:localhost:9000


Answer 2:

我对这个问题的解决办法是以下几点:

1)使能在所述网络配置和端口转发(使用NAT适配器)我只是用端口9000的主机和客户的IP地址。 协议是TCP

2)配置了我的XDebug设置:在我的情况下,它是设置xdebug.remote_host =重要“的永久举办地知识产权”那寄托都完美。

希望这可以帮助一个人在那里。



Answer 3:

我加了4个选项在虚拟机中使用的Xdebug在我的项目:

xdebug.remote_enable = On
xdebug.remote_host = [YOUR_HOST_IP]
xdebug.remote_connect_back = On
xdebug.remote_autostart = On

只要你的调试器监听,它应该打破一个断点。



Answer 4:

如果你有这样的日志文件:

I: Connected to client. :-)

这意味着,Xdebug的成功实现了对IDE的连接。

该IDE(NetBeans的)根本然后关闭,甚至没有试图发送任何信息的连接。 出现这种情况,如果它不知道如何处理的文件名(执行file:///home/dev/web/projects/project.com.vm/httpdocs/index.php )在你的榜样。 这样做的原因是,你不必在你的IDE的正确路径映射设置。



Answer 5:

虚拟机必须能够顶嘴主机和要做到这一点,你需要转发9000做到这一点。 因为它在后台发生的这一步是不是在某些安装说明。

要做到这一点,发出命令ssh -L 9000:本地主机:9000 yourUserName @ youVirtualMachine。

为了简化这个问题,我有虚拟机的/ etc / hosts文件,在我的〜/ SSH / config文件的名称。



文章来源: Remote Xdebug with VirtualBox