読者です 読者をやめる 読者になる 読者になる

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

Cloud9上でSinatraアプリを動かす

cloud9 ruby sinatra

cloud9上でsinatraを動かそうとした時、通常のままでは動かないので覚書。

発生事象

以下のコマンドラインSinatraアプリを動かそうとしても画面が表示されない。

bundle exec ruby app.rb

app.rbはこんな感じ。

require 'sinatra'

get '/' do
    'Hello'
end

もう少し詳細に書くと、WEBrickは正常に動いているけど、いざ指定されているアドレスにアクセスしても何も表示されていないという状況です。

解決方法

起動パラメータを修正します。

bundle exec ruby app.rb -p $PORT -o $IP

具体的には -p $PORT -o $IP を追加。IPアドレスとポート番号を明示的に指定してあげるって感じですね。ちなみに、IPとPORTにはどんな値が設定されているかというと・・・・

yatta472:~/workspace $ echo $PORT
8080
yatta472:~/workspace $ echo $IP
0.0.0.0
yatta472:~/workspace $ 

だそうです。ポートとかも80番は公開できないように鳴ってたりするのか、すでに使っているのか・・・・外部のアクセスは8080にしているんですね。

終わりに

そういうことねー。通常、何もパラメータを指定しないで起動するとlocalhostとかになっているから、それとアクセス可能なアドレスのマッピングがうまくいっていなくて表示されないということね。

じゃぁcloud9上のブラウザでlocalhostでアクセスしたら問題ないことになるのかな。(汎用性がない使い方ですがww

参考記事

Running Ruby Sinatra on Cloud 9 | Better Living Through Technology | Simon Curd

Ruby - Cloud9上でのRubyで作成したWebアプリがローカルで動作しない(15743)|teratail

Sinatra: Up and Running

Sinatra: Up and Running

広告を非表示にする
Real Time Web Analytics