Tomcat7 + Solr4.10の環境構築
Solrは5.0からスタンドアロンなサーバーアプリケーションになりましたが、Tomcatの上で動かしたい時のためにTomcat7 + Solr4.10の環境構築手順を残しておきます。今回はソースからビルドします。
Solr5.0の環境構築はこちら:
CentOS7にSolr5.0を入れる手順 - サナギわさわさ.json
今回はCentOS7を使用しています。
Tomcat7のインストールとサービス登録
CentOS7では公式リポジトリにTomcat7が入っているので、何も考えなくてもインストールできます。
yum install java-1.7.0-openjdk* yum install tomcat firewall-cmd --zone=public --add-port=8080/tcp --permanent systemctl restart firewalld.service systemctl enable tomcat.service systemctl start tomcat
http://localhost:8080/にアクセスできる事を確認
Solrのソースをダウンロード
Solrのコンパイルに使うantとivyも一緒にダウンロードします。
yum install wget wget -P /usr/local/ http://archive.apache.org/dist/lucene/solr/4.10.2/solr-4.10.2-src.tgz wget -P /usr/local/ http://ftp.kddilabs.jp/infosystems/apache//ant/binaries/apache-ant-1.9.4-bin.tar.gz wget -P /usr/local/ http://ftp.tsukuba.wide.ad.jp/software/apache//ant/ivy/2.4.0/apache-ivy-2.4.0-bin.tar.gz cd /usr/local/ tar zxvf solr-4.10.2-src.tgz tar zxvf apache-ant-1.9.4-bin.tar.gz tar zxvf apache-ivy-2.4.0-bin.tar.gz cp apache-ivy-2.4.0/ivy-2.4.0.jar to apache-ant-1.9.4/lib/
環境変数の設定
バージョンに合わせて適切に設定してください。
export ANT_HOME=/usr/local/apache-ant-1.9.4 export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64/ export PATH=${PATH}:/${ANT_HOME}/bin/
日本語対応
デフォルト設定では日本語が文字化けして検索にヒットしない場合があるのでSetCharacterEncodingFilterを入れます。
詳しくはこちらのサイトを参考にしてください。
tomcat7とsolr3.5.0のセットアップ(日本語の文字化け対策も) - Flicker's Style++
mkdir -p solr-4.10.2/solr/webapps/web/WEB-INF/classes/filters
classes/filters直下にSetCharacterEncodingFilter.classを配置
solr/webapps/web/WEB-INF/web.xmlに以下を追記
<filter> <filter-name>Set Character Encoding</filter-name> <filter-class>filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" />
Solrのコンパイル
cd /usr/local/solr-4.10.2 ant clean ant compile #solr-4.10.2直下にsolrディレクトリができた事を確認 cd solr ant dist #solr直下にdistディレクトリができた事を確認
logging設定
SolrはSLF4Jをログ出力に使っており、Tomcat7ではその設定をこちらでしてやらないとSolrが起動しません。今回はSLF4J+Apache log4jで設定します。
cp solr-4.10.2/solr/example/lib/ext/* /usr/share/tomcat/lib cp solr-4.10.2/solr/example/resources/log4j.properties /usr/share/tomcat7/lib
log4j.propertiesの中身は適当に編集してください。
Warファイルの配置と色々
Warファイルの配置
cp solr-4.10.2/solr/dist/solr-4.10.2-SNAPSHOT.war to /var/lib/tomcat/webapps/solr.war
solr.home用のディレクトリを作成し、直下にsolr.xmlを配置
mkdir /var/lib/solr/home chmod -R a+w /var/lib/solr/home vi /var/lib/solr/home/solr.xml <?xml version="1.0" encoding="UTF-8" ?> <solr persistent="false"> <cores adminPath="/admin/cores"> <core name="test" instanceDir="test" config="solrconfig.xml" schema="schema.xml"/> </cores> </solr>
/etc/tomcat/tomcat.confを修正
JAVA_OPTS="${JAVA_OPTS} -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -Dsolr.solr.home=/var/lib/solr/home"
core用のディレクトリ作成
mkdir /var/lib/solr/home/test mkdir /var/lib/solr/home/test/conf mkdir /var/lib/solr/home/test/data chmod -R a+x /var/lib/solr/home/test/data cp solr-4.10.2/solr/example/solr/collection1/conf/* /var/lib/solr/home/test/conf/
conf/schema.xmlとconf/solrconfig.xmlは好きなように編集してください。
設定は以上です。あとはservice tomcat restart
で、http://localhost:8080/solrにアクセスして管理画面にコアが表示されていれば成功です。
サンプルデータの登録や検索機能の確認に関しては、
CentOS7にSolr5.0を入れる手順 - サナギわさわさ.jsonの終盤に書いてありますので、そちらを参照してください。お疲れさまでした。