DBIx::Class::Indexer::WebService::Luceneを使ってみたいので、まずはLucene Web ServiceをCentOS 5にインストールしてみたメモ。
ちなみにLucene Web ServiceとはJavaで出来てる検索エンジンLuceneにREST APIでアクセスできるようにしたWebアプリケーションです。これにより他の言語からも使いやすくなるということ。
- Lucene
- Lucene Web Service
- perlのwrapper WebService::Luceine
- DBICから検索エンジンにアクセスするモジュール DBIx::Class::Indexed
- そのLucene Web Service Indexer DBIx::Class::Indexer::WebService::Lucene
JDK 6のインストール
*基本的にこのエントリでやってることと同じですここからJDK 6u1 Download->Accept License Agreementにチェックして->Linux RPM in self-extracting fileをゲット
インストール$ sudo ./jdk-6u1-linux-i586-rpm.bin一応alternativeの設定
$ sudo /usr/sbin/alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_01/bin/java 2 $ sudo /usr/sbin/alternatives --config java 1 プログラムがあり 'java' を提供します。 選択 コマンド ----------------------------------------------- *+ 1 /usr/java/jdk1.6.0_01/bin/java Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:1後々面倒なのでシンボリックリンクを張っておく
$ ln -s /usr/java/jdk1.6.0_01 /usr/java/jdk今回は関係ないけどクラスパスなどの設定 .bash_profile
export JAVA_HOME=/usr/java/jdk export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
apache-tomcatのインストール
ここからapche tomcat 6.0 binary tar ballをゲット 展開して配置$ tar -xzvf apache-tomcat-6.0.10.tar.gz $ sudo mv apache-tomcat-6.0.10 /usr/java/ $ sudo ln -s /usr/java/apache-tomcat-6.0.10 /usr/java/apache-tomcatjsvcのコンパイル
$ cd /usr/java/apache-tomcat/bin $ sudo tar -xzvf jsvc.tar.gz $ cd jsvc-src $ sudo chmod a+x configure $ sudo ./configure --with-java=/usr/java/jdk $ sudo make $ ls -la jsvc -rwxr-xr-x 1 root root 95479 4月 19 18:29 jsvc起動スクリプトの編集
$ sudo cp /usr/java/apache-tomcat/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/apache-tomcat $ sudo chmod a+x /etc/init.d/apache-tomcat/etc/init.d/apache-tomcat
--snip--
LANG=C
#JAVA_HOME=/home2/java/j2sdk1.4.2_03
JAVA_HOME=/usr/java/jdk
#CATALINA_HOME=/home/tomcat5/tomcat5/jakarta-tomcat-5/build
CATALINA_HOME=/usr/java/apache-tomcat
#DAEMON_HOME=/home/jfclere/daemon
DAEMON_HOME=$CATALINA_HOME
#TOMCAT_USER=tomcat5
TOMCAT_USER=root
# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
#CATALINA_BASE=/home/tomcat5/tomcat5/jakarta-tomcat-5/build
CATALINA_BASE=$CATALINA_HOME
#CATALINA_OPTS="-Djava.library.path=/home/jfclere/jakarta-tomcat-connectors/jni/native/.li
bs"
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
case "$1" in
start)
#
# Start Tomcat
#
#$DAEMON_HOME/src/native/unix/jsvc \
$DAEMON_HOME/bin/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-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 \
exit $?
;;
stop)
#
# Stop Tomcat
#
#$DAEMON_HOME/src/native/unix/jsvc \
$DAEMON_HOME/bin/jsvc-src/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;
*)
echo "Usage tomcat.sh start/stop"
exit 1;;
esac
* 最初のLANG=Cを指定しないと後でLucene Web Serviecが返す日付がおかしなことになる
Lucene Web Serviceのインストール
ここからwarファイルをゲット webappディレクトリにコピー$ sudo cp lucene-ws-1.0_01.war /usr/java/apache-tomcat/webapps/tomcatを起動すると自動的に展開されるのでシンボリックリンクを張っておく
$ sudo /etc/init.d/apache-tomcat start $ sudo ln -s /usr/java/apache-tomcat/webapps/lucene-ws-1.0_01 /usr/java/apache-tomcat/webapps/luceneWEB-INF/web.xmlをチェック WEB-INF/web.xml
<?xml version="1.0"?>
<web-app>
<display-name>The Lucene Web Service</display-name>
<servlet>
<servlet-name>LuceneWebService</servlet-name>
<servlet-class>net.lucenews.LuceneWebService</servlet-class>
<!-- ADJUST THESE SETTINGS BELOW AS NECESSARY -->
<!--
In the presence of 'properties.file' it detected, web service will attempt
to repopulate parameters with those found within the file pointed to by
the 'properties-file' name/value pair value.
-->
<init-param>
<param-name>properties-file</param-name>
<param-value>/var/local/lucene/service.properties</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<param-name>directory</param-name>
<param-value>/var/local/lucene/</param-value>
</init-param>
<init-param>
<param-name>operator.default</param-name>
<param-value>AND</param-value>
</init-param>
<init-param>
<param-name>field.default</param-name>
<param-value>all</param-value>
</init-param>
<init-param>
<param-name>title</param-name>
<param-value>Lucene Web Service</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>LuceneWebService</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
/var/local/lucene/が必要そうなので掘っておく
$ sudo mkdir /var/local/lucenetomcatの再起動
$ sudo /etc/init.d/apache-tomcat stop $ sudo /etc/init.d/apache-tomcat startブラウザからhttp://localhost:8080/luceneにアクセスすると
<?xml version="1.0" encoding="UTF-8" standalone="no"?><service xmlns="http://purl.org/atom/app#"> <workspace title="Lucene Web Service (v0.75)"> <collection href="http://localhost:8080/lucene/document/" title="document"> <member-type>entry</member-type> </collection> </workspace> </service>とか返ってくるので動いていそう。
Javaはずいぶん長いこと触ってないないので間違っていたらツッコミよろしくです。




