系统详情:
OS:Cent OS 5.5 x86_64
java – 1.7(1.7.0_25)
tomcat:6.0.37
solr 4.4(configuration为多核)
我已经在docker完美地运行了4.4多核(虽然目前只运行一个内核)。
我需要在tomcat 6上运行相同的代码,以查看它是否可以比jetty更好地执行。
这是我做的:
1.下载了tomcat 6
来自: http : //mirrors.sonic.net/apache/tomcat/tomcat-6/v6.0.37/bin/apache-tomcat-6.0.37.tar.gz
2.提取apache-tomcat-6.0.37.tar.gz到/ usr / local / tomcat /
创build启动和closures脚本和进程运行通过用户:组tomcat:tomcat检查启动脚本,发现tomcat运行良好。 我修改了端口从8080到8400
3.在tomcat下为solr应用程序创build一个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复制到核心的主路上
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
来自:
<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:当我尝试从tomcatpipe理器启动solr应用程序时,在catalina日志中遇到了很多sl4j错误。 这是通过从solr复制sl4j库到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。 在Tomcatpipe理器下,“/ solr”显示为已启动。 停止和开始同样不会抛出错误 。
我可以看到solr文件夹是在tomcat的webapps下创build的:
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 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
当点击/ solr从tomcatpipe理器即URL: http : //localdomain.com : 8400 /solr/下面的页面显示:
HTTP状态503 - 服务器正在closures 键入状态报告 消息服务器正在closures 说明请求的服务当前不可用。 Apache Tomcat / 6.0.37
SOLR CONFIG: /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>
我试图寻找networking寻求帮助,但我找不到任何工作。 即使是来自serverfault的资源
这个问题可能与solr有关,因为我们最初修改了solrconfig,后来在尝试和错误的过程中甚至还修改了solr.xml(solr)。
所以,我从零开始做了所有的事情。 这一次我提到了另一个相关的“ 如何”
总之,我犯的错误是改变solr。 不要这样做!
Solr Tomcat Wikibuild议:“ Solr4.3需要完全不同的部署,这些指令不是最新的,适用于Solr的不确定版本。
随着维基,你倾向于点击索引,错过了精美的打印! 我已经提到了,所以与工作solr(幸运我已经采取备份)搞砸了。
从我提到的方法,我学到了以下几点:
1不要改变工作solrconfiguration(即从docker运行solr来检查它是否启动正常)
2在添加solr之前先获取并运行tomcat。 (两个都独立运行,如果你满意都可以,停止这两项服务)
3假设solrpath是/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中创buildsolr.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内核在path下:/usr/local/solr/example/solr/core{0,1,..n}
6将Solr扩展文件和log4jconfiguration文件复制到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,它工作!