solr环境搭建

系统环境:CentOS7.2 + JDK1.8.0_231

开始之前,一直有个疑问--为什么很多帖子都是将solr部署到tomcat中?使用内置的jetty不香?

方案1:使用内置容器jetty启动【强烈推荐】

官网下载 【https://lucene.apache.org/solr/downloads.html】

wget https://www.apache.org/dyn/closer.lua/lucene/solr/8.6.2/solr-8.6.2.tgz

解压

tar -zxvf solr-8.6.2.tgz

启动solr

cd /software/solr-8.6.2
./bin/solr start -force   #这里因为使用了root用户进行启动,存在安全风险,需要使用-force 跳过安全检查
Waiting up to 180 seconds to see Solr running on port 8983 [/]  
Started Solr server on port 8983 (pid=30842). Happy searching!

##当出现上述内容,则代表solr启动成功

访问solr主页

http://localhost:8983/solr

至此,solr环境搭建完成。

方案2:solr+tomcat启动

前提条件:

1、tomcat8

官网自行下载:https://tomcat.apache.org/download-80.cgi

2、jdk 1.8

拷贝web项目

将solr 源文件中的solr-webapp/webapp下的所有内容拷贝到tomcat webapps目录下,并且重命名为solr

cp -r /software/solr-8.6.2/server/solr-webapp/webapp  /software/tomcat/webapps/solr

拷贝依赖的jar

cp -r /software/solr-8.6.2/server/lib/etc/*   /software/tomcat/webapps/solr/WEB-INF/lib/    	     # 拷贝ext扩展开发包
cp -r /software/solr-8.6.2/server/lib/http2-*   /software/tomcat/webapps/solr/WEB-INF/lib/   	     # 拷贝Http2依赖库
cp -r /software/solr-8.6.2/server/lib/metrics-*.*   /software/tomcat/webapps/solr/WEB-INF/lib/       #拷贝检索依赖库
cp -r /software/solr-8.6.2/server/lib/etc/*   /software/tomcat/webapps/solr/WEB-INF/lib/     	     #/etc/目录下的所有jar
 

拷贝日志配置文件

mkdir -p /software/tomcat/webapps/solr/WEB-INF/classes # 创建classes目录
cp -r /software/solr-8.6.2/server/resources/*   /software/tomcat/webapps/solr/WEB-INF/classes  #拷贝日志配置文件

创建solrhome,复制solr相关源文件

mkdir -p /software/tomcat/webapps/solr/solrhome
cp -r /software/solr-8.6.2/server/solr/* /software/tomcat/webapps/solr/solrhome/

指定solrhome

编辑tomcat conf 目录下的web.xml,找到开头的位置,追加如下内容

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1">
  <!--这里指定solrhome -->
 <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/software/tomcat/webapps/solr/solrhome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
 </env-entry>

注释安全认证标签

注意:这里是修改复制到/software/tomcat/webapps/solr/WEB-INF/web.xml,不是tomcat 中conf 目录下的web.xml.刚开始时,弄了半天没有生效,访问地址,还是会出现403

  <!-- 将<security-constraint>注释,不然访问的时候,会出现403
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Disable TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint/>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Enable everything but TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method-omission>TRACE</http-method-omission>
    </web-resource-collection>
  </security-constraint>
-->

tomcat 启动solr

cd /software/tomcat/
./bin/startup.sh && tail -f logs/catalina.out

访问验证

http://localhost:8080/solr/index.html

至此,两种方案都已经搭建好,但是个人强烈建议使用方案1,开箱即用。方案2很多地方一不小心就会出错,步骤繁多,不知道网上很多朋友为啥很多都采用?有知道原因的小伙伴可以分享一下。

posted @ 2020-09-15 14:10  XuTingYin  阅读(510)  评论(0)    收藏  举报