solr8 + tomcat9
一、solr8、tomcat9下载
solr8下载地址:https://lucene.apache.org/solr/downloads.html
tomcat9下载地址:
https://tomcat.apache.org/download-90.cgi
二、solr8和tomcat9的上传和解压
1、创建目录及上传压缩包
在/usr/local目录下创建solr和tomcat文件
通过软件将压缩包上传至solr和tomcat目录下(我使用的FileZilla)
2、解压压缩包
tar -zxf apache-tomcat-9.0.37.tar.gz
解压之后可以把文件名更改一下,如:
mv apache-tomcat-9.0.37 tomcat9
三、配置文件
原本解压后的solr就可以直接运行的,进入solr8/bin目录执行命令:
./solr start -p 8983 -force
但默认是solr自带的jetty,大家都说它不稳定,所以…
复制web程序
进入/usr/local/solr/solr8/server/solr-webapp目录下,将复制webapp文件复制到tomcat/webapps/下并改名为solr
cp -r webapp /usr/local/tomcat/tomcat9/webapps/solr
复制jar包
复制solr8/dist下面的solr-dataimporthandler-8.6.1.jar、solr-dataimporthandler-extras-8.6.1.jar到WEB-INF/lib下
cp solr-dataimporthandler-*.jar /usr/local/tomcat/tomcat9/webapps/solr/WEB-INF/lib/
复制solr8/server/lib/ext下的所有jar到WEB-INF/lib下
cp * /usr/local/tomcat/tomcat9/webapps/solr/WEB-INF/lib/
复制solr8/server/lib下的所有以metrics开头的jar到WEB-INF/lib下
cp metrics*.jar /usr/local/tomcat/tomcat9/webapps/solr/WEB-INF/lib/
复制配置文件
主要就是复制log4j2的配置文件,在/usr/local/solr/solr8/server/resources目录下,resources目录需要自己手动创建
//创建resources目录
mkdir /usr/local/tomcat/tomcat9/webapps/solr/WEB-INF/classes
//复制配置文件
cp log4j*.xml /usr/local/tomcat/tomcat9/webapps/solr/WEB-INF/classes
修改tomcat中的solr项目WEB-INF下的web.xml文件
目录:/usr/local/tomcat/tomcat9/webapps/solr8/WEB-INF/
//修改文件
vim web.xml
添加以下内容:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<!--solrhome的路径-->
<env-entry-value>/usr/local/solr/solr8/solrHome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
注释掉第一个security-constraint标签,不然会报403错误
该处使用的url网络请求的数据。
## 创建solrhome及修改solr.xml 先在solr8目录下创建solrHome目录,注意要于先前web.xml文件中的solrhome路径一致,且中间不要用‘-’或者‘_’会出现问题,具体问题我也不知道,反正我栽这个坑好几个小时才走出来
//创建solrhome
mkdir solrHome
//将/usr/local/solr/solr8/server/solr目录下的所有文件复制到solrhome中
cp * /usr/local/solr/solr8/solrHome
进入/usr/local/solr/solr8/solrHome中,修改solr.xml
//修改solr.xml
vim solr.xml
//将name="hostPort"的值修改了,结果如下
<int name="hostPort">${tomcat.port:8080}</int>
四、启动tomcat
进入tomcat/bin目录下执行如下命令
./startup.sh
访问ip+:8080/solr8/index.html就ok啦!
如果要同局域网的其他计算机能访问到Solr需要开放端口(如果你用的不是8080)
firewall-cmd --zone=public --add-port=8081/tcp --permanent
//开放8080端口后使用firewall-cmd --reload命令重新加载防火墙配置文件