记录Solr6.4.2环境搭建

作者: JustCode | 来源:发表于2017-03-23 13:50 被阅读133次

在很多博客中说,solr5.0之后已经内置了jetty服务器,不过我并没有去考证,我所用的6.4.2中是已经内置了jetty服务器。但是项目中用的是Tomcat,所以本文是针对发布到Tomcat上的。

1.准备工作

  • JDK1.8
    官网教程中明确指出了solr运行在Java8以上。
quick start.png system requirements.png
  • solr6.4.2
  • Tomcat8.5.12
    这边需要注意,如果使用7或者更低的版本,在访问solr的时候会出现错误,在某些博客上了解到solr5.5以上必须在Tomcat8以上才能运行。我最初发布在7.6上出现以下错误:java.lang.NoSuchMethodError:javax.servlet.ServletInputStream.isFinished()Z

2.环境搭建

  • /solr-6.4.2/server/solr-webapp/下的webapp文件夹copy到apache-tomcat-8.5.12/webapps/目录下,为了方便识别,最好将webapp重命名,我这边命名为solr。copy完成后的目录如下:
tomcat下的solr目录.png
  • solr-6.4.2/server/lib/ext下所有的jar包copy到apache-tomcat-8.5.12/webapps/solr/WEB-INF/lib/目录下。
  • solr-6.4.2/server/resources/下的log4j.properties文件copy到apache-tomcat-8.5.12/webapps/solr/WEB-INF/classes/目录下,如果不存在classes文件夹,那么就新建一个。
  • apache-tomcat-8.5.12/webapps/solr/目录下创建一个solrhome目录,并且将solr-6.4.2/server/solr/目录下的所有文件copy到solrhome中。
  • 修改apache-tomcat-8.5.12/webapps/solr/WEB-INF/web.xml,找到如下代码(在40行左右):
    <env-entry>
    <env-entry-name>solr/home</env-entry-name>
    <env-entry-value>/put/your/solr/home/here</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
    放开注解,将<env-entry-value>中的值修改为solrhome的路径。

此时基本的配置工作大致完成,接下来就跑起来,看看效果了。

3.测试

  • 启动Tomcat

我用的是mac pro,所以需要通过命令来启动🐱,在apache-tomcat-8.5.12/bin/目录下打开终端,输入命令./startup.sh,启动成功的话,显示如下:

Using CATALINA_BASE:   /XXX/apache-tomcat-8.5.12
Using CATALINA_HOME:   /XXX/apache-tomcat-8.5.12
Using CATALINA_TMPDIR: /XXX/apache-tomcat-8.5.12/temp
Using JRE_HOME:        /jdk1.8.0_51.jdk/Contents/Home
Using CLASSPATH:       /XXX/Downloads/apache-tomcat-8.5.12/bin/bootstrap.jar:/XXX/Downloads/apache-tomcat-8.5.12/bin/tomcat-juli.jar
Tomcat started.

如果在启动的时候出现以下错误或者类似以下的错误:

-bash: ./startup.sh: Permission denied

Permission denied 表示对此文件的权限不够,这边执行的是startup.sh文件,说明当前用户对此文件不具备执行权限(x)。既然找到了原因,解决起来就很方便了,给予此文件足够的权限就行了,mac或者linux下可以通过chmod命令去设置权限,例如:chmod a+x *.sh。可以通过ls -l命令去查看文件的详细信息。

这边不仅仅只有这个启动文件会出现权限的问题,比如启动的时候tomcat/logs/下面的文件也有可能出现权限问题。其实不管什么问题,仔细阅读终端上的错误信息,对症下药就好

顺利启动🐱之后,在浏览器上输入http://loalhost:8080,就能访问到🐱的主页:

Tomcat首页.png

可以点击左边的的Manager App按钮去查看当前部署在🐱下面的web应用,需要输入登录的帐号密码,这个可以到apache-tomcat-8.5.12/conf/tomcat-users.xml去添加用户,并给用户添加相应角色

<tomcat-users xmlns="http://tomcat.apache.org/xml"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
          version="1.0">
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary. It is
  strongly recommended that you do NOT use one of the users in the commented out
  section below since they are intended for use with the examples web application.
-->
<!--
  NOTE:  The sample user and role entries below are intended for use with the
  examples web application. They are wrapped in a comment and thus are ignored
  when reading this file. If you wish to configure these users for use with the
  examples web application, do not forget to remove the <!.. ..> that surrounds
  them. You will also need to set the passwords to something appropriate.
-->
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <user username="root" password="root" roles="admin-gui,manager-gui"/>
</tomcat-users>

注释上写的很清楚,要进入Manager App就需要manage-gui具有角色权限的用户,具有admin-gui角色的用户可以进入Host Manager,暂时就简单这样理解了,具体的这边就不去深究了。进入到Tomcat Web Application Manager,效果如下:

manager.png
  • 访问solr首页

可以看到solr也已经发布成功,处于 running状态。

如果进入此页面你发现solr的running状态是false,然后点击Commands栏目下的start按钮,在顶部的Message栏中出现的信息是:FAIL - Application at context path /solr could not be started ,很明确的告诉我们,solr无法启动,在这边无法拿到具体的错误信息,此时只能去看Tomcat的日志文件了,找到apache-tomcat-8.5.12/logs/目录下的localhost.2017-03-23.log的日志文件,open一下,找到caused by,明确告诉我们找不到com.codahale.metrics.MetricSet这个类,既然是缺少类,只要找到对应的jar包就ok了。

localhost.2017-03-23.log.png

那么另一个问题来了,这个jar该去哪找呢?别急!在搭建的时候,solr所需要的jar是从solr-6.4.2/server/lib/ext这个目录下copy过来的,会不会漏了呢?再次进去看看:

solr-6.4.2/server/lib/ext/.png

好想并没有遗漏,但是仔细一看发现跟ext同级的目录下有metrics-xx-xxx.jar,和我们缺少的类名很相似哇,因此我将metrics-core-3.1.2.jar以及metrics-jvm-3.1.2.jar这两个jar包(经过多次试验才得知需要这两个jar)copy到了apache-tomcat-8.5.12/webapps/solr/WEB-INF/lib/下,重新启动🐱,再次进入 manager App,发现solr应用已经成功发布,处于running状态,遇到类似错误,还是那句话,查看log,对症下药

接着访问http://localhost:8080/solr/index.html,如果出现403 — Foridden,这个错误:

403.png
则需要修改apache-tomcat-8.5.12/webapps/solr/WEB-INF/web.xml文件,将文件最下面的一段xml代码注释掉(这段配置代码是安全约束配置,拒绝了所有对于这个资源的访问,大概是这个意思):
web.xml.png

刷新浏览器,重新访问solr主页,终于:

solr主页.png

到这步,算是搭建成功了,大功告成!(一开始创建solr文件夹的时候,写成了sorl,结果导致访问首页时,不显示versions这些基本信息)

4. 后序

整个搭建过程,真心觉得十分坎坷,渣渣如我,就是因为遇到这么多的问题,才准备记录下来,便于自己查看也希望可以给他人带来一定的帮助。我相信还会有更多的坑在等着我,没有办法,只能接着干了!

其实还遇到一个问题,早上在写这篇文章的时候,重新启动Tomcat,重新访问solr,出现500错误,日志如下:


500.png

暂时还未找到解决方法,找到方法后会补上解决方案。不过我重新搭建之后还未重现此问题,如果有大神不幸看到,麻烦您提供下解决方法,先谢谢您!

相关文章

  • 记录Solr6.4.2环境搭建

    在很多博客中说,solr5.0之后已经内置了jetty服务器,不过我并没有去考证,我所用的6.4.2中是已经内置了...

  • 环境搭建(记录)

    本文将记录部分前端开发环境搭建过程,做记录使用,以便有需要时能及时查看。 1. Node.js 的使用 安装从官网...

  • gitlab CI环境搭建

    gitlab CI环境搭建 摘要:主要记录基于docker 的gitlabci环境搭建步骤和示例,顺带介绍相关的基...

  • VM虚拟机、Centos7镜像、Docker、docker-co

    VM配置 VM环境搭建 记录ip及网关配置 Centos7配置 环境搭建 Docker Docker配置 dock...

  • Flutter环境搭建手记(一)

    环境搭建 一般的环境搭建不用多说,这里只是针对自己再环境搭建中,遇到的问题,记录一下。方便日后再搭建时,一脸懵逼的...

  • 搭建Flutter的环境变量

    简单记录下搭建Flutter的环境过程 参考搭建Flutter的环境变量 运行命令 git clone -b st...

  • 2019-06-15

    Node.js、Vue.js 运行环境搭建记录 参考链接:Vue.js 运行环境搭建详解(基于windows的手把...

  • Web端批量移动设备管理工具STF环境搭建for mac

    文章格式并不规范,其实只是为了做个记录,记录自己在搭建stf环境的时候所遇到各种坑,貌似一个简单的环境搭建,前前后...

  • android kernel | 环境搭建 + 第一次尝试

    搭建环境过于艰辛,做个记录.... 参考链接:安全客 链接github 内核测试项目地址 环境搭建 内核代码下载g...

  • PySlowFast平台环境搭建及使用

    1.环境搭建 SlowFast 平台是Facebook近期开源的视频识别平台。这里对该平台的环境搭建和使用进行记录...

网友评论

    本文标题:记录Solr6.4.2环境搭建

    本文链接:https://www.haomeiwen.com/subject/vivanttx.html