Hatena::ブログ(Diary)

kk_Atakaの日記 RSSフィード

2015-03-14

Jekyllがデフォルトでは外部から繋がらなくなってたよ

目次

あらすじ

しばらく触っていなかったJekyllをアップデートしたときに他のPCからアクセスできなくてちょっとハマった。

Ruby - Sinatraがデフォルトでは外部から繋がらなくなってたよ - Qiita (タイトルはリスペクト)

解決策(暫定)

_config.ymlhost: 0.0.0.0を定義するか、起動時に--host 0.0.0.0オプションを指定すればいいんだけどそれがもっともよいんだろうか。

常時あげっぱなしにはしないんだけど、どうしても一瞬別のPCで起動してそこに向けて(ローカルからだったり外からだったり)アタックしたい時があるので困っていた。

環境

$ bundle show
Gems included by the bundle:
  * RedCloth (4.2.9)
  * blankslate (2.1.2.4)
  * bundler (1.6.1)
  * celluloid (0.15.2)
  * classifier (1.3.4)
  * coffee-script (2.3.0)
  * coffee-script-source (1.7.1)
  * colorator (0.1)
  * execjs (2.2.1)
  * fast-stemmer (1.0.2)
  * ffi (1.9.3)
  * hparser (0.4.0 dc35f05)
  * jekyll (2.1.1)
  * jekyll-coffeescript (1.0.0)
  * jekyll-gist (1.1.0)
  * jekyll-paginate (1.0.0)
  * jekyll-sass-conver.6.0)
  * rake (10.3.2)
  * rb-fsevent (0.9.4)
  * rb-inotify (0.9.5)
  * redcarpet (3.1.2)
  * ref (1.0.5)
  * safe_yaml (1.0.3)
  * sass (3.3.11)
  * therubyracer (0.12.1)
  * timers (1.1.0)
  * toml (0.1.1)
  * yajl-ruby (1.1.0)

bundle updateは成功した。2.5.3まであがった。

困った

で、起動すると色々warningはあるものの一応成功はするのだが、BindAddressがいきなり変わってて外部からアクセスできなくなってた。

jekyll serve時の起動ログでアドレスが確認できる。

  • Jekyll 2.4.0(ちょうど別環境で動くやつがあった)

Server address: http://127.0.0.1:4000/

  • Jekyll 2.5.3

Server address: http://0.0.0.0:4000/

調査

とりあえずjekyll-x.x.x/lib/jekyll/commands/serve.rbを探る。

この辺でBindAddressにconfig['host']を入れてて、この初期(?)値が変わってる。

def webrick_options(config)
  opts = {
    :BindAddress        => config['host'],
    :DirectoryIndex     => %w(index.html index.htm index.cgi index.rhtml index.xml),
    :DocumentRoot       => config['destination'],
    :DoNotReverseLookup => true,
    :MimeTypes          => mime_types,
    :Port               => config['port'],
    :StartCallback      => start_callback(config['detach'])
}

configってどこで初期化されてるんだっけ〜 -> jekyll-x.x.x/lib/jekyll/configuration.rbだった!

blameしていつ変更が入ったのか調べてみると、2014年の11月だった。

commit a16dfef8403921aa08c95839a81b00134dbe12bd
Author: Alfred Xing <alfredxing@users.noreply.github.com>
Date:   Sun Nov 2 15:31:23 2014 -0800
    Use 127.0.0.1 as host instead of 0.0.0.0
diff --git a/lib/jekyll/configuration.rb b/lib/jekyll/configuration.rb
index 8a1d732..7f1148a 100644
--- a/lib/jekyll/configuration.rb
+++ b/lib/jekyll/configuration.rb
@@ -42,7    => '',
 
       # Backwards-compatibility options

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/kk_Ataka/20150314/1426326141
リンク元