Windows の ruby WEBrick を試してみた
以下を参考にコマンドプロンプトから起動してみた
あーありがち
最後の「.」も大事!カレントをドキュメントルートにするということ
これだけで、httpサーバー完成!
すげー
これでrubyスクリプトも動くと思って、
http://localhost:3000/test.rb
てな感じで呼び出したら、
コードがそのまま表示されました ははは
rubyのサーバーだからいきなりrubyスクリプト動くと思い込んでました。すいません
httpサーバー用スクリプトを作ればよいらしいので、サーバーのスクリプトはこんな感じにした
require 'webrick' include WEBrick module WEBrick::HTTPServlet FileHandler.add_handler('rb', CGIHandler) end server = WEBrick::HTTPServer.new({ :BindAddress => '0.0.0.0', :Port => '3000', :DocumentRoot => 'C:/temp/hoge', :CGIInterpreter => 'C:/OLS/ruby-1.9.2-p136-i386-mswin32/bin/ruby.exe'}) Signal.trap(:INT) do server.shutdown end server.start
「:DocumentRoot」と「:CGIInterpreter」は各自の環境に合わせればよいかと
あとは、「:DocumentRoot」にrubyスクリプトを配置して呼びさせば動く
test.rb
print "Content-type: text/html\n\n" require "cgi" cgi = CGI.new puts cgi["q"]
例:http://localhost:3000/test.rb?q=aaa
実行結果は、単に「aaa」が表示されるだけだが、この事からわかることがたくさんある
- 「q=」に設定した値がきちんと渡ったこと
- サーバーからのデータがきちんと届いたこと
これで、サーバー側のコードが簡単にテストできる。うれしい!
しかし、rubyの破壊力というか凄さというか、驚きます。(世間より50周ぐらい周回遅れだろうな)
今回引用機能でコードを表現したけどインデントきかないのね
みんなどうやってるんだろう?
追記
コメントで頂いた情報で、修正しました。
ソースコードを色付けして記述する(シンタックス・ハイライト)