2017-03-23 65 views
0

我正在嘗試爲我的Web應用程序配置調試器,但遇到了指定正確端口的麻煩。 Vagrantfile:
如何在Vagrant和ruby-debug-ide上配置端口

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

/etc/hosts文件(我的主機上)

192.168.68.8 mysite.com 

我安裝了這兩種寶石進行調試

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

我讀到爲了使用紅寶石-debug-ide對流浪者,我應該運行 rdebug-ide --host 0.0.0.0 --port 80 --dispatcher-port 8080 -- bin/rails s 其中--port應該從Vagrantfile來賓端口和主機端口`--dispatcher-port``

但它說

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

在另一邊,如果我嘗試改變Vagrantfile這些端口,我失去機會從127.0.0.1:specified_port到達我的應用程序,但仍然可以從mysite.com,這是困惑

回答

1

你已經有東西在端口80(Apache或Nginx)監聽,所以你不能綁定在這個端口。您可以在以下

  1. 啓動軌道做另一個端口像3000
在遊民

開始rdebug-ide --host 0.0.0.0 --port 3000 --dispatcher-port 3000 -- bin/rails s

如果使用私網IP在vagrantfile你不需要轉發端口因爲你會使用自己的IP訪問你的VM服務器

  • 檢查什麼是端口監聽80
  • 在虛擬機上運行sudo netstat -nltp,檢查結合80端口的進程,殺死它

    例如

    [email protected]:/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 
    ... 
    

    所以你殺的Apache2進程(PID 1827)