Linux上solr搜索引擎的安装

本文详细介绍如何在Linux环境下部署Solr搜索平台,包括使用JDK8、Tomcat8及Solr-7.1.0版本的具体步骤。涵盖下载安装、配置Tomcat用户认证、设置日志路径等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是《win上安装solr》的续篇,win上solr安装#点我#

这次在linux上安装solr,是 jdk8+tomcat8+solr-7.1.0 的组合。这里必须首先声明一下各个主要组件的版本,因为版本不一致可能会导致很多莫名其妙的问题,比如一些类会找不到。

jdk和tomcat的安装不是我们这次的重点,这里不再赘述。

1、下载solr

linux上下载solr还是很方便的,到达目标目录,命令行下载、解压即可:

//下载
sudo wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/7.1.0/solr-7.1.0.tgz

//解压
sudo tar -xvf solr-7.1.0.tgz

2、安装solr到tomcat

为避免路径说明混乱,先声明solr解压后和tomcat所在的目录都是{HOME_PATH}。

solr解压后的目录结构 HOME_PATH/solr-7.1.0/:

drwxr-xr-x  3 root root   4096 Jan 18 22:43 bin
-rw-r--r--  1 root root 738474 Oct 13 23:07 CHANGES.txt
drwxr-xr-x 11 root root   4096 Oct 14 00:16 contrib
drwxr-xr-x  4 root root   4096 Jan 18 21:13 dist
drwxr-xr-x  3 root root   4096 Jan 18 21:13 docs
drwxr-xr-x  7 root root   4096 Jan 18 21:13 example
drwxr-xr-x  2 root root  32768 Jan 18 21:13 licenses
-rw-r--r--  1 root root  12646 Oct 13 22:59 LICENSE.txt
-rw-r--r--  1 root root 661809 Oct 13 23:07 LUCENE_CHANGES.txt
-rw-r--r--  1 root root  24914 Oct 13 22:59 NOTICE.txt
-rw-r--r--  1 root root   7277 Oct 13 22:59 README.txt
drwxr-xr-x 11 root root   4096 Jan 18 21:20 server

我的tomcat是实行单实例单应用、多实例并行运行结构。tomcat实例结构${HOME_PATH}/solr_test/如下:

drwxr-xr-x 2 tomcat tomcat 4096 Jan 18 22:08 cache
drwxr-xr-x 3 tomcat tomcat 4096 Jan 19 16:57 conf
drwxr-xr-x 2 tomcat tomcat 4096 Jan 19 15:55 logs
-rw-r--r-- 1 root   root    196 Jan 19 17:40 README.txt
drwxr-xr-x 4 tomcat tomcat 4096 Jan 19 16:18 solrhome
-rwxr-xr-x 1 tomcat tomcat  560 Jan 19 12:19 startenv.sh
drwxr-xr-x 2 tomcat tomcat 4096 Jan 18 22:08 temp
drwxr-xr-x 2 tomcat tomcat 4096 Jan 19 16:30 users
drwxr-xr-x 3 root   root   4096 Jan 18 22:08 webapps
drwxr-xr-x 3 tomcat tomcat 4096 Jan 18 22:43 work

如果你是tomcat默认的安装结构也无所谓,本次安装只涉及conf/webspps 这两个目录,和默认的tomcat目录结构是一样的。

具体怎么拷贝文件,这里有一遍blog写的挺好的,我就不重复写了#点我#

需要拷贝主要内容

1)拷贝 ${HOME_PATH}/solr-7.1.0/server/solr-webapp/ 下的webapp文件夹到 ${ HOME_PATH}/solr_test/webaps/ 下。并将webapp重命名,我这里重命名为ROOT。

2)将 ${HOME_PATH}/solr-7.1.0/server/lib/ext/下所有jar包;${HOME_PATH}/solr-7.1.0/server/lib/ 下的gmetric4j-1.0.7.jar、以metrics开头的jar包拷贝到 ${ HOME_PATH}/solr_test/webaps/ROOT/WEB-INF/lib下

3)将 ${HOME_PATH}/solr-7.1.0/server/solr/拷贝到${ HOME_PATH}/solr_test/下,并重命名为solrhome。

4)将 ${HOME_PATH}/solr-7.1.0/server/resources/log4j.properties 拷贝到 ${ HOME_PATH}/solr_test/webapps/ROOT/WEB-INF/classes下,如果没有classes目录则新建一个。

特别注意,tomcat实例的各目录的拥有者和所在的组,需要保证是tomcat,特别是solrhome目录。否则后面在admin页面新建core时需要新建的文件,会因为没有权限写不进去,而导致失败。
还有一些具体文件的权限,起码是755。如果访问时有权限限制时需要注意一下。

附上修改所有者和所在组、文件权限、拷贝文件的命令

//修改所有者
sudo chown -R tomcat:tomcat {xxx目录}

//修改权限
sudo chmod -R 755 {xxx文件或目录}

//拷贝文件夹(带文件夹名)
sudo cp -rf {源目录}  {目标目录}

//拷贝文件夹(仅文件夹下所有文件)
sudo cp -rf {源目录}/*  {目标目录}
各种xml配置
1)配置solrhome路径

编辑 ${HOME_PATH}/solr_test/webapps/ROOT/WEB-INF/web.xml。找到以下代码,默认是被注释掉的。将 /put/your/solr/home/here 改为刚才新建的solrhome绝对路径。

    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/home/q/www/solr_test/solrhome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
2)配置日志路径

编辑 ${ HOME_PATH}/solr_test/webapps/ROOT/WEB-INF/classes/log4j.properties 文件,修改solr.log=/home/q/www/solr_test/logs。可能你需要新建logs目录。

3、启动tomcat进入管理页面

启动tomcat。访问时注意后面加上index.html

4、配置tomcat用户

有的同学可能会问,上面访问管理员页面直接就进入了,既然是管理页面,都没有账号和密码,真心说不过去。下面我们给tomcat指定url配置上账号和密码。我就以我的目录结构为例:

1)新建角色和用户

在 ${ HOME_PATH}/solr_test/ 下新建users目录,在users目录下新建tomcat-users.xml,内容:

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>

<role rolename="solr-admin"/>
<user username="{insert your username}" password="{insert your password}" roles="solr-admin"/>

</tomcat-users>
2)引用角色账号配置文件

编辑 ${ HOME_PATH}/solr_test/conf/server.xml。新增GlobalNamingResources节点和Realm节点,具体如下:

<?xml version='1.0' encoding='utf-8'?>

<Server port="18005" shutdown="SHUTDOWN">

  //一堆Listener

  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="users/tomcat-users.xml" />
  </GlobalNamingResources>


  <Service name="Catalina">

    ....

    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      ....

    </Engine>
  </Service>
</Server>
3)配置账号适用路径

编辑 ${ HOME_PATH}/solr_test/webapps/ROOT/WEB-INF/web.xml 文件,具体如下:

<web-app>

......

<welcome-file-list>
    <welcome-file>admin.html</welcome-file>
  </welcome-file-list>

  <!-- Get rid of error message -->
  //将下面这一块注释掉
  <!--<security-constraint>
    <web-resource-collection>
      <web-resource-name>Disable TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint/>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Enable everything but TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method-omission>TRACE</http-method-omission>
    </web-resource-collection>
  </security-constraint> -->


//添加如下
  <security-constraint>
    <web-resource-collection>
       <web-resource-name>Solr Lockdown</web-resource-name>
       <url-pattern>/*</url-pattern>
       <http-method>GET</http-method>
       <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>solr-admin</role-name>
    </auth-constraint>
    <security-role>
      <role-name>solr-admin</role-name>
    </security-role>
  </security-constraint>

  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Solr</realm-name>
  </login-config>


</web-app>

然后重启tomcat,访问管理页面,这个时候就需要输入账号密码才能进入。

写在最后

新建core、修改schema、post document这些和win的差不多,可以参见文章开头给的链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值