Ruby-WEBrickでwebサーバ
Ruby WEBrickについて
WEBrickはRubyのみで書かれたWebサーバー用フレームワークです。
Ruby 1.8以降のバージョンでは標準添付されています。
WEBrickを利用することで、簡易的なHTTPサーバーを作成して、CGIやWebアプリケーションの動作を確認することができます。
WEBrickのサンプル
#!/usr/bin/ein ruby
require 'webrick'
# 拡張子「.rb」ファイルをCGIとして実行可能にする。
module WEBrick
module HTTPServlet
FileHandler.add_handler("rb", CGIHandler)
end
end
# 動作設定
opt = {
:DocumentRoot => '.',
:Port => nil,
:BindAddress => nil
}
server = WEBrick::HTTPServer.new(opt)
# CGIを実行可能にする
cgi_dir = File.dirname(File.expand_path(__FILE__))
server.mount("/", WEBrick::HTTPServlet::FileHandler, cgi_dir)
# サーバの終了シグナルを設定する
['INT', 'TERM'].each {|signal|
trap(signal) {server.shutdown}
}
# サーバを開始する
server.start
WEBrickの設定について
サーバ設定について
WEBrick::HTTPServerクラスを使用します。
Webサーバの設定はnewの引数にハッシュで指定します。
CGIの利用について
拡張子をが「.cgi」のファイルに実行属性を付加します。
server.mount(Webサーバ上でのパス ,
WEBrick::HTTPServlet::CGIHandler ,
CGIプログラムのファイルパス)
実行可能ファイルの追加
デフォルトでは、cgiやrhtmlなどの拡張子のみがCGIとして実行可能なファイルとなります。
rbやhtmlといった拡張子のファイルをCGIとして実行させるには、以下の設定を行います。
サーバオブジェクトを作成する前に呼び出しておきます。
require 'webrick'
module WEBrick::HTTPServlet
WEBrick::HTTPServlet::FileHandler.add_handler('rb', WEBrick::HTTPServlet::CGIHandler)
WEBrick::HTTPServlet::FileHandler.add_handler('html', WEBrick::HTTPServlet::ERBHandler)
end
ファイル一覧を表示しない
indexが存在しない場合の、ファイル一覧を表示しないようにする
:DocumentRootOptions => { :FancyIndexing => false }
関連ページ
- Ruby
- Ruby-ファイルロック
- Ruby-OpenSSL暗号化
- Ruby-zlibファイル圧縮
- Ruby-ハッシュを作成する
- Ruby-ログのローテーション
- Ruby-YAML形式ファイルを操作する
- Ruby-WEBrickでwebサーバ
- Ruby-CGIでパラメータを受け取る
- Ruby-CGIセッション