Ubuntu10.04 に Solr 4.0 + Tomcat 7 の環境をセットアップする方法
Ubuntu10.04 に Solr 4.0 + Tomcat 7 の環境をセットアップする方法です。
Tomcat のセットアップ
Tomcat 7 のインストール
# mkdir /usr/local/jakarta; cd /usr/local/jakarta/ # wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-7/v7.0.29/bin/apache-tomcat-7.0.29.tar.gz # tar zxvf apache-tomcat-7.0.29.tar.gz # ln -s /usr/local/jakarta/apache-tomcat-7.0.23 /usr/local/tomcat7
Tomcat の起動
# cd apache-tomcat-7.0.29/bin/ # ./startup.sh
起動したら http://hostname:8080/ をブラウザで確認。
Tomcat の停止
./shutdown.sh
Tomcat 起動スクリプトの作成
# vi /etc/init.d/tomcat7
#! /bin/sh DESC="tomcat7 servlet server" NAME=tomcat7 DAEMON1=/usr/local/tomcat7/bin/startup.sh DAEMON2=/usr/local/tomcat7/bin/shutdown.sh PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME export JAVA_HOME=/usr/lib/jvm/java-6-openjdk export TOMCAT_HOME=/usr/local/tomcat7 . /lib/lsb/init-functions case "$1" in start) echo -n "Starting servlet server: $NAME" $DAEMON1 ;; stop) echo -n "Stopping servlet server: $NAME" $DAEMON2 ;; *) echo "Usage: $SCRIPTNAME {start|stop}" >&2 exit 1 ;; esac exit 0
# chmod +x /etc/init.d/tomcat7
スクリプトからの起動/停止を確認
# /etc/init.d/tomcat7 start # /etc/init.d/tomcat7 stop
自動起動の設定(必要であれば)
apt-get install sysv-rc-conf sysv-rc-conf tomcat7 on sysv-rc-conf --list | grep tomcat7
Ubuntu では chkconfig, insserve は使えないため sysv-rc-conf をインストールする : [ubuntu] chkconfig problem - Ubuntu Forums
Solr のセットアップ
Solr のダウンロード
# cd /usr/local/src/ # wget http://ftp.riken.jp/net/apache/lucene/solr/4.0.0-ALPHA/apache-solr-4.0.0-ALPHA.tgz # tar zxvf apache-solr-4.0.0-ALPHA.tgz # mv apache-solr-4.0.0-ALPHA.tgz /usr/local/ # ln -s /usr/local/apache-solr-3.4.0 /usr/local/apache-solr
Solr 起動スクリプトの作成(この場合、サーブレットコンテナは Jetty となる。今回はサーブレットコンテナに Tomcat を使うので本来は不要だが念のため作っておく)
vi /etc/init.d/solr
#!/bin/sh # description: Solr Boot JETTY_HOME_DIR=/usr/local/apache-solr/example/ cd $JETTY_HOME_DIR JAVA="/usr/bin/java" LOG_FILE="/var/log/solr.log" KEY=stopkey CORE=solr cd $JETTY_HOME_DIR start() { $JAVA -Dsolr.solr.home=$CORE -DSTOP.PORT=8079 -DSTOP.KEY=$KEY -jar start.jar >> $LOG_FILE 2>&1 & echo "Solr started!" } stop() { $JAVA -DSTOP.PORT=8079 -DSTOP.KEY=$KEY -jar start.jar --stop echo "Solr stopped!" } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac
# chmod +x /etc/init.d/solr
スクリプトからの起動/停止を確認(Jetty)
# /etc/init.d/solr start # /etc/init.d/solr stop
Tomcat の場合 /usr/local/tomcat7/webapps 以外の場所で solr/home を定義しなければならないとのことなので、/opt/solr で Solr を動かすように設定。
Solr の war ファイルを /opt/solr/ に解凍
# mkdir /opt/solr; cd /opt/solr/ # apt-get install unzip # unzip /usr/local/apache-solr/dist/apache-solr-4.0.0-ALPHA.war
/usr/local/tomcat7/conf/Catalina/localhost/ に solr.xml というファイルを作成
# cd /usr/local/tomcat7/conf/Catalina/localhost/ # vi solr.xml
<?xml version="1.0" encoding="utf-8"?> <Context docBase="/opt/solr/" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="/usr/local/apache-solr/example/solr" override="true"/> </Context>
Tomcat を起動
/etc/init.d/tomcat7 start
http://hostname:8080/solr/ をブラウザから確認すると、Solr の admin 画面が表示される。