如何在ubuntu中将SOLR从正常的8983端口移动到Apache Tomcat 7服务器?

时间:2015-04-30 05:54:57

标签: php apache ubuntu solr tomcat7

我在usr / shared / tomcat7文件夹中安装了Tomcat 7。之后在我的ubuntu中的/ var / www /文件夹中安装了Solr 4.7。我的solr现在正在http://localhost:8983/solr/ url上运行,但我现在想将它移动到tomcat服务器并希望通过http://localhost:8080/solr/ url访问它。

怎么办?请帮帮我。

2 个答案:

答案 0 :(得分:1)

您可以使用Solr附带的Solr和Jetty,只需更改jetty.xml文件中的端口号即可。如果你想将Solr与Tomcat一起使用,你需要做更多的事情。这是一个完整的说明:

  1. 使用apt-get
  2. 安装tomcat7

    sudo apt-get install tomcat7

    1. 将solr下载到/ tmp(例如:4.0.0)
    2. cd /tmp

      wget http://{mirror site}/apache/lucene/solr/4.0.0/apache-solr-4.0.0.tgz

      1. 将solr war文件复制到tomcat webapps。 (在将来的版本中,dist路径可能已更改)
      2. cp /tmp/apache-solr-4.0.0/dist/apache-solr-4.0.0.war /var/lib/tomcat7/webapps/solr.war

        1. 制作一个solr主目录
        2. mkdir /usr/share/solr

          1. 将示例solr中的所有内容复制到新的solr主目录。
          2. cp -R /tmp/apache-solr-4.0.0/example/solr/* /usr/share/solr/

            1. 在tomcat中为solr创建一个配置文件并插入以下行。
            2. sudo pico /etc/tomcat7/Catalina/localhost/solr.xml

                  <Context docBase="/var/lib/tomcat7/webapps/solr.war" debug="0" privileged="true" allowLinking="true" crossContext="true" >
                  <Environment name="solr/home" type="java.lang.String" value="/usr/share/solr" override="true" />
                  </Context>
              
              1. 创建核心 创建示例核心:

                1. 在/ var / lib / solr中创建示例目录,并从另一个核心复制另一个conf文件,如/ usr / share / solr / collection1
                2. mkdir /var/lib/solr/example

                  cp -R /usr/share/solr/collection1 /var/lib/solr/example/

                  1. 为示例核心创建数据目录并设置in /var/lib/solr/example/conf/solrconfig.xml
                  2. mkdir /var/lib/solr/data/example
                  3. 授予tomcat7权限
                  4. chown -R tomcat7:tomcat7 /var/lib/solr

                    1. 要启用核心,需要在/ usr / share / solr
                    2. 中使用符号链接

                      ln -s /var/lib/solr/example /usr/share/solr/example

                      1. 将以下核心配置添加到/usr/share/solr.xml(仅当存在其他核心的配置时)
                      2. <solr persistent="false">   <cores adminPath="/admin/cores" shareSchema="true">     <core name="example" instanceDir="example" />   </cores> </solr>

                         7. http://HOST_NAME:PORT/solr/admin/coreshttp://example.com:8080/)提供Solr核心  8.以相同的方式添加其他核心。

                        1. 在/etc/tomcat7/server.xml中更改tomcat端口8080

                        2. 安全性:设置solr密码

                          一个。打开/etc/tomcat7/tomcat-users.xml进行编辑。

                          湾在元素中添加solr角色和用户并保存更改:

                          <role rolename="solradmin" /> <user username="username" password="password" roles="solradmin" />

                        3. ℃。打开/var/lib/tomcat7/webapps/solr/WEB-INF/web.xml进行编辑。在元素中添加以下行:   

                            <security-constraint>
                              <web-resource-collection>
                                <web-resource-name>Solr Lockdown</web-resource-name>
                                <url-pattern>/</url-pattern>
                              </web-resource-collection>
                              <auth-constraint>
                                <role-name>solradmin</role-name>
                              </auth-constraint>
                            </security-constraint>
                            <login-config>
                              <auth-method>BASIC</auth-method>
                              <realm-name>Solr</realm-name>
                            </login-config>
                          

                          d。保存更改并重新启动Tomcat(/etc/init.d/tomcat7 restart)。

                          即使用http://username:password@example.com:8080/solr

                          访问solr

                          如果tomcat抱怨缺少像logger这样的库,那么将所需的jar复制到/ var / tomcat7 / lib

答案 1 :(得分:0)

请查看以下链接以获取解决方案。

http://www.dansolovay.com/2014/06/switching-solr-from-port-8983.html