首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法让Solr 4.8与Tomcat 7和Ubuntu 12.04一起工作

无法让Solr 4.8与Tomcat 7和Ubuntu 12.04一起工作
EN

Stack Overflow用户
提问于 2014-05-06 19:17:18
回答 2查看 2.4K关注 0票数 2

我正在尝试在Ubuntu12.04服务器上运行Tomcat 7下的Solr4.8,该服务器将使用sunspot_rails gem从Rails 4应用程序访问。

现在,我只是使用Solr4.8中的多核示例进行测试,以验证它是否在使用默认配置。

Tomcat运行良好(curl localhost:8080返回"It's logs“-page),我在Tomcat或Solr日志中看不到任何错误。但是curl localhost:8080/solr不返回任何东西,curl localhost:8080/solr/update返回The requested resource (/solr/update) is not available.。(我在本地主机上使用curl,因为我无法远程访问Tomcat 7管理员或Solr admin )。

我已经将solr.war文件从示例复制到多核,并将所有jar文件和log4j.properties复制到tomcat7 7/lib中(基本上只遵循这里的说明,当然是4.8个http://gagannaidu.blogspot.no/2014/02/apache-solr-461-tomcat7-setup-on-ubuntu.html):

代码语言:javascript
运行
复制
sudo cp /usr/share/solr/example/webapps/solr.war /usr/share/solr/example/multicore/solr.war

sudo cp -r solr/example/lib/ext/* /usr/share/tomcat7/lib

sudo cp -r solr/example/resources/log4j.properties /usr/share/tomcat7/lib

我还将多核文件夹的所有者设置为tomcat7:

代码语言:javascript
运行
复制
sudo chown -R tomcat7 /usr/share/solr/example/multicore

以下是我的配置文件:

solr.xml in /var/lib/tomcat7 7/conf/Catalina/localhost:

代码语言:javascript
运行
复制
<Context docBase="/usr/share/solr/example/multicore/solr.war" debug="0" privileged="true" allowLinking="true" crossContext="true">
  <Environment name="solr/home" type="java.lang.String" value="/usr/share/solr/example/multicore" override="true" />
</Context>

solr.xml in /usr/share/solr//多核:

代码语言:javascript
运行
复制
<solr persistent="false">
  <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:8983}" hostContext="${hostContext:solr}">
    <core name="core0" instanceDir="core0" />
    <core name="core1" instanceDir="core1" />

    <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
      <str name="urlScheme">${urlScheme:}</str>
    </shardHandlerFactory>
  </cores>
</solr>

我尝试过将hostPort更改为"${jetty.port:8080}"或只是"8080",但这似乎没有帮助。

有人知道我能做些什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-07 09:04:48

好吧,终于让它在这里起作用了。

我所做的是:

1)我再次下载了Solr4.8,解压缩并移到了/usr/share/solr**.**

2)我将solr.war复制到solr示例中,而不是多核示例:

代码语言:javascript
运行
复制
sudo cp /usr/share/solr/example/webapps/solr.war /usr/share/solr/example/solr/solr.war

3)然后复制jar和日志文件:

代码语言:javascript
运行
复制
sudo cp -r solr/example/lib/ext/* /usr/share/tomcat7/lib
sudo cp -r solr/example/resources/log4j.properties /usr/share/tomcat7/lib

4)我在/usr//tomcat7 7/lib/log4j.properties中将日志路径设置为(然后创建文件):

代码语言:javascript
运行
复制
solr.log=/usr/share/solr

touch solr.log

(内部/usr/股/solr/)

5)我在solr.xml /var/lib/tomcat7/conf/Catalina/localhost**:**中的中添加了以下内容

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/usr/share/solr/example/solr/solr.war" debug="0" crossContext="true">
  <Environment name="solr/home" type="java.lang.String" value="/usr/share/solr/example/solr" override="true" />
</Context>

我在/usr/share/solr/example/solr/solr.xml:中将hostPort改为8080

代码语言:javascript
运行
复制
<int name="hostPort">8080</int>

7)最后,我将用户**tomcat7 7设置为/usr/share/solr文件夹的所有者:

代码语言:javascript
运行
复制
sudo chown -R tomcat7 /usr/share/solr

这可能会被清理一些,从Solr发行版中删除不必要的文件和示例,但至少它让我启动并运行。

对于那些希望与sunspot_rails gem一起使用它的人,您需要用Rails项目中的一个替换/usr/share/solr/example/solr/collection1/conf中的schema.xml文件,并对您的sunspot.yml文件执行如下操作:

代码语言:javascript
运行
复制
production:
  solr:
    hostname: localhost
    port: 8080
    log_level: WARNING
    path: /solr

更新:

添加完整的solr.xml文件以供参考:

代码语言:javascript
运行
复制
<solr>

  <solrcloud>
    <str name="host">${host:}</str>
    <int name="hostPort">8080</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  </solrcloud>

  <shardHandlerFactory name="shardHandlerFactory"
    class="HttpShardHandlerFactory">
    <int name="socketTimeout">${socketTimeout:0}</int>
    <int name="connTimeout">${connTimeout:0}</int>
  </shardHandlerFactory>

</solr>
票数 7
EN

Stack Overflow用户

发布于 2014-05-07 06:01:28

我也使用相同的东西和相同的网站引用,甚至我也有同样的问题,因为solr.xml不应该出现在“/var/lib/tomcat7 7/conf/Catalina/localhost:”中。

将solr.xml复制到“/usr/share/tomcat7 7/conf/Catalina/localhost”,然后重新启动apache,然后再试一次

希望这对你有用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23503116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档