• 締切済み

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を構築できず困っています。 どなたか、ご教授ください。 よろしくお願いします。

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

みんなの回答

  • notnot
  • ベストアンサー率47% (4844/10253)
回答No.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は触ったことないので、違ってるかも。

kinta03
質問者

補足

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の呼び出しに失敗します。 未熟者ゆえの間が抜けた事を遣っているかも知れませんが それが分らないのが初心者とお笑い下さい。 また、情報でも有りましたらご教授ください。

関連するQ&A

  • 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
  • apache2にmod_rubyの追加の仕方

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

    • ベストアンサー
    • CGI
  • Apache2.0.48とTomcat4.1.29の連携に必要なmod_jk2について

    Windows環境で、 Apache2.0.48とTomcat4.1.29の連携を行いたいのですが、 mod_jk2のバイナリー版がApacheサイトには、 jakarta-tomcat-connectors-jk2.0.2-win32-apache2.0.43.zipしか存在しないようで す。 これは、Windows環境用のApache2.0.43環境で、 コンパイルされたmod_jk2のバイナリ版だと思うのですが、 Apache2.0.48でも利用できるのでしょうか? 利用できない場合、どのように対応すればよろしいでしょうか?

  • Apache1.33 PHP4.3.9 でApacheが起動できない

    ■環境 Microsoft Virtual PC 上でFreeBSD動作(WindowsXP Serviec Pack 2) FreeBSD4.10 Apache1.3.3 PHP4.3.9 PostgreSQL8.2.4 ○Apache1.3.3のインストール ./configure --enable-shared=max --enable-module=most make make install ○PHP4.3.9のインストール ./configure --without-mysql --with-apxs=/usr/local/apache/sbin/apxs --enable-mbstring --with-pgsql make make install cp php.ini-dist /usr/local/lib/php.ini ○/usr/local/apache/etc/httpd.conf の内容 ----------------------------------------------------------- # Example: # LoadModule foo_module libexec/mod_foo.so LoadModule env_module libexec/mod_env.so LoadModule config_log_module libexec/mod_log_config.so LoadModule mime_magic_module libexec/mod_mime_magic.so LoadModule mime_module libexec/mod_mime.so LoadModule nagotiation_module libexec/mod_nagotiation.so LoadModule status_module libexec/mod_status.so LoadModule info_module libexec/mod_info.so LoadModule includes_module libexec/mod_include.so LoadModule autoindex_module libexec/mod_autoindex.so LoadModule dir_module libexec/mod_dir.so LoadModule cgi_module libexec/mod_cgi.so LoadModule asis_module libexec/mod_asis.so LoadModule imap_module libexec/mod_imap.so LoadModule action_module libexec/mod_actions.so LoadModule speling_module libexec/mod_speling.so LoadModule userdir_module libexec/mod_userdir.so LoadModule proxy_module libexec/mod_libproxy.so LoadModule alias_module libexec/mod_alias.so LoadModule rewrite_module libexec/mod_rewrite.so LoadModule access_module libexec/mod_access.so LoadModule auth_module libexec/mod_auth.so LoadModule anon_auth_module libexec/mod_auth_anon.so LoadModule dbm_auth_module libexec/mod_auth_dbm.so LoadModule digest_module libexec/mod_digest.so LoadModule cern_meta_module libexec/mod_cern_meta.so LoadModule expires_module libexec/mod_expires.so LoadModule headers_module libexec/mod_headers.so LoadModule usertrack_module libexec/mod_usertrack.so LoadModule unique_id_module libexec/mod_unique_id.so LoadModule setenvif_module libexec/mod_setenvif.so LoadModule php4_module libexec/libphp4.so # Reconstruction of the complete module list from all available modules # (static and shared ones) to achieve correct module execution order. # [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO] ClearModuleList AddModule mod_env.c AddModule mod_log_config.c AddModule mod_mime_magic.c AddModule mod_mime.c AddModule mod_nagotiation.c AddModule mod_status.c AddModule mod_info.c AddModule mod_include.c AddModule mod_autoindex.c AddModule mod_dir.c AddModule mod_cgi.c AddModule mod_asis.c AddModule mod_imap.c AddModule mod_actions.c AddModule mod_speling.c AddModule mod_userdir.c AddModule mod_proxy.c AddModule mod_alias.c AddModule mod_rewrite.c AddModule mod_access.c AddModule mod_auth.c AddModule mod_auth_anon.c AddModule mod_auth_dbm.c AddModule mod_digest.c AddModule mod_cern_meta.c AddModule mod_expires.c AddModule mod_headers.c AddModule mod_usertrack.c AddModule mod_unique_id.c AddModule mod_so.c AddModule mod_setenvif.c AddModule mod_php4.c AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps ------------------------------------------------ 以下のコマンドでapacheを起動しようとすると /usr/local/apache/sbin/apachectl start 下記のエラーが発生してしまいます。どうか解決策を教えてください。 /usr/local/apache/sbin/apachectl start Syntax error on line 26 of /usr/local/apache/etc/httpd.conf Cannot load /usr/local/apache/libexec/mode_env.so into server : /usr/local/apache/ libexec/mod_env.so: Undefined symbol "ap_palloc" /usr/local/apache/sbin/apachectl start: httpd could not be started

  • Apache2でmod_sslを使用し、セキュアなページを作ろうと思い

    Apache2でmod_sslを使用し、セキュアなページを作ろうと思います。 いつもお世話になっております。表題のとおり、Apache2mod_sslを使用し、セキュアなページを作ろうと思います。当方使用しているサーバーはServerManVPSでCentOSを使用。 仮に、インストールしているApacheがmod_sslを組み込んでいない場合、再コンパイルの必要があるとサイトで見たのですが、再コンパイルをすることによって何か影響が及んだりしますでしょうか? 例えばPHPとの依存関係が無くなったり(正しい表現か分かりませんが・・・) また、mod_sslを組み込んでApacheを再コンパイルするにはどのようにすれば良いですか? configureを使うのでしょうか? 初心者過ぎてすいません;; ご教授お願いします。

  • WinXP+Apache1.3.29 + php4で、メール受信する方法

    こんにちは。 WinXP+Apache1.3.29という環境で、php4でメールを受信したいと思っています。 IMAP,POP3,NNTP関数関連のphp本家のドキュメントに目を通したのですが、linux用の設定方法しか掲載されていませんでした。 WinXPではどのように設定をしたら良いのか、ご教授ください。

    • 締切済み
    • PHP
  • ApacheとTomcatの連携とは?

    http://www.gs.sjts.co.jp/support/guide/install/win_apache_tom4.html というサイトのGroupSessionというのをインストールして、環境設定しています。そこで困っています。 ApacheとTomcatの連携はmod_jk.dllを使用して行われます。とあるのですがmod_jk.dllとはどこからダウンロードすればよいのでしょうか? ナニブン初心者なもんで教えてください。

  • 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

  • Apache 2.4でphp-5.3を使いたいです

    Apache 2.4.0でphp-5.3.9を使いたいです。 Apacheのインストールは、 http://www.apachelounge.com/download/から Apache 2.4.0 httpd-2.4.0-win32.zip をダウンロードし、c:/pg/にApache24という名前のフォルダで配置しました。 ドキュメントルートのhtmlファイルをブラウザで表示できるところまでできています。 そして、c:/pg/Apache24に空のフォルダc:/pg/Apache24/phpを作成します。 PHP 5.3 (5.3.9)用のモジュールは上記のページから php5apache2_4.dll-php-5.3.9-win32.zip をダウンロードしてc:/pg/Apache24/phpに php5apache2_4.dllを配置しました。 PHPのインストールは http://windows.php.net/download/から PHP 5.3 (5.3.9) Zip [14.94MB] sha1: 4149d79a877ae7ccb0e5419b13152b5bd3074825 php-5.3.9-nts-Win32-VC9-x86.zipをダウンロードし c:/pg/Apache24/phpに全て展開しました。 c:/pg/Apache24/phpには 「php5apache2_4.dll」と「展開したphp-5.3.9-nts-Win32-VC9-x86.zip」が入っています。 そして、 C:/pg/Apache24/conf/http.confの167行目に LoadModule php5_module c:/pg/Apache24/php/php5apache2_4.dllを追加しました。 ----------------------------------------------------------- #LoadModule version_module modules/mod_version.so #LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule xml2enc_module modules/mod_xml2enc.so LoadModule php5_module c:/pg/Apache24/php/php5apache2_4.dll ----------------------------------------------------------- ダウンロードと一緒についてくるPHPのマニュアルを見ると、 # Runs with PHP 5.3.9, Apache 2.4 and Win 32 # Install: - Copy php5apache2_4.dll to your php folder (eg. c:/php) (和訳:php5apache2_4.dllをあなたのphpフォルダーへコピーして下さい) ⇒完了済み # Add to your httpd.conf (和訳:あなたのhttpd.confに追加して下さい) LoadModule php5_module "c:/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php ⇒1つ目は完了済み、2つ目はまだ # configure the path to php.ini (和訳:php.iniへのパスを形成して下さい。) PHPIniDir "C:/php" ⇒まだ この状態でコマンドプロンプトから C:\pg\Apache24\bin\httpd を入力すると下記のエラーが出てしまいます。 C:\pg\Apache24\bin\httpd (←Apacheの起動) httpd: Syntax error on line 167 of C:/pg/Apache24/conf/http.conf : Cannot load C:/pg/Apache24/php/php5apache2_2.dll into server: \x8ew\x92\x82\xb3\x82~~~~ C: (←Apacheが終了) なぜエラーになってしまうのでしょうか。

  • apache2.3 のダウンロード

    このたび、Redhat Enterprise Linux 5 にて apache 2.3.3 PHP 5.1.6 PostgresSQL 8.1.11 の環境を作らなければならなくなり、お聞きしたいと思います。 RHEL5 に、httpd-2.3.3 みたいな、rpmは存在するのでしょうか? ネットで調べたかぎりでは、まだ見つけることができません。 また、ないとしたら、apache2.3.3.tar.gz のようなソースはどこからか入手できるのでしょうか。 ご存じの方おられましたら、ご教示ください。 お願いします。