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

rubyで作ったcgiをlocalhostで動かしてみる。

前から中断しているhtmlのまとめをさしおいて、いきなりRubyの話をまとめ出す


Rubyで作ったプログラムをブラウザで動かすために用意するモノをまとめていく。

server.rb(必須)

これを作らないと、localhostにアクセスするとか、なんとか、そんなことできない。
記述のサンプルを以下にまとめる。

require 'webrick'
module WEBrick
  module HTTPServlet
    FileHandler.add_handler('rb', CGIHandler)
  end
end
server = WEBrick::HTTPServer.new({
  :DocumentRoot => '.',
  :CGIInterpreter => WEBrick::HTTPServlet::CGIHandler::Ruby,
  :Port => '8080',
})
['INT', 'TERM'].each {|signal|
  Signal.trap(signal){ server.shutdown }
}
server.start

ポイントはDocumentRootの設定
これを設定しないと、localhostはどこを参照したらいいかわからなくなる。

index.html(非・必須)

localhostにアクセスしたとき、もぬけのからなページで表示されても味気ないので、indexを作っておく。

<html>
  <head>
    <title>test</test>
  </head>
  
  <body>
    <div>
      hoge
    </div>
  </body>
</html>

なくてもいいのだから、なんでも良い。
これから作るサンプルのリンク集になってても良い。
それはそれで便利だ。

test.cgi(必須)

動かしてみたいモノ。とにかくcgiをつくる。記述はRuby

#!/usr/local/bin/ruby
print "Content-Type: text/plain\n\n"

print "Hello, World"

簡単な記述。むしろ

#!/usr/local/bin/ruby

print "Hello, World"

これだけでもよいだろう。

とにかくRubyでプログラムを書けばよい。
htmlに反映するための記法などは別途参照してほしい。

参考

localhostの記述について参照した。

日刊Web&Peace : http://bost.bostudio.co.jp/?p=443
Rubyで何かつくるページ : http://rubytools.web.fc2.com/rubydecgi.html