61
59

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant(CentOS7) + Rails環境でホストのブラウザからサーバ接続できなかった時の対処

Last updated at Posted at 2016-05-07

##大まかな流れ
Vagrantの中にRails環境を導入

Mysql,Railsの導入はできた

いざRailsを走らす

ローカル環境ではアクセスすることができたが,ホストOSでのブラウザ接続が出来なかった← これが問題

※環境構築について:Vagrant 1.8 + CentOS 7 + VirtualBox 5 + Ruby on Rails + Mysqlで開発環境構築を参照しながら行いました.(すごくわかりやすい説明でやりやすかったです.)

##問題点について

  • Railsが動いているにもかかわらずローカルのみで動き,ホストサーバに接続できなかった.

実際の画面はこんな感じ
screenshot.png

##解決方法

###行った解決方法①
Railsの起動方法を変えてみた.
Rails var4.2以降では通常の起動ではローカルのみの起動となってしまうので
オプションで -bとIPアドレス(基本的に0.0.0.0)
rails s -b 0.0.0.0

結果
screenshot.png

ダメでした...
####原因
そもそも3000番ポートが空いてなかった.

###行った解決方法②
VagrantFileを書き換えてみる.
まずゲストの3000番ポートとホストの3000番ポートを開くように設定ファイルをvagrantfileを編集する.

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # config.vm.network "forwarded_port", guest: 80, host: 8080
  #以下にこの文章を付け足す
  config.vm.network :forwarded_port, guest: 3000, host: 3000

次にVagrantfile に適当なIPアドレスの割り当て設定をしてみる.

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  #以下にこの文章を付け足す
  config.vm.network :private_network, ip: "192.168.33.10"

Vagrantfileを編集したあとvagrant reloadで設定を読み込む`

参考サイト:Vagrantの仮想環境でrails serverで動いているアプリケーションにMacのブラウザからアクセスしてみる

結果
screenshot.png

ダメでした...
サイトで調べてみると,ほとんどの人がここまででちゃんとホスト側のブラウザからアクセスできているみたいです...

###行った解決方法③
サイトを次々調べていくうちに1つだけ違った方法があったので紹介.
Firewalld(iptablesのCentOS7用)をオフにする.

vagrant ssh内で

$ sudo systemctl stop firewalld.service
# firewalld を無効にする
$ sudo systemctl mask firewalld.service
$ sudo systemctl list-unit-files | grep firewalld
# OS 起動時もfirewalldが起動しないようにする

を実行し,Railsを走らせる...

参考サイト:開発のわだち(3):自分の開発環境を作る【2】

結果
rails_first_view.png

!!!!
ついにホストのブラウザからサーバアクセすることが出来ました!

__解決方法①と解決方法②,解決方法③__を組み合わせることでサーバアクセスが出来ました.

おしまい.

61
59
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
61
59

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?