From: Takeshi Honda Date: 2002-06-21T13:51:41+09:00 Subject: [ruby-list:35421] Re: Webrick,Div,Apache 咳さん、ありがとうございます。 CGIでDivを使うことは無事できました。 > > WebrickをApacheと連動させたいのですが、 > > 連動とはどういうものですか? CGIを動かすのはApache、TofuSessionを動かすのはWEBrick ということです。 咳さんにいただいたサーバのサンプルはdRubyで作られていま すが、かわりにWEBrickを使う感じです。 これは可能ですか? 必要があるか、といわれるとちょっと困ってしまいますが、 そのうち必要になるかもしれないと思いました。 --- m_seki@mva.biglobe.ne.jp からのメッセージ: > > 咳といいます。 > > > WebrickをApacheと連動させたいのですが、 > > 連動とはどういうものですか? > > > > あと、Div,TofuをCGIで使いたいんですけど、 > > やっぱりRWikiに書いてなくて、 > > わかりません。 > > > > > http://www.jin.gr.jp/~nahi/RWiki/index.cgi?cmd=view;name=YourFirstDiv%3A%3ACGI;em=Div > > この↑ページをもとにすると次のような手順かな。わかりま すか? > > = サーバの準備 > > アプリケーション本体となるサーバを起動します。 > druby://localhost:7642 がサーバのURIになります。 > > ----------------------- yourapp.rb > require 'div/div' > require 'div/tofusession' > > class BaseDiv < Div::Div > set_erb('base0.erb') > end > > class YourTofuSession < Div::TofuSession > def initialize(bartender, hint=nil) > super(bartender, hint) > @base = BaseDiv.new(self) > end > > def do_GET(context) > update_div(context) > context.res_header('content-type', 'text/html; > charset=euc-jp') > context.res_body(@base.to_html(context)) > end > end > > if __FILE__ == $0 > require 'drb/drb' > require 'tofu/proxy' > > tofu = Tofu::Bartender.new(YourTofuSession) > DRb.start_service('druby://localhost:7642', tofu) > DRb.thread.join > end > ----------------------- > > > > == CGIの準備 > > 次のようなスクリプトを適切な場所においてCGIとして起動 できるように > します。 > > ----------------------- tofu-cgi.rb > #!/usr/local/bin/ruby > require 'cgi' > require 'tofu/cgicontext' > require 'tofu/proxy' > > cgi = CGI.new > > DRb.start_service > context = Tofu::CGIContext.new(cgi) > bartender = DRbObject.new(nil, > 'druby://localhost:7642') > bartender.service(Tofu::ContextProxy.new(context)) > ----------------------- > > このCGIスクリプトは次のページの最後の節からもってきま した。 > → http://www.jin.gr.jp/~nahi/RWiki/index.cgi?cmd=view;name=Tofu __________________________________________________ Do You Yahoo!? Yahoo! BB is Broadband by Yahoo! http://bb.yahoo.co.jp/