VPS上でSinatraを動かしたら手元の端末からアクセスできない
久々に気分が上向いているので書く。
Sendagaya.rb #87にて「Rails以外のRubyフレームワーク使ってみたい」と聞いてみたらSinatraを勧められたので触ってみたのですが、まさかのHello, Worldで詰まる、という状況になってあれやこれや調べたログ。
SinatraのREADMEに書いてあるように
require 'sinatra' get '/' do 'Hello world!' end
このコードをVPS上で書いて、
% ruby public_html/sinatra.rb == Sinatra/1.4.5 has taken the stage on 4567 for development with backup from Thin Thin web server (v1.6.2 codename Doc Brown) Maximum connections set to 1024 Listening on localhost:4567, CTRL+C to stop
のようにしても外からつながらないという。ポートは外からノーガードだし何でだろうなぁと思っていたら、まさにジャストミートな解決法が
書いてある通りに
require 'sinatra' set :environment, :production get '/' do 'Hello world!' end
みたいに変えたら
% ruby public_html/sinatra.rb == Sinatra/1.4.5 has taken the stage on 4567 for production with backup from Thin Thin web server (v1.6.2 codename Doc Brown) Maximum connections set to 1024 Listening on 0.0.0.0:4567, CTRL+C to stop
ちゃんと見られるようになった!
上の記事によると、
bundle exec ruby hoge.rb -e productionみたいなやり方でも動くらしい。