How to configure ports on Vagrant and ruby-debug-ide

邮差的信 提交于 2019-12-25 05:19:16

问题


I’m trying to configure debugger for my web application, but I run into trouble with specifying correct ports for it. Vagrantfile:

config.vm.network :private_network, ip: "192.168.68.8"
config.vm.network :forwarded_port, guest: 80, host: 8080

/etc/hosts (on my host machine)

192.168.68.8    mysite.com

I installed these two gems for debugging

gem 'ruby-debug-ide', group: [:development,:test]
gem 'debase', group: [:development,:test]

I read that in order to use ruby-debug-ide on vagrant, I should run rdebug-ide --host 0.0.0.0 --port 80 --dispatcher-port 8080 -- bin/rails s where --port should be guest port from Vagrantfile and host port for `--dispatcher-port``

But it says

Permission denied - bind(2) for "0.0.0.0" port 80

On the other side, if I try to change those ports in Vagrantfile, I lose the opportunity to reach my application from 127.0.0.1:specified_port, but still can do it from mysite.com, which is confusing


回答1:


you already have something listening on port 80 (apache or nginx) so you cant bind on this port. You can do one of the following

  1. start rails on another port like 3000

in your vagrant start rdebug-ide --host 0.0.0.0 --port 3000 --dispatcher-port 3000 -- bin/rails s

If you use a private network IP in your vagrantfile you dont need to forward port as you'll access your VM server using its own IP

  1. check what is listening on port 80

run sudo netstat -nltp in your VM, check the process which binds the port 80 and kill it

For example

vagrant@precise32:/etc/init.d$ sudo netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      512/rpcbind
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1827/apache2
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      652/sshd
tcp        0      0 0.0.0.0:58397           0.0.0.0:*               LISTEN      539/rpc.statd
tcp6       0      0 :::111                  :::*                    LISTEN      512/rpcbind
tcp6       0      0 :::22                   :::*                    LISTEN      652/sshd
...

so you'll kill the apache2 process (PID 1827)



来源:https://stackoverflow.com/questions/42966946/how-to-configure-ports-on-vagrant-and-ruby-debug-ide

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