Solr Install & Configuration

1. Environment

1. 安装Java8

  • 从Oracle官网下载Java8安装包

2. 安装solr

  • 将安装包通过SFTP上传至Centos7 服务器中指定目录,这里放在/opt目录下

    cd /opt
    ls -l
    
  • 创建安装目录

    mkdir -p /usr/local/solr/
    
  • 解压至安装目录

    tar -zxvf solr-7.7.3.tgz -C /usr/local/solr/
    unzip solr-7.5.0.zip -d /usr/local/solr/
    
  • 进入目录

  • cd /usr/local/solr/
    
  • 部署配置solr

    cp -r solr-7.7.3/server/solr-webapp/webapp/ /usr/local/tomcat/apache-tomcat-9.0.44/webapps/
    
    cp -r solr-7.5.0/server/solr-webapp/webapp/ /usr/local/tomcat/apache-tomcat-9.0.44/webapps/
    
    cd /usr/local/tomcat/apache-tomcat-9.0.44/webapps/
    ll
    
    mv webapp/ solr
    ll
    
  • 拷贝solr-7.7.3/server/lib/ext/下的所有jar包

    cd /usr/local/solr/solr-7.7.3/server/lib/ext/
    
    cd /usr/local/solr/solr-7.5.0/server/lib/ext/
    
    cp * /usr/local/tomcat/apache-tomcat-9.0.44/webapps/solr/WEB-INF/lib/
    
  • 以及lib目录下gmetric4j-1.0.7.jar 以metrics开头的jar包拷贝到 tomcat\webapps\solr 项目的WEB-INF\lib下

    cd /usr/local/solr/solr-7.7.3/server/lib/
    
    cd /usr/local/solr/solr-7.5.0/server/lib/
    
    cp gmetric4j-1.0.7.jar metrics-* /usr/local/tomcat/apache-tomcat-9.0.44/webapps/solr/WEB-INF/lib/
    
  • 拷贝solr-7.7.3\server 下的solr文件夹到其它非中文目录下,重命名为solrhome

    cd /usr/local/solr/solr-7.7.3/server/
    
    cd /usr/local/solr/solr-7.5.0/server/
    
    mkdir -p /data/soft/solrhome
    
    
    cp -r solr /data/soft/solrhome
    
  • 修改/usr/local/tomcat/apache-tomcat-9.0.44/webapps/solr/WEB-INF/web.xml, 找到如下代码, 蓝色部分的,/put/your/solr/home/here 改为你自己的solrhome的路径,我的是/data/soft/solrhome路径。

    vi /usr/local/tomcat/apache-tomcat-9.0.44/webapps/solr/WEB-INF/web.xml
    
  • 指定solrhome

    #将注释去掉,并将solrhome的目录位置写进去:
    
    <env-entry>
    <env-entry-name>solr/home</env-entry-name>
    <env-entry-value>/data/soft/solrhome/solr</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
    
  • 拷贝solr7.7.3\server\resources下的log4j.properties到/data/soft/tomcat/webapps/solr/WEB-INF\classes,如果WEB-INF下没有classes文件那么就创建一个classes文件夹

    mkdir -p /usr/local/tomcat/apache-tomcat-9.0.44/webapps/solr/WEB-INF/classes
    cp /usr/local/solr/solr-7.7.3/server/resources/log4j2.xml  /usr/local/tomcat/apache-tomcat-9.0.44/webapps/solr/WEB-INF/classes/
    
    cp /usr/local/solr/solr-7.7.3/server/resources/log4j.properties /usr/local/java/apache-tomcat-9.0.44/webapps/solr/WEB-INF/classes/
    
  • 启动tomcat,访问需要完整路径,我的是http://xxx.xxx.xxx.xxx:8080/solr/index.html#/

    cd /usr/local/tomcat/apache-tomcat-9.0.44/bin
    ./startup.sh
    

3. 验证solr

  • 验证是否403

    curl localhost:8080/solr/index.html
    
  • 如果curl访问403,编辑web.xml中位置

    vi /usr/local/tomcat/apache-tomcat-9.0.44/webapps/solr/WEB-INF/web.xml
    
  • 停止Tomcat

    cd /usr/local/tomcat/apache-tomcat-9.0.44/bin
    ./startup.sh
    
  • 查看日志

    cd /usr/local/tomcat/apache-tomcat-9.0.44/logs
    tail -f catalina.out
    
  • 1

4. 配置solr

  • 自启动配置

  • 首先,创建solr文件

    cd /etc/init.d
    vi solr
    
  • 编写脚本

    #!bin/bash
    #chkconfig:2345 55 25
    #processname:solr
    #description:solr server
    prog=/usr/local/solr/solr-7.5.0/bin/solr      
    start(){                                
            $prog start  -force
            echo "正在启动服务...."
    }
    stop(){                                
            $prog stop -all
            echo "正在停止服务...."
    }
    status(){ 
            echo "正在查看状态...."               
    }
    restart(){              
            stop
            start
    }
    case "$1" in        
    "start")
            start      
            ;;
    "stop")            
            stop
            ;;
    "status")            
            status
            ;;
    "restart")            
            restart
            ;;
    *)                //其他参数就输出脚本正确用法
            echo "用法:$0 start|stop|status|restart"
            ;;
    esac
    
  • 赋予权限

    chmod +x /etc/init.d/solr
    
  • 脚本

    service solr start 启动solr
    
    service solr stop 停止solr
    
  • 设置开机启动

    chkconfig --add solr
    chkconfig  solr on
    chkconfig --list solr
    
  • 查看端口8983占用

    netstat -lnpt