« solaris 撤退 | トップページ | ruby on rails (Active Record)複数列をgroup by して countする方法 »

jruby + tomcat でサイトを作ってみました

こんにちは。マイレージテクノの大縄です。

このたび、最近注目されている jruby と、フリーのjava アプリケーションサーバであるtomcatを連携させて、ruby on rails で作ったサイトを動かしてみました。

結果は、一応動かすことは出来たのですが、全く実用に足らないものでした。

やり方がまずかったのかなぁ。。

とりあえず、備忘録(とはいってももう二度とやら無いと思いますけど。。)的に手順などをメモしておきます。

どうしてもやってみたいというかただけやってみてください。

サーバのOSは、CentOS 5.1。Windowsマシンからsshでリモート接続して作業を行います。

【jruby のインストール】

以下のサイトにjrubyの実行モジュールへのリンクがありますので、最新版を確認してください。

http://dist.codehaus.org/jruby/

私のインストール時点では1.1.2が最新版だったので、wgetでダウンロードします。

wget http://dist.codehaus.org/jruby/jruby-bin-1.1.2.tar.gz

アーカイブを解凍します。

tar xzf jruby-bin-1.1.2.tar.gz

それっぽい場所に移動(汗)

mv jruby-1.1.2 /usr/local

【jdk最新版取得】

CentOS 5.1 のjdkでは古い?のか、環境変数が足りないかなので、JDKを最新バージョンにしました。

参考)http://urobonyu.u-andme.net/index.php/2007/06/26/199

以下のURLからJDKの最新バージョンを取得します。(以下、IEで操作)

http://java.sun.com/javase/downloads/index.jsp

「JDK 6 Update ?」と書いてある横の「Download」ボタンをクリックします。
次の画面の選択肢では、「linux」「Multi-language」を選択して、「Continue」をクリックします・

次の画面で「jdk-???-linux-i586-rpm.bin」というリンクが表示されると思いますので、右クリック -> プロパティ、と操作し、アドレス:(URL)から、wget に打ち込むURLを取得します。

ようやく、sshのターミナルからの操作です。

wget で、rpm のもとファイルを取得します。

wget http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u6-linux-i586-rpm.bin?BundledLineItemUUID=ja5IBe.lblwAAAEarZMxk8z4&OrderID=NOJIBe.lkjIAAAEalpMxk8z4&ProductID=VXZIBe.ootIAAAEZTrBAkQve&FileName=/jdk-6u6-linux-i586-rpm.bin -O jdk-6u6-linux-i586-rpm.bin

止まったら、enterを押します。(スマートな手順ではないかもしれません・・)

chmod 777 jdk-6u6-linux-i586-rpm.bin
./jdk-6u6-linux-i586-rpm.bin

使用条件などが表示されますので、spaceを押下して最下行まで。最後に、「yes」+enter で、インストールが始まります。

continue が表示されたら、enter を押下して、JDKのインストールは終了です。

/etc/profile の最下行に以下を追加

# latest jdk
export JAVA_HOME=/usr/java/latest
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

# jruby
export PATH=$PATH:/usr/local/jruby-1.1.2/bin

jruby -v
ruby 1.8.6 (2008-05-28 rev 6586) [i386-jruby1.1.2]

--> 出ればとりあえず成功!!

jruby -S gem install rails --include-dependencies

gem install --no-rdoc --no-ri ActiveRecord-JDBC

【DB設定】

mysql の JDBCアダプターを取得

gem install activerecord-jdbc-adapter

database.yml の設定

【tomcatとの連携】

jruby script/plugin install http://jruby-extras.rubyforge.org/svn/trunk/rails-integration/plugins/goldspike

jruby -S rake war:standalone:create

?????.war 完成!!

【tomcatインストール】

参照)http://www.atmarkit.co.jp/fjava/rensai4/safetomcat_01/safetomcat_01_1.html

http://tomcat.apache.org/

wget http://www.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.tar.gz

tar -xzf apache-tomcat-6.0.16.tar.gz

mv apache-tomcat-6.0.16 /opt/tomcat6

useradd -d /opt/tomcat6 -s /sbin/nologin tomcat

mv -f /opt/tomcat6/bin/jsvc.tar.gz /tmp/
cd /tmp
tar -xzf jsvc.tar.gz
cd jsvc-src 
autoconf
sh configure
make
chown tomcat. jsvc
mv -f jsvc /opt/tomcat6/bin
cd ../..
rm -rf /tmp/jsvc-src/ /tmp/jsvc.tar.gz
vi /etc/rc.d/init.d/jsvc

#!/bin/sh
#
# chkconfig: - 80 20
# description: jsvc

# Source function library.
. /etc/init.d/functions

JAVA_HOME=/usr/java/latest
CATALINA_HOME=/opt/tomcat6
TOMCAT_USER=tomcat
TMP_DIR=/tmp
CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
PIDFILE=/var/run/tomcat.pid
LOCKFILE=/var/lock/subsys/tomcat
DAEMON=$CATALINA_HOME/bin/jsvc

start(){
    #
    # Start Tomcat
    #

    echo -n "Starting jsvc: "
    $DAEMON \
    -pidfile $PIDFILE \
    -user $TOMCAT_USER \
    -home $JAVA_HOME \
    -Dcatalina.home=$CATALINA_HOME \
    -Djava.io.tmpdir=$TMP_DIR \
    -outfile $CATALINA_HOME/logs/catalina.out \
    -errfile '&1' \
    $CATALINA_OPTS \
    -cp $CLASSPATH \
    org.apache.catalina.startup.Bootstrap

    #
    # To get a verbose JVM
    #-verbose \
    # To get a debug of jsvc.
    #-debug \
    RETVAL=$?
    if [ $RETVAL = 0 ]; then
        echo_success
        touch $LOCKFILE
    else
        echo_failure
    fi
    echo
}

stop(){
    #
    # Stop Tomcat
    #
    echo -n "Shutting down jsvc: "
    $DAEMON \
    -stop \
    -pidfile $PIDFILE \
    org.apache.catalina.startup.Bootstrap
    RETVAL=$?
    if [ $RETVAL = 0 ]; then
        echo_success
        rm -f $PIDFILE $LOCKFILE
    else
        echo_failure
    fi
    echo
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
        status $DAEMON
        RETVAL=$?
        ;;
    *)
        echo $"Usage: jsvc {start|stop|restart|status}"
        exit 1
        ;;
esac 

=====

chmod +x /etc/init.d/jsvc

 Apacheの設定ファイル(httpd.confなど)において以下の2つのモジュールを読み込ませることでこの機能を利用できるようになります。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 

 CentOS 5.0では、初期状態でこれらの設定ファイルは読み込まれるようになっているので、特に変更の必要はありません。

vi /etc/httpd/conf.d/proxy_ajp.conf

ProxyPass /tomcat/ ajp://localhost:8009/ <- コメントアウトを外します

« solaris 撤退 | トップページ | ruby on rails (Active Record)複数列をgroup by して countする方法 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/437240/23039810

この記事へのトラックバック一覧です: jruby + tomcat でサイトを作ってみました:

« solaris 撤退 | トップページ | ruby on rails (Active Record)複数列をgroup by して countする方法 »