我一直试图在家用电脑上安装Solr 4.3(Tomcat 7),但是它不能运行。 我已经build立了Tomcat并部署了solr.war
文件,这两个文件在Tomcat的Tomcat Web Apps Manager屏幕上解包并显示,但是它没有运行,点击开始button也没有做任何事情(因为它应该已经在第一名)。
这里是我在Tomcat中的solr.xml
上下文文件,它也提供了solr.war文件的path以及我的solr Cores所在的位置(这是默认的Collection1):
<Context path="/solr" docBase="C:/LocalApps/Tomcat/apache-tomcat-7.0.40/webapps/solr.war" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="C:/LocalApps/Solr/solr-4.3.0/example/solr/" override="true"/> </Context>
这是tomcat中的错误日志:
INFO: Starting Servlet Engine: Apache Tomcat/7.0.40 Jun 09, 2013 11:04:07 PM org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor C:\LocalApps\Tomcat\apache-tomcat-7.0.40\conf\Catalina\localhost\solr.xml Jun 09, 2013 11:04:07 PM org.apache.catalina.startup.HostConfig deployDescriptor WARNING: A docBase C:\LocalApps\Tomcat\apache-tomcat-7.0.40\webapps\solr.war inside the host appBase has been specified, and will be ignored Jun 09, 2013 11:04:07 PM org.apache.catalina.startup.SetContextPropertiesRule begin WARNING: [SetContextPropertiesRule]{Context} Setting property 'debug' to '0' did not find a matching property. Jun 09, 2013 11:04:09 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Error filterStart Jun 09, 2013 11:04:09 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Context [/solr] startup failed due to previous errors
您需要按照此处所述安装用于记录的罐子。
只需将所有提到的文件复制到您的tomcat / lib目录。 并重新启动Tomcat。
- 将
solr/example/lib/ext
的jar复制到你的容器的主lib目录中。 这些罐子将建立SLF4J
和log4j
。 这个lib目录的确切位置是高度可变的。 对于使用OS供应商提供的Tomcat软件包的Debian或Ubuntu服务器,这可能是/usr/share/tomcat6/lib
或/usr/share/tomcat7/lib
。- 将
solr/example/resources/log4j.properties
的日志配置复制到classpath
某个位置。 通常你可以使用与上面的jar文件相同的位置。 编辑首选日志目标的配置文件。- (可选)如果没有在类路径上放置log4j.properties,请设置
java option -Dlog4j.configuration=file:///path/to/log4j.properties
在Tomcat上开始使用Solr最简单的方法是使用HDS(Heliosearch Distribution for Solr),一个Tomcat / Solr发行版
这是一个超级集合的Apache Solr,包含一个额外的“服务器”目录,这是一个预配置(线程,日志记录,连接设置,消息大小等)基于Tomcat的Solr服务器。
其他一些实现说明:
开始:
$ cd server $ bin/startup.sh
从不同的端口开始(例如7574):
$ cd server $ bin/startup.sh -Dhttp.port=7574
去关机:
$ cd server $ bin/shutdown.sh -Dhttp.port=7574
这些脚本甚至接受-Djetty.port = 7574,以便从使用jetty的开始示例中更容易地剪切n-paste。 “example”目录仍然存在,所以你仍然可以运行基于码头的服务器。
检查由Tomcat创建的localhost_yyyy_mm_dd.log日志。 它通常应该告诉你这个问题的原因。 全堆栈跟踪可能不会显示在控制台中…
我在做同样的事情时遇到了一些问题,官方文档对此没有什么帮助。 我写了一篇关于它的博客文章 ,内容如下:
Solr安装
在磁盘上的某处下载并解压最新版本的Solr。
cd /tmp wget "http://mirrors.ircam.fr/pub/apache/lucene/solr/4.6.0/solr-4.6.0.tgz" cd /opt sudo tar zxvf /tmp/solr-4.6.0.tgz sudo chown -R tomcat:tomcat solr-4.6.0
在这里,我使用/ opt,但只要Tomcat可以访问它,就可以在任何地方安装它。 可以肯定的是,Tomcat是所有者,所以它可以在Solr文件夹中读写。
部署
现在,让我们在Tomcat上部署Solr webapp。 为此,我们将利用XML上下文配置文件,我们将用它来部署和配置Solr。
在Tomcat安装文件夹中,在conf / Catalina / localhost中创建一个新的XML上下文配置文件。 文件的基本名称将定义Solr上下文路径。
我们首先需要定义$ {solr.home}。 在这里,我们使用分配中提供的示例Solr配置。 它位于/opt/solr-4.6.1/example/solr。
为避免启动错误,我们需要将一些jar添加到位于/opt/solr-4.6.1/example/lib/ext中的webapp类路径。 但是我们不想用Solr jar来污染Tomcat的lib文件夹,所以我们只声明一个虚拟加载器。
我们还需要正确配置Log4J。 在这里,我们使用Solr发行版中提供的Log4J配置文件/opt/solr-4.6.1/example/resources,在Solr classpath中添加文件夹。
<?xml version="1.0" encoding="UTF-8"?> <Context docBase="/opt/solr-4.6.1/dist/solr-4.6.1.war"> <Environment name="solr/home" type="java.lang.String" value="/opt/solr-4.6.1/example/solr" override="true" /> <Loader className="org.apache.catalina.loader.VirtualWebappLoader" virtualClasspath="/opt/solr-4.6.1/example/lib/ext/*.jar;/opt/solr-4.6.1/example/resources/" /> </Context>
保存文件,等待Tomcat阅读并部署战争。
而已! Solr正在运行。
这里是托尼在安装了XAMPP的Drupal for Windows中提供的指令:
如果您在Linux上,请检查: Apache Solr 4.6.0安装 。