mod_ruby+erubyのRPMインストール
環境
# cat /etc/issue CentOS release 5.5 (Final) # uname -a Linux 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:20 EST 2010 x86_64 x86_64 x86_64 GNU/Linux # ruby -v ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] # httpd -v Server version: Apache/2.2.3 # rpm -qa |grep -i apr apr-util-1.2.7-11.el5_5.2 apr-devel-1.2.7-11.el5_5.3 apr-util-devel-1.2.7-11.el5_5.2 apr-1.2.7-11.el5_5.3
手順
eruby のインストール
# yum install eruby
mod_ruby のインストール
### SRPM の取得 $ wget ftp://nic.funet.fi/.m/mirrors2/archive.redhat.com/contrib/libc6/SRPMS/mod_ruby-1.1.2-1.src.rpm ### SRPM のインストール $ rpm -ivh mod_ruby-1.1.2-1.src.rpm ### mod_ruby のtar ボールの取得 $ cd /usr/src/redhat/SOURCES $ wget http://www.modruby.net/archive/mod_ruby-1.3.0.tar.gz
### SPECファイルの修正 -Version: 1.1.2 +Version: 1.3.0 … -./configure.rb --with-libapreq-includes=%{_includedir}/apr-0 +./configure.rb --with-libapreq-includes=%{_includedir}/apr-1 --with-apr-includes=%{_includedir}/apr-1
### RPM ビルド $ rpmbuild -ba mod_ruby.spec ### RPM インストール # rpm -ivh /usr/src/redhat/RPMS/x86_64/mod_ruby-1.3.0-1.x86_64.rpm
利用
Apache の設定
- conf.d/ruby.conf
LoadModule ruby_module modules/mod_ruby.so
- VirtualHost 設定
<Directory /var/www/html/public> Options ExecCGI FollowSymLinks <Files *.rb> RubyRequire apache/ruby-run SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Files> <Files *.rhtml> RubyRequire apache/eruby-run SetHandler ruby-object RubyHandler Apache::ERubyRun.instance </Files> </Directory>
- Apache reload
# /etc/init.d/httpd reload
おまけ
mod_ruby のRPM作成は途中であきらめかけたけど、tar を展開してみたら下記を見つけて、SPEC ファイルを書き換えてみたらうまくいったというかんじ。
configure.rb
548 AC_WITH("apr-includes") { |withval| 549 $APACHE_INCLUDES += " -I#{withval}" 550 }.if_not_given { 551 for dir in [ "/usr/include/apr-0" ] 552 if File.exist?(File.expand_path("apr.h", dir)) 553 $APACHE_INCLUDES += " -I#{dir}" 554 break 555 end 556 end 557 }
やったことは、実際には/usr/include/apr-1 だったので、それを指定しただけ。
あきらめなくてよかった!