[Middleman 3] middleman server -h オプションで LAN 内の別端末からアクセスする
LAN 内の別端末から Middleman にアクセスします。
“`prettyprinted
% middleman version
Middleman 3.3.6
“`
> * [Middleman と Grunt の役割分担 | deadwood](https://www.d-wood.com/blog/2014/10/15_7038.html)
## 状況
`middleman server -h` オプションがあったので試してみます。
“`prettyprinted
% 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 を調べて立ち上げます。
“`prettyprinted
% ifconfig | grep inet
“`
`inet 192.168.33.1` だったのでこれで起動します。
“`prettyprinted
% middleman server -h 192.168.33.1
“`
これで(mac 内の)VirtualBox からも `192.168.33.11:4567` でアクセスできるようになりました。
ただし、LAN 内の別端末からサーバにアクセスはできないよう。
なにかしら設定はありそうですが 。。。
他のタスクもあるので `build` ディレクトリを vagrant でまかなう方向で検討する。
> * [Vagrant: 同じLAN内の端末から仮想マシンにアクセスする | deadwood](https://www.d-wood.com/blog/2014/06/13_6344.html)
以下の追記を参照のこと。
## Unknown switches ‘–host’ 問題
追記: 2016/01/29
`–host` オプションが使えなくなっていました。
Middleman 3.4.1 で確認。原因不明。
“`prettyprinted
% bundle exec middleman server –host 10.0.1.7
Unknown switches ‘–host’
“`
## VirtualBox のホストオンリーアダプターで対応
こちらの解決は思い当たるところがなく難しそうなので、VirtualBox のネットワーク設定をまじめに確認しました。
host OS (Mac) と guest OS 間の通信がうまくいっていないようなので、ホストオンリーアダプターを追加します。
> * [ローカルPCとVirtual Boxの仮想マシンとのネットワーク接続](http://bitwave.showcase-tv.com/%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%ABpc%E3%81%A8virtual-box%E3%81%AE%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%A8%E3%81%AE%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E6%8E%A5/)
>
> VirtualBox にてHostOSとGuestOS間に外部とは隔離されたネットワークを作成します。
設定後、VirtualBox 上の Windows Edge から Middleman server の内容を表示することができました。
また、同一 LAN に接続しているスマホからも表示を確認できました。
## 補遺
> * [仮想環境VirtualBoxでのネットワークの設定 : アシアルブログ](http://blog.asial.co.jp/634)
host OS (Mac) から guest OS へ ssh。
ポートフォワーディングの設定。
> * [VirtualBox上のCentOSにTeratermからssh接続する – フルスタックエンジニアを目指して](http://skkskynw.hateblo.jp/entry/2015/10/12/011236)