记录Solr6.4.2环境搭建

在很多博客中说,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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • 安装tomcat 8.0 楼主实在 tomcat 8 下进行的安装配置,各位看官可以任意选择 tomcat 版本(...
    南山羊阅读 1,420评论 0 2
  • 1 准备工作及相关介绍 solr和lucene的版本是同步更新的,最新版本是6.5.0。本案例使用4.10.3 j...
    阿太哥阅读 2,330评论 1 5
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,801评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,649评论 18 139
  • 《如何在30秒内说出关键点》18分钟60页 理解率80%左右 如何在30秒内说出关键点?恰当使用钩子,要维持听众的...
    筱苏籽阅读 69评论 0 0