luceneJava服务器端编程Java学习笔记

记录Solr6.4.2环境搭建

2017-03-23  本文已影响133人  JustCode

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

1.准备工作

quick start.png system requirements.png

2.环境搭建

tomcat下的solr目录.png

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

3.测试

我用的是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也已经发布成功,处于 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

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

上一篇 下一篇

猜你喜欢

热点阅读