[Middleman 3] middleman server -h オプションで LAN 内の別端末からアクセスする
LAN 内の別端末から Middleman にアクセスします。
% middleman version
Middleman 3.3.6
Contents
状況
middleman server -h
オプションがあったので試してみます。
% middleman server -h 192.168.33.11
== The Middleman is loading
== LiveReload is waiting for a browser to connect
/Users/****/.rbenv/versions/2.1.1/lib/ruby/2.1.0/socket.rb:206:in `bind': Can't assign requested address - bind(2) for 192.168.33.11:4567 (Errno::EADDRNOTAVAIL)
ネットワークの設定が必要そうですが、とりあえず Mac の IP を調べて立ち上げます。
% ifconfig | grep inet
inet 192.168.33.1
だったのでこれで起動します。
% middleman server -h 192.168.33.1
これで(mac 内の)VirtualBox からも 192.168.33.11:4567
でアクセスできるようになりました。
ただし、LAN 内の別端末からサーバにアクセスはできないよう。
なにかしら設定はありそうですが 。。。
他のタスクもあるので build
ディレクトリを vagrant でまかなう方向で検討する。
以下の追記を参照のこと。
Unknown switches ‘–host’ 問題
追記: 2016/01/29
--host
オプションが使えなくなっていました。
Middleman 3.4.1 で確認。原因不明。
% bundle exec middleman server --host 10.0.1.7
Unknown switches '--host'
VirtualBox のホストオンリーアダプターで対応
こちらの解決は思い当たるところがなく難しそうなので、VirtualBox のネットワーク設定をまじめに確認しました。
host OS (Mac) と guest OS 間の通信がうまくいっていないようなので、ホストオンリーアダプターを追加します。
VirtualBox にてHostOSとGuestOS間に外部とは隔離されたネットワークを作成します。
設定後、VirtualBox 上の Windows Edge から Middleman server の内容を表示することができました。
また、同一 LAN に接続しているスマホからも表示を確認できました。
補遺
- 仮想環境VirtualBoxでのネットワークの設定 : アシアルブログ
host OS (Mac) から guest OS へ ssh。
ポートフォワーディングの設定。