インストール手順
- apxs(APache eXtenSion)が必要なのでhttpd-develをインストール
yum -y install httpd-devel
・けっこう時間がかかる
・apxsは /usr/sbin/apxs にできた - modruby.netから最新版のmod_rubyをダウンロード&解凍
wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz
tar zxvf mod_ruby-1.2.6.tar.gz
- makeの準備
cd mod_ruby-1.2.6
・--with-apr-includesを付けないとmakeできなかった
./configure.rb --with-apxs=/usr/sbin/apxs --with-apr-includes=/usr/include/apr-1
make
make install
・参考:mod_rubyのインストール :: colorchips blog - Apacheの設定ファイルを新規作成
cd /etc/httpd/conf.d
・ruby.conf
vi ruby.conf
(2007/11/20 追記:ExecCGIの前に"+"を追加。そうしないとmod_rewriteとかが使えなくなる)LoadModule ruby_module modules/mod_ruby.so
<IfModule mod_ruby.c>
RubyRequire apache/ruby-run
# /ruby以下のファイルをRubyスクリプトとして実行する
#<Location /ruby>
# SetHandler ruby-object
# RubyHandler Apache::RubyRun.instance
#</Location>
# *.rbをRubyスクリプトとして実行する
<Files *.rb>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>
#Rubyを実行するディレクトリでCGIを実行可能にする
<Location /r>
Options +ExecCGI
</Location>
</IfModule>
補足
- mod_rubyはページ内容出力前にHTTPヘッダ情報を出力する必要がある
- cgi.rbを使うとスマート
require "cgi"
cgi = CGI.new
print cgi.header("type" => "text/html") - 参考:mod_ruby Wiki (ja) - FAQ
- rbファイルのディレクトリの権限を777にすると、mod_rubyは loading from unsafe file で SecurityError になる
- requireするファイルを変更した場合、Apacheを再起動するまで反映されない
- 参考:mod_ruby Wiki (ja) - FAQ
mod_rubyでは複数のスクリプトで一つのRubyインタプリタを共有します。 require 'foo'を実行した場合、ライブラリがロードされるのは 最初の一回だけなので、その後require 'foo'を実行しても ライブラリが再びロードされることはありません。
(略)
Apacheを再起動するか、デバッグ中はrequireの代りに loadを使ってください。
参考:
mod_ruby インストールガイド
0 件のコメント:
コメントを投稿