プロが教える店舗&オフィスのセキュリティ対策術

Ruby初心者です。
「WinXp+Apache2+PHP5+MySQL5」の環境を使用しています。

今度Rubyも入れようと考えています。
PHPのようにRubyを動かしたくてネットを検索すると「eRuby」を使い
「mod_ruby.so」をApacheのモジュールとして組込む必要が有る
と書かれています。が・・・ネットに記載のある
http://rtokiwa.s55.xrea.com/wiki/index.php?mod_r …」や
http://www.modruby.net」が接続できません。
mod_rubyのWindowsバイナリーは何処で入手出来るのでしょうか?
同様にeRubyのWindowsバイナリーは何処で入手出来るのでしょうか?
ネットの記載も古い物が多く、最近は「mod_ruby.so」や「eRuby」を使わなくても
「WinXp+Apache2」環境でPHPの様に使用出来る環境設定が有るのでしょうか?
初心者なもので自分の環境にRubyを構築できず困っています。
どなたか、ご教授ください。

よろしくお願いします。

A 回答 (1件)

まず、eRubyはプログラムでなく仕様です。

eRubyを実現するプログラムとしては、Cで書かれたerubyとRubyで書かれたERBがあります。

WindowsにRubyをインストールすると、ERB.batも自動的にインストールされますので、そのままERBを使うのが楽です。Windows用のerubyが配布されているのどうか知りません。

PHPもApacheのモジュールとして動かす方法とCGIとして動かす方法があるように、Rubyも同じです。
Windows用mod_rubyが入手できないのであれば、ERB.BATをCGIとして動かすのがいいと思います。

たとえば、Apache設定で、
Options +ExecCGI
AddHandler cgi-script .rhtml
して、
foo.rhtmlの1行目に下記のようにerb.batのフルパスを実際のインストール先に合わせて書く。

#!/ruby/bin/erb.bat
<html><head><title>TEST</title>
</head><body>
PAI = <% puts Math::PI %>
</body></html>

WindowsのApacheは触ったことないので、違ってるかも。

この回答への補足

notnotさま、深夜にも関わらずご回答有り難うございます。
私の質問が言葉足らずだったことをお詫びします。

現在使用中の環境はPHPをターゲット・サーバーにアップする前に
ローカルのWindows環境でテストする目的で設定しています。
PHPもSSIで使用しています。CGIでの使用はほとんど有りません。

いま有るPHPのシステムを勉強のためRubyで試行錯誤やってみよう。
と言うのが発端で以下の様な簡単なCGIは動かす事は出来ました。
------------------------------------------
#!H:/Ruby/bin/ruby -Ks
require "cgi"
cgi = CGI.new
print cgi.header("type" => "text/plain")
print "CGIのテストです。","\n"
------------------------------------------
でもSSIで使えないと自分的には意味が無いのです。
「CGI構成に変えれば?」と言う話も出るかとは思いますが
SSIで遣って見たいのです。

教えていただいたerb.batを使う設定を追加しサンプルをhtmlから
<A href="../cgi-bin/eruby/test.rhtml">Test</A>
で呼び出すと
[Tue Jan 08 11:24:12 2013] [error] [client 127.0.0.1] Premature end of script headers: test2.rhtml, referer: http://localhost/index2.html
[Tue Jan 08 11:24:12 2013] [error] [client 127.0.0.1] '"H:\\Ruby\\bin\\ebr.bat"' is not recognized as an internal or external command,\r, referer: http://localhost/index2.html
[Tue Jan 08 11:24:12 2013] [error] [client 127.0.0.1] operable program or batch file.\r, referer: http://localhost/index2.html
と、エラーになりebr.batの呼び出しに失敗します。
未熟者ゆえの間が抜けた事を遣っているかも知れませんが
それが分らないのが初心者とお笑い下さい。

また、情報でも有りましたらご教授ください。

補足日時:2013/01/08 11:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!