運行環境:html
注:1.建議打開兩個鏈接linux的窗口,一個負責 solr壓縮目錄,另一個負責tomcat下的目錄,這樣在使用過程當中就不須要來回切換路徑。java
2.如下的Solr全部配置在Window中同樣適用,除了操做文件的過程須要命令外,其餘沒有任何不一樣。linux
3.在操做前請先將用戶切換到root,不然有些操做可能不成功。或者在操做的每一個命令前 加上sudo。如建立文件夾命令:sudo mkdir solrweb
4.若是能夠請將solr運行在solr自帶的Jetty服務器內, 在solr 5.21以後已經刪除war包。有興趣能夠看看Solr的wiki說明: Why No Warapache
開始以前先說明後面目錄結構表明的意思:vim
1. <tomcat>: 指Tomcat的安裝目錄。 tomcat
2. <solrhome>: 存放 home、contrib、dist三個文件夾的目錄安全
3. <solr>: Tomcat的webapps文件夾內的web應用 solr
服務器
4. <solr-6.5.1>:解壓solr壓縮包以後的目錄app
例如: Tomcat的webapps文件夾內的 solr表示爲: <tomcat>/webapps/solr/
第一步:
首先下載Solr,而後將 .tgz 格式的壓縮文件,上傳到 linux系統中,我這裏使用的軟件是SecureFX,也可使用WinSCP。看我的喜愛,只要能上傳文件到linux便可。
1. 使用linux的 ll 命令查看當前目錄下的全部文件,當看到目錄下有 solr-6.5.1.tgz時候說明上傳成功。
2. 當前目錄解壓Solr,使用命令:
1 tar -zxvf solr-6.5.1.tgz
執行命令以後就能夠看到 solr-6.5.1文件夾了
如今能夠經過 cd ./solr-6.5.1/ 命令,進入文件夾
上面是solr-6.5.1目錄的結構,紅色指引是後面會須要用到的目錄
3. 切換到 Tomcat安裝目錄,進入 <tomcat>/webapps/ 目錄內建立 solr文件夾
1 mkdir solr
接着在 <solr-6.5.1> 目錄內,執行如下命令
1 cp -rf ./server/solr-webapp/webapp/* /opt/tomcat-solr/webapps/solr/
將 <solr-6.5.1>/server/solr-webapp/webapp/ 內的全部文件複製到 <tomcat>/webapps/solr/
當看到solr目錄中 多出了以下文件複製成功。
熟悉的 首頁 index.xml 和 WEB-INF web安全目錄。
4. 接着進入 <solr-6.5.1>/server/lib 目錄內, 能夠看到衆多的依賴包,雖然不少可是咱們只須要其中幾個而已
咱們只須要 metrics 開頭的jar文件便可。如今執行以下命令
1 cp metrics-core-3.1.2.jar metrics-ganglia-3.1.2.jar metrics-graphite-3.1.2.jar metrics-jvm-3.1.2.jar /opt/tomcat-solr/webapps/solr/WEB-INF/lib/
2 cp ./ext/* /opt/tomcat-solr/webapps/solr/WEB-INF/lib/
拷貝 metrics 開頭的文件中 除了metrics-jetty9-3.1.2以外的其餘文件到 <tomcat>/webapps/solr/ 目錄內
拷貝 ext 文件夾下的全部文件到 <tomcat>/webapps/solr/ 目錄內
而後在 <tomcat>/webapps/solr/WEB-INF/ 下建立java文件的編譯目錄 classes
1 mkdir classes
如今WEB-INF 下的結構以下
進入 <solr-6.5.1>/server/resources/ 目錄下,將日誌的配置文件複製 <tomcat>/webapps/solr/WEB-INF/classes/
1 cp ./log4j.properties /opt/tomcat-solr/webapps/solr/WEB-INF/classes/
上面是複製了 日誌配置文件以後的 classes目錄。solr web應用暫時配置完成,開始第二步。
第二步:
1. 在 <tomcat> 根目錄內建立solrhome文件夾 用於存放 solr的功能模塊須要的庫、solr jar文件、以及 solr的主目錄(home)
建立solrhome文件夾
1 mkdir solrhome
固然也能夠在其餘地方建立沒有強制必定要放在 Tomcat 根目錄下
複製 <solr-6.5.1> 根目錄下的dist、contrib 兩個文件夾
1 cp -rf ./dist/ ./contrib/ /opt/tomcat-solr/solrhome/
注:若是到如今仍是隻開着一個linux命令窗口,那麼你會發如今兩個路徑切換是多麼麻煩的一件事情。因此請打開兩個窗口。
在 <tomcat>/solrhome/ 內建立 home文件加,home文件是solr的主目錄。用於存放solr核心 core
1 mkdir home
這時候solrhome文件目錄結構以下
2. 複製 <solr-6.5.1>/server/solr/ 內的全部文件到 <tomcat>/solrhome/home/ 內
1 cp -rf ./server/solr/* /opt/tomcat-solr/solrhome/home/
home目錄結構以下
繼續在home文件夾下建立第一個核心 mycore(名稱隨意)
1 mkdir mycore
home目錄結構以下
再複製 <solr-6.5.1>/example/example-DIH/solr/solr/ 內全部核心core的配置文件到 <tomcat>/solrhome/home/mycore/ 目錄下
1 cp -rf example/example-DIH/solr/solr/* /opt/tomcat-solr/solrhome/home/mycore/
如今mycore的文件夾結構以下
core.properties能夠設置 新的核心名稱
如:name=myCore1
不設置默認顯示 文件夾名稱, 下一步 進入conf文件夾下配置屬性文件
3. 修改功能模塊地址和sorl jar文件地址, 這裏以 <tomcat>/solrhome/ 目錄爲例(若是你安裝其餘目錄,請參考目錄設置文件中的地址),我使用的vim編輯器,先打開solrconfig.xml
1 vim solrconfig.xml
移動光標到 路徑上,而後進入vim 可視化模式 Ctrl+v 模式。選中的部分爲高亮。按d鍵刪除多行
修改後結果以下
每一個核心core都有一個 存放索引文件和日誌的目錄 data
若是有須要修改,能夠在下圖位置修改data路徑
默認在覈心core根目錄下,若是不使用默認路徑能夠修改成存放data的路徑 例如:
注:若是此處編輯以後沒法保存,那麼你可能不是用root權限打開。
4. 好了,solrhome的設置基本完成,那麼最後就是關聯 solr web應用和 home目錄(不是solrhome)
打開 <tomcat>/webapps/solr/WEB-INF/ 目錄下的web.xml配置文件
修改entry地址以下
注:1.此處使用的是我本身設置的 home目錄,因此設置路徑時候 根據我的設置的 home 路徑設置配置文件
2.記得打開 <!-- --> 註釋
3.是home路徑 不是 solrhome。home文件下存儲的是核心core
而後跳到web.xml配置文件最後。註釋掉一下兩個標籤
若是不註釋,那麼訪問solr的時候會出現一下錯誤:
最後一步
進入 <tomcat>/bin/ 目錄執行 ./startup.sh 命令,啓動Tomcat
當出現 Tomcat started時候 說明tomcat已經啓動成功了。
注:如訪問solr不成功,能夠執行 ./catalina.sh run ,命令窗口就能夠打印出執行的信息(有時執行./startup.sh命令 並不會出現執行信息)。
這時候就能夠訪問solr試試
當出現以上界面,說明 solr能夠訪問了。上圖也顯示了 建立了核心 core,若是須要能夠在home下建立多個和核心core。
注:訪問solr時候在網址後面須要添加 /index.html路徑不然沒法訪問。web.xml中已經設置了 歡迎頁面是 index.html依然沒法訪問solr。出現該問題緣由,應該是solr版本問題,在舊版本中,將solr部署到Tomcat下能夠成功的訪問(5.2.1以前solr還有war包)。若是直接將solr運行在自帶的Jetty服務器內,能夠經過 http://localhost/solr 地址直接訪問,不須要添加 /index.html。因此能夠的話請將solr運行在自帶的Jetty服務器上,以免出現不可預知的狀況。
總結:
solr部署,簡單點說就是一下兩點:
一:webapps中建立好solr web應用,包括solr的依賴包和擴展jar文件等
二:建立solrhome目錄,保存 模塊功能和solr的jar包 以及home主目錄
最後將solr web應用和solrhome目錄關聯便可。
至此solr在linux中的安裝完成, 文章有不少不足的地方,歡迎你們指正。謝謝!