LoginSignup
66
61

More than 5 years have passed since last update.

Vagrant/VirtualBox上にたてたWebサイトの実機確認をiPhone/iPadからおこなう

Last updated at Posted at 2015-01-25

Goal

  • MacOSXをHostとして、CentOSをGuestとしたVMをVagrant/VirtualBoxで起動し、HTTPサーバをたててWebアプリを開発する
  • Guest(CentOS/Vagrant)をpublic_networkの固定ipつきで起動し、同ネットワークからのアクセスを可能にする
  • iPhone, iPadを同じWifiネットワークに接続し、固定ip直うちでWeb画面にアクセスする
  • ホスト名でのVirtualHostを有効にできるように、WebサーバがのっているGuest(CentOS/Vagrant)に自前のDNSもたてて名前解決ができるようにする(iPhoneはjail breakしないとhostsをいじれないらしいので、その代替案...)

スクリーンショット 2015-01-25 19.55.56.png

この例では、Wifiネットワークアドレスを192.168.2としている.
192.168.2.XXXはMac OSXが外と通信するためのネットワークインタフェース.
192.168.2.YYYはiPhone/iPadが外と通信するためのネットワークインタフェース(MacOSXと同じWifiを選択する).
192.168.2.ZZZはvagrantのホストが外部と直接通信するためのネットワークインタフェース.

vagrantに固定ipを割り当てて起動

固定ip=192.168.2.ZZZとしてWifiにブリッジして起動する.
bridgeは指定しなければvagrant起動時に選べるようになるので、その他のネットワークを選択したい場合は都度接続先を決めれば良い.

public_networkのIPはprivate_networkとは別のアドレスを指定する.
Mac OSXのIPを調べて、同じネットワーク以下のアドレスをもつようにする(今回は192.168.2をprefixにする).

config.vm.network :public_network, ip: '192.168.2.ZZZ', bridge: 'en0: Wi-Fi (AirPort)'

確認

Guestマシンのネットワークインタフェースが増えていることを確認する.

ifconfig | grep '192.168.2.ZZZ'

Hostマシン(Mac OSX)からpingコマンドで疎通できることを確認する.

ping 192.168.2.ZZZ

Guestマシン(CentOS,Vagrant)でapacheなどを起動して、port80をlistenしておく.

netstat -an | grep :80
  # 192.168.2.ZZZ:80でLISTEN状態になっていること

iPhone/iPadからブラウザのアドレスバーにIP(192.168.2.ZZZ)直うちして、vagrantのapacheへリクエストがくることを確認する.

自前のDNSをたてて、ローカルドメインでアクセス可能にし、ホスト名でのVirtualHostを使えるようにする

IP直うちでアクセス可能にするところまでは簡単だけど、DNSサーバをたてるのはいろんな作業がいるので注意.

DNS設定

以下を参考にして、Guestマシン(CentOS,Vagrant)にDNSサーバをたてる.
djbdnsでローカルドメインの名前解決をおこなう

↑の例では、
192.168.2.ZZZ => 192.168.2.12
192.168.2.XXX => 192.168.2.100
として設定しています.

iPhone/iPadのDNSサーバを指定する

ネットワーク設定で、192.168.2.ZZZのアドレスを指定する.

設定 > Wi-Fi > 接続されているネットワークの(i)ボタン > DHCP > DNS

iPhone/iPadブラウザのアドレスバーにローカルドメインを入力してvagrantのapacheなどにアクセスできるようになればOK.

Environment

CentOS, Vagrant

uname -a
  # Linux *** 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/issue
  # CentOS release 6.5 (Final)
  # Kernel \r on an \m

Mac OSX

OSX Yosemite version 10.10.1

iPhone

iOS 8.1.2
66
61
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
66
61