Remote Xdebug with VirtualBox

痞子三分冷 提交于 2019-12-02 21:06:32

What worked for me was running the following from my host:

ssh -R 9000:localhost:9000 yourUserName@yourVirtualMachine

Note the use of the -R flag instead of -L. I had trouble using port forwarding to get things working, while the ssh tunnel worked perfectly. Note you could also do this by running the ssh command from within the VM and connecting to the host with the -L flag.

Since I ended up on this question while working with Vagrant, this is the command I personally used, use the password 'vagrant' when prompted:

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

My solution to this issue was the following:

1) Enable the port forwarding in the network configuration (using the NAT adapter) I simply used port 9000 and the IP addresses of the host and the guest. Protocol is TCP

2) Configured my xdebug settings: In my case it was important to set xdebug.remote_host = "The permanent host IP" Then everthing worked perfectly.

Hope this helps someone out there.

Gordon Forsythe

I added 4 options to use Xdebug in my projects in a virtual machine:

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

As long as your debugger is listening, it should break on a breakpoint.

If you have this in your log file:

I: Connected to client. :-)

That means that Xdebug has successfully made a connection to the IDE.

The IDE (netbeans) simply then shuts down the connection without even attempting to send any information. This happens if it doesn't know what to do with the filename (file:///home/dev/web/projects/project.com.vm/httpdocs/index.php) in your example. The reason for this is that you do not have the correct path mapping set-up in your IDE.

The virtual machine needs to be able to talk back to the host machine and to make that happen you need to forward 9000 to do this. This step is not described in some setups because it happens in the background.

To do this, issue the command ssh -L 9000:localhost:9000 yourUserName@youVirtualMachine.

To simplify this, I have the name of the virtual machine in /etc/hosts and in my ~/ssh/config file.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!