当前位置: 代码迷 >> 综合 >> Solr 7.7.0 部署到Tomcat
  详细解决方案

Solr 7.7.0 部署到Tomcat

热度:78   发布时间:2023-09-28 21:49:54.0

 

第一步

1、Solr 解压后server/solr-webapp下一个webapp目录,它就是Solr的Web项目,把它复制到tomcat的webapps目录下并改名为solr

Solr 7.7.0 部署到Tomcat

 1 # 进入Solr的server目录下2 /opt/modules/solr7/solr-7.7.0/server/solr-webapp/3 4 # 复制webapp目录到tomcat-solr的webapps目录下5  cp -r webapp/ /usr/local/tomcat/apache-tomcat-9.0.16/webapps6 7 # 将Solr的web应用改名
 8  cd /usr/local/tomcat/apache-tomcat-9.0.16/webapps
 9 # 将webapp重命名为solr
10  mv webapp/ solr

Solr 7.7.0 部署到Tomcat

2、复制所需依赖jar包

复制solr-7.7.0\server\lib\ext下的所有jar包到apache-tomcat-9.0.16\webapps\solr\WEB-INF\lib下(即刚刚复制并重命名为solr的文件夹下)

  cp ext/* /usr/local/tomcat/apache-tomcat-9.0.16/webapps/solr/WEB-INF/lib/

复制solr-7.7.0\server\lib下所有metrics-开头的jar包(一共有5个)到apache-tomcat-9.0.16\webapps\solr\WEB-INF\lib下

  cp metrics-* /usr/local/tomcat/apache-tomcat-9.0.16/webapps/solr/WEB-INF/lib/

第二步:配置solrhome

这个目录用于存储Solr Core的数据及配置文件
创建solrhome存储Solr索引文件

在/usr/local/solr下创建solrhome文件夹

(复制solr-7.7.0\server\solr文件夹,到任意路径下(这里我们放在刚刚创建的solrhome文件夹下),并重命名为solrhome(命名随意),先创建再复制也可以)

# 复制solr目录下所有内容到solrhome

  cp -r * /usr/local/solr/solrhome/

 

第三步:配置Tomcat

3.1 修改web.xml
修改复制到tomcat中的Solr项目中的WEB-INF目录下的web.xml配置文件
修改solr_home路径指向我们刚刚创建的solrhome

1 cd /usr/local/tomcat/apache-tomcat-9.0.16/webapps/solr/WEB-INF/
2 vim web.xml

如果文件中没有该代码,手动加入

Solr 7.7.0 部署到Tomcat

1   <!-- 修改solrhome路径 -->
2   <env-entry>
3     <env-entry-name>solr/home</env-entry-name>
4     <env-entry-value>/usr/local/solr/solrhome</env-entry-value>
5     <env-entry-type>java.lang.String</env-entry-type>
6   </env-entry>

Solr 7.7.0 部署到Tomcat

3.2 去掉安全验证
还是在web.xml文件中,把安全验证的去掉,不然每次登陆都需要用户名密码验证,麻烦,还有有一种说法:项目会报403错误。

Solr 7.7.0 部署到Tomcat

 1   <!-- Get rid of error message -->2   <!--3   <security-constraint>4     <web-resource-collection>5       <web-resource-name>Disable TRACE</web-resource-name>6       <url-pattern>/</url-pattern>7       <http-method>TRACE</http-method>8     </web-resource-collection>9     <auth-constraint/>
10   </security-constraint>
11   <security-constraint>
12     <web-resource-collection>
13       <web-resource-name>Enable everything but TRACE</web-resource-name>
14       <url-pattern>/</url-pattern>
15       <http-method-omission>TRACE</http-method-omission>
16     </web-resource-collection>
17   </security-constraint>
18   -->

Solr 7.7.0 部署到Tomcat

 启动tomcat测试

运行startup.sh文件

error:
Linux下启动和关闭tomcat报错,如下图所示:

 Solr 7.7.0 部署到Tomcat

原因:

因为启动tomcat会调用tomcat安装文件中的startup.bat,而它调用了catalina.bat则调用了setclasspath.bat。因此需要在setclasspath.bat的开头手动声明环境变量。

解决方案:
用vim打开tomcat的bin目录下的setclasspath.sh,添加JAVA_HOME和JRE_HOME两个环境变量(下图红色方框内),两个环境变量路径为您安装的java JDK的路径。

windows下将export改为set即可。

 Solr 7.7.0 部署到Tomcat

我的配置:

1 #java development
2 export JAVA_HOME=/usr/local/java/jdk1.8.0_201
3 export JRE_HOME=/usr/local/java/jdk1.8.0_201/jre

保存并且退出即可。

再次使用service tomcat start没报错,如下图所示:

 Solr 7.7.0 部署到Tomcat

成功用service tomcat start开启tomcat服务。

访问http://localhost:8080/solr/index.html,部署完成

外部访问:http://192.168.83.133:8080/solr/index.html

  相关解决方案