2017-02-25 147 views
-1

我目前在我的Mac OS上安裝了Debian虛擬機,在其中安裝了Ruby 2.4.0。我使用VirtualBox和流浪在虛擬機上託管一個rails服務器

首先,我無法啓動我的服務器這樣rails server,因爲當我嘗試訪問它在我的Mac OS的Web瀏覽器,我有這樣的錯誤:

The localhost page isn’t working 

localhost didn’t send any data. 

所以,我要推出這樣說:rails server -b 0.0.0.0我不知道爲什麼我無法啓動它127.0.0.1(默認IP)

而且,這裏是我有當消息我是l開始我的Rails服務器。

/usr/local/lib/ruby/gems/2.4.0/gems/activesupport- 

5.0.1/lib/active_support/xml_mini.rb:51: warning: constant ::Fixnum is deprecated 
/usr/local/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:52: warning: constant ::Bignum is deprecated 
=> Booting Puma 
=> Rails 5.0.1 application starting in development on http://0.0.0.0:3000 
=> Run `rails server -h` for more startup options 
/usr/local/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/core_ext/numeric/conversions.rb:138: warning: constant ::Fixnum is deprecated 
Puma starting in single mode... 
* Version 3.7.1 (ruby 2.4.0-p0), codename: Snowy Sagebrush 
* Min threads: 5, max threads: 5 
* Environment: development 
* Listening on tcp://0.0.0.0:3000 

雖然我知道,過時的東西警告相關的事實,我使用Ruby的最新版本,我不明白,最後5行:

Puma starting in single mode... 
* Version 3.7.1 (ruby 2.4.0-p0), codename: Snowy Sagebrush 
* Min threads: 5, max threads: 5 
* Environment: development 
* Listening on tcp://0.0.0.0:3000 

你能向我解釋這些的含義?

最後但並非最不重要,當我去http://0.0.0.0:3000,即使我有正確的顯示(Yay!你在軌道上!)我在控制檯上有這個奇怪的消息。

Started GET "/" for 10.0.2.2 at 2017-02-25 23:42:38 +0000 
Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 
Processing by Rails::WelcomeController#index as HTML 
    Parameters: {"internal"=>true} 
    Rendering /usr/local/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/templates/rails/welcome/index.html.erb 
    Rendered /usr/local/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/templates/rails/welcome/index.html.erb (1.6ms) 
Completed 200 OK in 10ms (Views: 4.2ms | ActiveRecord: 0.0ms) 

你能解釋一下如何解決這個問題:Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255

謝謝!

回答

1

在任何計算機上運行的應用程序都可以在運行在同一臺計算機上的其他應用程序上訪問。在你的情況下,MacOS(主機)和Vagrant(客人)盒是兩個不同的機器。因此,無法從主機訪問綁定到Vagrant Box上的localhost界面的應用程序。

當你與rails s運行Rails應用,軌道將與接口localhost如下圖所示

[email protected]:~$ netstat -an |grep LISTEN 
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN 
tcp  0  0 127.0.0.1:3000   0.0.0.0:*    LISTEN 

Rails應用程序是在流浪箱中運行其他應用程序訪問。另一方面,如果您使用rails s -b 0.0.0.0運行rails應用程序,rails應用程序將綁定到所有接口,如下所示。

[email protected]:~$ netstat -an |grep LISTEN 
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN 
tcp  0  0 0.0.0.0:3000   0.0.0.0:*    LISTEN 

運行Rails應用程序與-b 0.0.0.0開闢了訪問來自主機應用程序。

但是,在能夠訪問rails應用程序之前,還需要做更多的工作。看起來你已經有了你的Vagrantfile中的條目。但是,無論如何我都在這裏添加它。

轉發所需端口,如下所示在Vagrantfile中。

Vagrant.configure("2") do |config| 
    config.vm.network "forwarded_port", guest: 80, host: 8080 
    config.vm.network "forwarded_port", guest: 3000, host: 8000 
    config.vm.network "forwarded_port", guest: 3001, host: 8001 
    config.vm.network "forwarded_port", guest: 3002, host: 8002 
end 

可以使用http://localhost:8000訪問運行在Vagrant端口3000上的rails應用程序。

人們可以通過加入這一行中config/environments/development.rb

config.web_console.whitelisted_ips = '10.0.2.2' 
禁用 Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255消息
相關問題