WinXP+Apache2にeRubyを入れる方法

このQ&Aのポイント
  • WinXP+Apache2にeRubyを入れる方法についての質問です。Windows-XP/Pro SP3で、Apache v2.0.55とPHP v5.1.6、MySQL v5.1.36を使用しています。DocumentRootは「H:/Ap2_Ruby/home」で、cgi-binは「H:/Ap2_Ruby/cgi-bin」です。手順としては、ActiveRubyをインストールし、gemをアップデートします。次にerubyとmod_ruby.soをインストールし、httpd.confを編集してApache2を起動します。最後にerubyのテストを行い、正常に表示されることを確認しました。
  • 質問者はネットで情報を探しながら質問文章を記述しましたが、内容に自信がありません。httpd.confの変更箇所についても突っ込んだ指摘を受けたいとしています。
  • 質問者は「ネット迷子」になってしまい、eruby-1.0.5-i386-mswin32-1.8.zipやRubyForApache-1.3.1.exe、mod_ruby.soを見つけるのに苦労しました。Rubyの達人の方々からの指導を求めています。
回答を見る
  • ベストアンサー

WinXP+Apache2にerubyを入れました

自身の質問「WinXP+Apache2にeRubyを入れたい」の結果報告と 「httpd.conf」の設定に付いての質問です。 まず、使用環境の詳細から記述します。 Windows-XP/Pro SP3 Apache v2.0.55 (H:\Apache Group\Apache2にインストール) PHP v5.1.6 (H:\php5.1.6にインストール) MySQL v5.1.36 (H:\MySQL5にインストール) DocumentRootは「H:/Ap2_Ruby/home」で cgi-binは「H:/Ap2_Ruby/cgi-bin」です。 インストールの顛末を記述します。 1.ActiveRubyをインストール http://www.artonx.org/data/asr/ から ActiveScriptRuby(1.8.7-p330 --with-winsock2 --enable-tcltk-stub) Microsoft Installer Package (1.8.7.36) をダウンロード ActiveRuby.msi をダブルクリックしインストールを開始 「H:\Ruby」へインストール PATHを追加「H:\Ruby\bin;」 2.gemをアップデート コマンドプロンプトから gem update --system を実行 3.erubyをインストール http://www.garbagecollect.jp/ruby/mswin32/ja/download/ext.html から eruby-1.0.5-i386-mswin32-1.8.zip をダウンロード 解凍後フォルダーを全て「H:\Ruby」へコピー 4.mod_ruby.soのインストール http://rubyforge.org/projects/rubyforapache から RubyForApache-1.3.1.exe をダウンロード ダブルクリックしインストールを開始 C:\Program Files\RubyForApache\ H:\Apache Group\Apache2\ H:\Ruby\ のフォルダを指定 インストールモジュールの選択で mod_ruby のみにチェック msvcp71.dllがOPENできないエラーが出れば無視して継続 5.httpd.confを編集/Apache2を起動 「The requested operation has failed!」となる confのmod_ruby.soをコメントアウト Apache2が起動した mod_ruby.soがエラーの原因と判断 6.別のmod_ruby.soをインストール http://www.moriq.com/ruby/win32-apache2-ruby1.8.1-mod_ruby/ から mod_ruby.so をダウンロード modulesに上書きコピー 7.Apache2を起動 Apache2は起動した 8.erubyのテスト 以下の「test.rhtml」を記述 ------------------------------------------------- <% ERuby.charset="Shift-JIS" %> <html> <body> HTML文と混在で、Ruby CGIが使えます。<br> <font size=6>ここはHTMLで、</font>次の行はRubyです。<br> <br> <% print "eRuby TEST<br>" %> </body> </html> ------------------------------------------------- IE8で「http://localhost/test.rhtml」を実行 正常に表示される。 と、言う結末でした。 eruby-1.0.5-i386-mswin32-1.8.zip や RubyForApache-1.3.1.exe や http://www.moriq.com/ruby/win32-apache2-ruby1.8.1-mod_ruby/ を見つけるのに、完全に「ネット迷子」に為り往生しました。 前置きが長くなりましたが、ここからが質問です。 ネットで色々探して記述した内容ですが 意味も良く分からず記述していますので これで良いのかどうか全く分かりません。 思いっきり突っ込みを頂きたいと思います。 httpd.confの変更箇所 ------------------------------------------------- LoadModule ruby_module modules/mod_ruby.so <IfModule mod_ruby.c> RubyAddPath H:/Ruby/lib/ruby/site_ruby/1.8/apache RubyAddPath H:/Ruby/lib/ruby/site_ruby/1.8 RubyAddPath H:/Ruby/bin RubyRequire apache/ruby-run RubyRequire apache/eruby-run RubyRequire auto-reload <Location /ruby> Options Indexes FollowSymLinks ExecCGI SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Location> <Files *.rbx> Options Indexes FollowSymLinks ExecCGI SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Files> <Location /eruby> Options Indexes FollowSymLinks ExecCGI SetHandler ruby-object RubyHandler Apache::ERubyRun.instance </Location> <Files *.rhtml> Options Indexes FollowSymLinks ExecCGI SetHandler ruby-object RubyHandler Apache::ERubyRun.instance </Files> </IfModule> DocumentRoot "H:/Ap2_Ruby/home" Options Indexes FollowSymLinks Includes ExecCGI UserDir "H:/Ap2_Ruby/home" ScriptAlias /cgi-bin/ "H:/Ap2_Ruby/cgi-bin/" <Directory "H:/Ap2_Ruby/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi .rb .rbx .rhtml ------------------------------------------------- 以上 Rubyの達人様方、よろしくご教授ください。

  • Ruby
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 39jin
  • ベストアンサー率34% (125/359)
回答No.1

もし情報がなければ? このような本があります 一読してはいかがですか ---------------------- 14歳から始める Rubyインターネットプログラミング教室 掌田(しょうだ)津那乃(つやの)著 ISBN978-4-89977-182-1 C3055 Y2381 出版社:ラトルズ ----------------------

kinta03
質問者

お礼

さっそくの回答有り難うございます。 ご紹介いただいた本をブックセンターで探したのですが見つかりませんでした。 他の書籍を見てもrailsの話ばかりで参考になりませんでした。 検索コーナーでapacheの本を探したのですが欠品になっていて実物にはお目にかかれませんでした。 また他のブックセンターを覗いてみます。

関連するQ&A

  • WinXP+Apache2にeRubyを入れたい。

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

  • apacheのCGI設定

     pc9821にFreeBSD(98)をいれapache1.3を起動させています。cgiはlight.cgiというソフトをつかっています。なかなかcgiがうまくいきません。参考ページには public_html / index.html (トップページ) | +-- bbs / light.cgi [755] | admin.cgi [755] ・・・・(省略) +-- lock [777] / | +-- past [777] / 0001.cgi [666] とかかれていますが、実際に私のサーバーにはpublic_htmlというフォルダは存在していなくて /usr/local/www/cgi-binにbbsというフォルダをつくり あとは上のようにしています。またindex.htmlは/usr/local/www/dataのなかにいれて表示してWebサーバーとしてはたらいています。またapacheの/usr/local/etc/apacheのhttpd.confは 関係ありそうな行だけあげると ServerRoot "/usr/local" DocumentRoot "/usr/local/www/cgi-bin" <Directory "/usr/local/www/cgi-bin/bbs"> Options Indexes FollowSymLinks MultiViews <location "/cgi-bin/"> Options ExecCGI AllowOverride AuthConfig Limit Order allow ,deny Allow from all </Location> <IfModule mod_mime.c> TypesConfig /usr/local/etc/apache/mime.types ADDHandler cgi-script .cgi </IfModule> ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/" <Directory "/usr/local/www/cgi-bin/bbs"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi どこがおかしいのかおしえていただけないでしょうか?

    • ベストアンサー
    • CGI
  • apacheのCGI設定について教えてください。

    CGIの勉強のために、古いパソコンに fedora core 4 をインストールしてapache でローカルのテスト用サーバーにしようとしています。 /var/www/html に設置した簡単な perl CGI は動くのですが、同じものをユーザーのホームディレクトリに設置すると、internal server error になってしまいます。 ***** 以下 httpd.confの抜粋です。***** #UserDir disable UserDir public_html <Directory /home/*/public_html> AllowOverride All Options Includes ExecCGI FollowSymLinks SetHandler cgi-script </Directory> AddHandler cgi-script .cgi .pl ************************************** サーバーのエラーログを見ると Premature end of script headers: test.cgi となっています。htmlをprintしているだけのスクリプトで、/var/www/html では動くので、apache の設定の問題かと思っています。 ちょっとカテゴリーが違うかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • Perl
  • apache/mod_perlの実行エラーについて

    apacheについて質問です。分かる方、どうぞご教授下さい。 httpd.confにmod_perlの設定を記述しない場合、通常どおりapacheが起動するのですが、以下のようにmod_perlの設定を追記するとapacheがエラーで起動しません。 【mod_perlの設定】 PerlModule ModPerl::Registry PerlRequire /usr/lib/perl5/site_perl/5.8.8/startup.pl <Location /cgi-bin> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlSendHeader On Options ExecCGI </Location> 【apacheのエラー内容】 /usr/local/apache2/bin/httpd: symbol lookup error: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Apache2/ServerUtil/ServerUtil.so: undefined symbol: ap_get_server_banner httpd.confのmod_perlの設定については、他のサーバーでは問題なく起動していますので、mod_perlのconfigure時の共有ライブラリの設定に不備があるのではと思っているのですがどう設定すればいいのか分かりません。mod_perlのconfigure時のオプションは以下のようになっています。 【mod_perlのconfigure】 perl Makefile.PL \ > MP_USE_STATIC=1 \ > MP_AP_PREFIX=../httpd-2.0.63 \ > MP_AP_CONFIGURE="--prefix=/usr/local/apache2 --with-mpm=prefork" 以下、grep の実行結果です。 [root@colinux mod_perl-2.0.3]# grep -r ap_get_server_banner /usr/lib/* バイナリー・ファイル/usr/lib/httpd/modules/mod_rewrite.soは一致しました バイナリー・ファイル/usr/lib/httpd/modules/mod_proxy_connect.soは一致しました バイナリー・ファイル/usr/lib/httpd/modules/mod_proxy_ftp.soは一致しました どんな些細なことでも結構ですので、どうかご教授のほど宜しくお願い致します。 【環境】 fedora6 apache2.0.63 mod_perl2.0.4

  • apache2にmod_rubyの追加の仕方

    linuxのサーバー環境です。 apache2.0.48を./configure--enable-soでコンパイルして、インストールしました。後、別の目的で、ruby-1.8.1を./configureでコンパイルして、インストールしました。  そこで、rubyをapacheのモジュールとして,ロードして使いたいですが、調べたらmod_ruby1.0.7をインストールする必要はあります。  そこで、mod_rubyをどのようなやり方で入れるのでしょうか。  

    • ベストアンサー
    • CGI
  • apache でバイナリのCGIを動かすには

    apache でバイナリのCGIを動かすにはどうすればよいのでしょうか? (なお、プログラム自体に問題は決してありません。『HTTPD』を使うと問題なく動作します) OS:WIN98 C++バイナリのCGIを呼び出すと下記エラーとなります。 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please .... the error. More ... log. - Apache/1.3.12 Server at http://127.0.0.2/ Port 80 最終アクセスログ 127.0.0.1 - - [12/Mar/2001:23:20:27 +0900] "GET /ab.cgi HTTP/1.1" 500 610 最終エラーログ [Mon Mar 12 23:20:25 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/www.homepage/kokucho81/ab.cgi apache の httpd.conf と httpd.conf.default との比較 ** httpd.conf ServerName http://127.0.0.2/ ** httpd.conf.default #ServerName new.host.name ** httpd.conf DocumentRoot "E:/WWW.HOMEPAGE/KOKUCHO81" ** httpd.conf.default DocumentRoot "C:/Apache/htdocs" ** httpd.conf <Directory /> Options FollowSymLinks ExecCGI AllowOverride None ** httpd.conf.default <Directory /> Options FollowSymLinks AllowOverride None ** httpd.conf <Directory "E:/WWW.HOMEPAGE/KOKUCHO81"> ** httpd.conf.default <Directory "C:/Apache/htdocs"> ** httpd.conf Options Indexes FollowSymLinks ExecCGI ** httpd.conf.default Options Indexes FollowSymLinks MultiViews ** httpd.conf AddHandler cgi-script .cgi ** httpd.conf.default #AddHandler cgi-script .cgi そもそも、設定が足りてないんでしょうか? apacheを良く使う方、よろしくお願いします。m(_ _)m

  • apacheのScriptAliasの記述について

    どなたか,ご教授いただければ幸いです。 WindowsXp Proでapacheを動かしています。次の設定で,cgiはうまく動作していました。 --- <IfModule alias_module> ScriptAlias /cgi-bin/ \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/\" </IfModule> <Directory \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin\"> AllowOverride None Options ExecCGI Order allow,deny Allow from all AddHandler image/gif .gif AddHandler image/jpeg .jpg </Directory> --- これに, http://www.miloweb.net/win/server/apache.html を参考にして,各ユーザーフォルダでcgiが実行できるようにしようと,次のようにしました。 --- <IfModule alias_module> ScriptAlias /cgi-bin/ \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/\" ScriptAlias /cgi/ \"C:/www/users/*/cgi/\" </IfModule> <Directory \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin\"> AllowOverride None Options ExecCGI Order allow,deny Allow from all AddHandler image/gif .gif AddHandler image/jpeg .jpg </Directory> <IfModule mod_userdir.c> UserDir \"C:/www/users/*/\" </IfModule> <Directory \"C:/www/users/*/cgi/\"> AllowOverride None Options ExecCGI Order allow,deny Allow from all AddHandler image/gif .gif AddHandler image/jpeg .jp </Directory> --- その結果, http://localhost/~user/ としてuserのホームページにアクセスできるようになったのですが, cgiについては, http://localhost/~user/cgi/・・・ としてもアクセスできません。どなたか原因をご教授いただけないでしょうか。 ScriptAlias /cgi-bin/ \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/\" ScriptAlias /cgi/ \"C:/www/users/*/cgi/\" の行を入れ替えると,\"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/\"においてあるcgiが実行できなくなります。ScriptAliasは1行目しか有効でないようにも見えるのですが,上に書いた参考URLではできているようなので,戸惑っています。

  • apacheでcgiがうまく動かない。cgiが認識されていない?

    すいません、多分基本的な所なのですが、 どうしても分からないので質問させてください。 ■環境------------------------------ ・windowsXP sp2 ・apache1.3.33 C:\Program Files\Apache Group\Apache  現在の状態:html表示可能。httpd.confを変更 ・perl5.6.1 c:\perl  現在の状態:PPMにてimagemagick,DBI,DBD-MySql(だっけ)をインストールしている ・php5.0.4 c:\php ・mysql4.02 C:\mysql ■httpd.confの変更箇所-------------------------------- 337 Options Indexes FollowSymLinks MultiViews ↓ Options Indexes FollowSymLinks ExecCGI MultiViews 538 #!c:/program files/perl/perl ↓ #!C:/Perl/bin/perl 720以降に追加 AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl 825以降に追加 AddHandler cgi-script .cgi AddHandler cgi-script .pl ■printenv.plの内容-------------------------------- #!C:/Perl/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; } -------------------------------------------------- 上記のような環境で、いまPERLの動作確認を行っています。 http://localhost/cgi-bin/printenv.pl http://localhost/cgi-bin/printenv.pl PLファイルを指定しても実行されず、ダウンロードされてしまいます。 cgiに拡張子を変えても同じでした。 エラーというわけでもない為、エラーログにも何もかかれません。 何が問題なのでしょうか?

    • ベストアンサー
    • CGI
  • apacheでCGIを動かす

    apacheでCGIを動かそうと思っていますが、どうしても出来ません。 環境は以下の通りです。 apache:1.3.35 OS:Windows2000 httpd.confの設定は 1.ScriptAlias /cgi-bin/ の行をコメントアウト 2.Alias /cgi-bin/ "E:/hoge/cgi-bin/"に変更してDirectoryタグを追加 3.AddHandler cgi-script .exeを追加 以上の3点をしましたが、新しく設定したディレクトリのcgiは動作しませんでした。 apacheのmodulesディレクトリの中にmod_alias.soというファイルが有りませんがそれは関係有るのでしょうか? また、apacheとtomcatの連携ということを以前行ったのですが、動かない事と関係あるのでしょうか? 文字数の関係で見づらい説明になっているかと思いますがよろしくお願い致します。

  • cgi-binにアクセスできない

    apache初心者です。 Turbolinux6.0+apache1.3.12でHTTPサーバを試しているのですが、 cgi-binにあるファイルを見ようとするとHTTP 403エラーが出て表示できません。 属性とグループを色々変えてみたんですが、だめでした。 access.confで関係ありそうな所は <Directory /> Options None AllowOverride None order allow,deny allow from all </Directory> <Directory /home/httpd/html> Options Indexes Includes FollowSymLinks AllowOverride None order allow,deny allow from all </Directory> <Directory /home/httpd/cgi-bin> AllowOverride None Options FollowSymlinks ExecCGI order allow,deny allow from all </Directory> としていますが、なぜcgi-binの中身が見えないのかわかりません。 よろしくおねがいします。