2017-02-25 5 views
-1

上のレールのサーバーをホスティング。私は私のMac OSのWebブラウザ上でそれにアクセスしようとすると、私はこのエラーを持っているので、私はこのようrails server私のサーバーを起動することはできませんVirtualboxのとベイグラントは、私は現在、私はRubyの2.4.0をインストールしている私のMac OSにDebianの仮想マシンをホースていた仮想マシン

まず、を使用しています:

The localhost page isn’t working 

localhost didn’t send any data. 

だから、私はこのようにそれを起動する必要があります。rails server -b 0.0.0.0しかし私は127.0.0.1(デフォルトIP)上でそれを起動することはできませんなぜ私が疑問に思う

また、ここで私が持っているメッセージです私は私です私のRailsサーバーを起動します。あなたを

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 

でした:私は非推奨のスタッフ警告が、私はルビーの最新バージョンを使用しているという事実に関連していることを知っていますが

/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 

、私は最後の5行を理解していません私にこれらの意味を説明してください。

最後に、私が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

ありがとうございます!任意のコンピュータ上のlocalhostインターフェイス上で実行されている

答えて

1

アプリケーションは、同じコンピュータ上で実行されている他のアプリケーションからアクセス可能です。あなたの場合、MacOS(ホスト)とVagrant(ゲスト)ボックスは2つの異なるマシンです。したがって、ホストマシンからのバグボックスのlocalhostインターフェイスにバインドされているアプリケーションにアクセスすることはできません。あなたがrails sとあなたのレールのアプリを実行すると、Railsアプリケーションは、ベイグラントボックス内で実行されている他のアプリケーションからアクセス可能な

[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 

以下のように

、レールがlocalhostをインターフェイスにバインドします。一方

あなたがrails s -b 0.0.0.0とあなたのRailsアプリケーションを実行する場合、次に示すように、アプリはすべてのインターフェースにバインドしますレール。 -b 0.0.0.0とレールのアプリを実行

[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アプリケーションにアクセスできるようになる前にもう少し行う必要があります。 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 

一つベイグラントボックスのポート3000上で実行されているRailsアプリケーションに到達するためにhttp://localhost:8000を使用することができます。

一つは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メッセージを無効にすることができます
関連する問題