Rubyで手っ取り早くWEB開発環境を用意する。WEBrick利用

| コメント(0) | トラックバック(0)

Rubyに標準で入っているWEBrickを使って cgiが動くhttpサーバーを立ててみたので公開

apacheなどのhttpサーバーを用意せずに rubyだけのコードで動きます。

※2013/7/26追記 sinatraの方が簡単なので下記も参考まで。

用意するもの

  • windowsの場合
    Ruby のみ。一発インストールで便利One-Click Ruby Installer for Windows

  • Linuxの場合
    Ruby のみ。 yum -y install ruby で一発インストール

HTTP サーバーのコード

・webrick.rb

ruby
#!/usr/local/bin/ruby
# -*- coding: utf-8 -*-

IP       = '0.0.0.0'             #IPは変えること
PORT     = '8080'                #port は1024以下にしないこと、する場合はroot権限
DOC      =  './'
CGI_PATH = '/usr/local/bin/ruby' #環境にあわせてwindows  'C:\Ruby193\bin\ruby.exe'

require 'webrick'
opts  = {
  :BindAddress    => IP,
  :Port           => PORT,
  :DocumentRoot   => DOC,
  :CGIInterpreter => CGI_PATH
}

srv = WEBrick::HTTPServer.new(opts)


# view.cgiにhttpアクセスした場合、view.rbをcgiで動かす
srv.mount('/view.cgi', WEBrick::HTTPServlet::CGIHandler,  'view.rb')

#コマンドラインでCtrl+Cした場合止めるイベントハンドラ
Signal.trap(:INT){ srv.shutdown}


#サーバースタート
srv.start

CGIのコード

・view.rb

ruby
#!/usr/local/bin/ruby
# -*- coding: utf-8 -*-

$SAFE=1
require 'cgi'


cgi = CGI.new



#ヘッダー出力
cgi.out("type" => "text/html" ,
        "charset" => "UTF-8") {

  #from 情報取得
  get = cgi['get']


  #コンテツ出力
  "<html><body>" +
  "this is test page <br>" +
  "get = #{get} <br>" +
  "</html></body>"



}

FormのHTMLコード

・form.html

html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>

<form action='view.cgi' method='POST'>
  なにか入力してください <br><br>
  <input type="text"  name='get' > <br>
  <input type="submit" name="実行" >

</form>

</body>
</html>

使い方

コマンドラインからhttpサーバー起動

cmd
$ ruby webrick.rb

ブラウザーで下記URLにアクセス

http:// IPアドレス /form.html

コマンドライン終了はCtrl+C

おわりに

windwosでもruby環境が入っていれば 簡単にhttpサーバーが立てれますので開発に役立てください。

注意としては、本番のWEB環境に利用する場合は自己責任でしてください。
apacheなどと比べパフォーマンが悪く、 またセキュリティなど問題など有りそうです。

PORTが1024以下だと下記エラーが発生してすこしはまりました。

 WARN  TCPServer Error: Permission denied - bind

httpサーバーの立ち上げは簡単だった!

関連記事

トラックバック(0)

トラックバックURL: http://mukaer.com/cgi-bin/mt/mt-tb.cgi/52

コメントする

PR

PR





検索

Loading

メニュー

twitter