Tomcat6

帶有tomcat 6的Solr 4.4在tomcat管理器上拋出503

  • September 20, 2013

系統詳細資訊:

作業系統:Cent OS 5.5 x86_64

java - 1.7 (1.7.0_25)

tomcat:6.0.37

solr 4.4(配置為多核)

我在碼頭上完美執行了 solr 4.4 多核(儘管目前只執行一個核心)。

我需要在 tomcat 6 上執行相同的程序,看看它是否可以比碼頭更好。

這是我所做的: 1.從http://mirrors.sonic.net/apache/tomcat/tomcat-6/v6.0.37/bin/apache-tomcat-6.0.37.tar.gz

下載了 tomcat 6

2.將apache-tomcat-6.0.37.tar.gz解壓到/usr/local/tomcat/

創建啟動和關閉腳本,程序通過user:group tomcat:tomcat查看啟動腳本,發現tomcat執行正常. 我將埠從 8080 修改為 8400

3.在tomcat下為solr app創建了一個solr.xml: 文件:/usr/local/tomcat/conf/Catalina/localhost/solr.xml

<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/var/www/projects/solr-oncars/example/solr/solr-4.4.0.war" debug="0" privileged="true" allowLinking="true" crossContext="true">
   <Environment name="solr/home" type="java.lang.String" value="/var/www/projects/solr-oncars/example/solr" override="true" />
</Context>

4. 複製 solr.war 到 core 的 home-path

cp /var/www/projects/solr-oncars/example/webapps/solr.war  /var/www/projects/solr-oncars/example/solr/oncars/

甚至嘗試使用 solr-4.4.war

cp /var/www/projects/solr-oncars/dist/solr-4.4.0.war /var/www/projects/solr-oncars/example/solr/

5. 編輯 solrconfig.xml

**5.a:**我嘗試

從以下位置編輯 solrconfig.xml 中的數據目錄:

<dataDir>${solr.core0.data.dir:}</dataDir>

到:

<dataDir>${solr.core0.data.dir:/var/www/projects/solr-oncars/example/solr/oncars/data}</dataDir>

5.b上面的設置還原後我也試過了

6. 將 slf4j jar 複製到 tomcat: 當我嘗試從 tomcat 管理器啟動 solr 應用程序時,在 catalina 日誌中遇到很多 sl4j 錯誤。這是通過將 sl4j 庫從 solr 複製到 tomcat 來解決的。如下所示:

cp -v /var/www/projects/solr-oncars/example/lib/ext/slf4j-*  /usr/local/tomcat/lib/
cp -v /var/www/projects/solr-oncars/example/lib/ext/log4j-1.2.16.jar  /usr/local/tomcat/lib/

從 1 到 6 完成了從 tomcat 執行現有的 solr。在 Tomcat 管理器下,“/solr”顯示為已啟動。Stop 和 Start 一樣不會拋出錯誤

我可以看到 solr 文件夾是在 tomcat 的 webapps 下創建的:

ll webapps/solr/

輸出:

-rw-r--r-- 1 tomcat tomcat 5642 Jul 10 11:11 admin.html
drwxr-xr-x 3 tomcat tomcat 4096 Sep 19 18:53 css
-rw-r--r-- 1 tomcat tomcat 1146 Jul 10 11:11 am favicon.ico
drwxr-xr-x 4 tomcat tomcat 4096 Sep 19 18:53 img
drwxr-xr-x 4 tomcat tomcat 4096 Sep 19 18:53 js
drwxr-xr-x 2 tomcat tomcat 4096 Sep 19 18:53 META-INF
drwxr-xr-x 2 tomcat tomcat 4096 Sep 19 18:53 tpl
drwxr-xr-x 3 tomcat tomcat 4096 Sep 19 18:53 WEB-INF

當從 tomcat 管理器中點擊 /solr 時,即 URL:http ://localdomain.com:8400/solr/ 出現以下頁面:

HTTP 狀態 503 - 伺服器正在關閉

類型狀態報告

消息伺服器正在關閉

描述 請求的服務目前不可用。
Apache Tomcat/6.0.37

SOLR 配置: /var/www/projects/solr-oncars/example/solr/solr.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
 <cores adminPath="/admin/cores">
   <core schema="schema.xml" name="oncars" instanceDir="oncars" conf="solrconfig.xml"/>
 </cores>
</solr>

我曾嘗試在網上尋找幫助,但找不到任何有效的方法。甚至來自 serverfault 的資源

問題可能出在 solr 上,因為我們最初修改了 solrconfig,後來在試錯過程中甚至修改了 solr.xml(屬於 solr)。

所以,我從零開始又做了整件事。這次我提到了另一個相當相關的 How-To

總的來說,我犯的錯誤是對 solr 進行更改。不要那樣做!

Solr Tomcat Wiki建議:“ **Solr4.3 需要完全不同的部署。**這些說明不是最新的,適用於不確定的 Solr 版本。”
使用 wiki,您往往會點擊索引而錯過精美的印刷品!我已經提到了它,因此弄亂了工作 solr(幸運的是我已經備份了)。

從我提到的 How-To 中,我學到了以下內容:

1 不要更改正在工作的 solr 配置(即從碼頭執行 solr 以檢查它是否啟動正常)

2 在添加 solr 之前啟動並執行 tomcat。(獨立執行。如果您對兩者都很好,請停止這兩個服務)

3 假設solr路徑是/usr/local/solr-4.x,然後將solr-4.x.war從/usr/local/solr-4.x/dist/solr-4.xxwar複製/usr/local /solr-4.x/example/solr/solr.war 。_ 這就是您在 solr 目錄中需要做的所有事情。休息,你需要從 solr 目錄中取出幾個文件到 tomcat 目錄(pt. 6)

4 修改tomcat的server.xml,確保裡面有URIEncoding:

<Connector port="8080" protocol="HTTP/1.1"
   connectionTimeout="20000"
   redirectPort="8443"
   URIEncoding="UTF-8" />

5 在 tomcat 的 conf 中創建 solr.xml:vim /usr/local/tomcat/conf/Catalina/localhost/solr.xml 添加以下行:

<Context path="/solr" docBase="/usr/local/solr/example/solr/solr.war" debug="0" crossContext="true">
       <Environment name="solr/home" type="java.lang.String" value="/usr/local/solr/example/solr" override="true"/>
</Context>

注意: solr 核心位於路徑下:/usr/local/solr/example/solr/core{0,1,..n}

6 將 Solr 擴展文件和 log4j 配置文件複製到 tomcat:

cp -v /usr/local/solr/example/lib/ext/*  /usr/local/tomcat/lib/
cp -v /usr/local/solr-oncars/example/resources/log4j.properties /usr/local/tomcat/conf/

對於其餘部分,請與“操作方法”進行交叉檢查

最後,將 tomcat 所有權授予 solr 和 tomcat 目錄(如果 tomcat 作為使用者/組“tomcat”執行):

chown -R tomcat:tomcat /usr/local/tomcat
chown -R tomcat:tomcat /usr/local/solr

啟動tomcat並訪問solr-url,它成功了!

引用自:https://serverfault.com/questions/540213