1.solr 6.6.0 部署到Tomcat下:
①把solr-6.6.0.zip解压之后,找到solr-6.6.0/server/server-webapp/目录下的webapp文件夹,复制粘贴到tomcat下的webapps下并修改文件夹名为solr;
②把solr-6.6.0/server/lib/ext目录下的所有jar包、和solr-6.6.0/dist下的solr-dataimporthandler-6.6.0.jar、solr-dataimporthandler-extras-6.6.0.jar粘贴复制到tomcat下的solr项目的WEB-INF/lib目录下;
③把server目录下的solr文件夹粘贴复制到其他目录,然后重命名为:solrhome,这是solr核心文件夹。
④修改tomcat下的solr项目的WEB-INF/web.xml,这一步用来指定默认的solrhome。在web.xml开头附近找到:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
然后取消注释,把<env-entry-value>填第三步solrhome文件夹的地址。
⑤在tomcat下的solr项目的WEB-INF下新建classes目录,然后把solr-6.6.0/server/resources下的log4j.properties粘贴过去;
最后访问http://localhost:8080/solr/index.html即可。
搭建过程中可能出现的错误及解决:
(1) 启动tomcat时报错:严重: Exception starting filter SolrRequestFilter--à解决方法:把solr-6.6.0/server/lib下的metrics-core-3.2.2.jar,metrics-ganglia-3.2.2.jar,metrics-graphite-3.2.2.jar,metrics-jetty9-3.2.2.jar,metrics-jvm-3.2.2.jar这5个jar包放到tomcat下的solr项目的WEB-INF/lib目录下;
(2) 访问http://localhost:8080/solr/index.html时报错:HTTP Status 403 - Access to the requested resource has been denied--à解决方法:按下图所示,将tomcat下的solr项目的web.xml文件中这些语句注释掉,这段配置限制了对solr资源的访问。
2.为Solr的主界面增加登录权限:
①在tomcat/conf下的tomcat-users.xml文件最后增加: (此处设置即为solr主页面登录时需要填写的账户和密码)
<role rolename="solr"/>
<user username="ttt" password="123456" roles="solr"/>
②在配置tomcat下的solr时我们曾在solr的WEB-INF/web.xml中注释一段代码,那段代码就是对权限的控制。只需将注释代码更改为以下即可:(其中, <role-name>ttt</role-name>即表示用户名,与上述设置要一致)
<security-constraint>
<web-resource-collection>
<web-resource-name>Restrict access to Solr admin</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>solr</role-name>
<role-name>ttt</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>default</realm-name>
</login-config>
③重启tomcat,在网页上打开solr,出现登录页面,输入相应的用户名和密码即可。
注:关于tomcat启动后tomcat-users.xml丢失问题解决办法:
(参考:http://blog.youkuaiyun.com/czh500/article/details/77925488):
eclispe中的tomcat-users.xml文件在捣乱,找到症结所在了,于是终于知道,原来在eclispe中开发项目,eclispe中会有一个自己的Servers目录,该目录下的配置文件估计是从tomcat安装目录下拷贝了一份,eclispe使用的就是eclispe自己的Servers目录下的这一份配置文件,于是修改eclispe中的Servers目录下的tomcat-users.xml配置文件,如下图:
然后在eclispe中重启tomcat,即可。
如果要改动tomcat的配置文件,去tomcat安装目录下改配置文件的话,eclispe还是使用的eclispe自己原来的tomcat配置文件,所以,想要让eclispe使用新改的tomcat的配置文件的话,还是要在eclispe中的Servers目录下去改才能有效!去tomcat的安装目录下改配置文件是对eclispe不起效果的!