###開発環境
- ホストOS MacOS X 10.11 El Capitan
- ゲストOS CentOS 7.0
- Vagrant 1.8.5
- Ruby 2.2.5
- Ruby on Rails 4.2.7.1
*RubyとRuby on Railsは、2つともバージョンを揃えて念の為にホストOSとゲストOS両方にインストール済み
###実現したいこと
MacとVagrantで管理しているVMの共有ディレクトリでWebアプリ開発(実際の開発は、Mac上のAtomで行う)を行い、Webアプリを走らせるのはVM上で、動作確認はMacのブラウザで行うための環境を構築したい。
###発生している問題・エラーメッセージ
上記の通り、環境構築中なのですが(まだ実際の開発に入れていない)、最後の「試しにサンプルプログラムをrails newコマンドを打って確認」をしたところでつまづいてしまいました。初期画面を見ることが出来ません。
###試したことその1
まず、
#07 Webページを表示させてみよう | Vagrant入門 - プログラミングならドットインストール
の通り共有ディレクトリのVagrantfileを編集して、以下の部分のコメントを外しました。
ruby
1config.vm.network :private_network, ip: "192.168.33.10"
この作業で、VM上のCentOSの /var/www/html に簡単なindex.htmlを作って配置するとちゃんとhttp://192.168.33.10で見ることができています(ポートの指定は特にしていません)。
しかし、こちらのサイトの通り設定しても見ることが出来ていません。具体的には、以下のとおりです。
###試したことその2
- 再びVagrantfileの設定を行う
config.vm.network "forwarded_port", guest: 3000, host: 3000
を加えました。現時点でのVagrantfileの中身は以下のとおりです。
ruby
1# -*- mode: ruby -*- 2# vi: set ft=ruby : 3 4# All Vagrant configuration is done below. The "2" in Vagrant.configure 5# configures the configuration version (we support older styles for 6# backwards compatibility). Please don't change it unless you know what 7# you're doing. 8Vagrant.configure("2") do |config| 9 # The most common configuration options are documented and commented below. 10 # For a complete reference, please see the online documentation at 11 # https://docs.vagrantup.com. 12 13 # Every Vagrant development environment requires a box. You can search for 14 # boxes at https://atlas.hashicorp.com/search. 15 config.vm.box = "centos70" 16 17 # Disable automatic box update checking. If you disable this, then 18 # boxes will only be checked for updates when the user runs 19 # `vagrant box outdated`. This is not recommended. 20 # config.vm.box_check_update = false 21 22 # Create a forwarded port mapping which allows access to a specific port 23 # within the machine from a port on the host machine. In the example below, 24 # accessing "localhost:8080" will access port 80 on the guest machine. 25 config.vm.network "forwarded_port", guest: 3000, host: 3000 26 27 # Create a private network, which allows host-only access to the machine 28 # using a specific IP. 29 config.vm.network "private_network", ip: "192.168.33.10" 30 31 # Create a public network, which generally matched to bridged network. 32 # Bridged networks make the machine appear as another physical device on 33 # your network. 34 # config.vm.network "public_network" 35 36 # Share an additional folder to the guest VM. The first argument is 37 # the path on the host to the actual folder. The second argument is 38 # the path on the guest to mount the folder. And the optional third 39 # argument is a set of non-required options. 40 # config.vm.synced_folder "../data", "/vagrant_data" 41 42 # Provider-specific configuration so you can fine-tune various 43 # backing providers for Vagrant. These expose provider-specific options. 44 # Example for VirtualBox: 45 # 46 # config.vm.provider "virtualbox" do |vb| 47 # # Display the VirtualBox GUI when booting the machine 48 # vb.gui = true 49 # 50 # # Customize the amount of memory on the VM: 51 # vb.memory = "1024" 52 # end 53 # 54 # View the documentation for the provider you are using for more 55 # information on available options. 56 57 # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies 58 # such as FTP and Heroku are also available. See the documentation at 59 # https://docs.vagrantup.com/v2/push/atlas.html for more information. 60 # config.push.define "atlas" do |push| 61 # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" 62 # end 63 64 # Enable provisioning with a shell script. Additional provisioners such as 65 # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the 66 # documentation for more information about their specific syntax and use. 67 # config.vm.provision "shell", inline: <<-SHELL 68 # apt-get update 69 # apt-get install -y apache2 70 # SHELL 71end 72
- ファイアーウォールの設定
上記のサイトでは、iptablesの設定を行っていますが、CentOS 7.0をVM内で使っているということもあり、以下のとおりに設定してあります。
bash
1[vagrant@localhost ~]$ sudo systemctl is-enabled firewalld 2disabled
以上の状態で、
bash
1[vagrant@localhost html]$ rails new work 2[vagrant@localhost html]$ cd work 3[vagrant@localhost html]$ rails s
(* なお、/vagrantと/var/www/html にはシンボリックリンクをはってあります)
と打ち、いざhttp://localhost:3000/worksを開いても、
となってしまいます。ポートか、URLが間違っているのでしょうか?どなたか解決策をご存知のかた、ご教示いただければ幸いです。どうぞ宜しくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 08:27
2016/09/11 10:41