Ошибка запуска Solr в Tomcat
Я только что установил Tomcat6, и теперь я пытаюсь установить Solr 3.6.1.
Я скопировал файл.war и пример каталога solr.
cd apache-solr-3.6.1/dist
cp apache-solr-3.6.1.war /usr/share/tomcat6/webapps/solr.war
cp -r /usr/local/src/apache-solr-3.6.1/example/solr /usr/local/solr
cd /usr/share/tomcat6/webapps/solr/WEB-INF
nano web.xml
незакомментированной <env-entry>...</env-entry>
замещать <env-entry-value>...</env-entry-value>
с <env-entry-value>/usr/local/solr</env-entry-value>
Когда я захожу на http://domain.com:8080/solr я получаю сообщение об ошибке:
HTTP Status 500 - Severe errors in solr configuration. Check your log files for more detailed information on what may be wrong. If you want solr to continue after configuration errors, change: <abortOnConfigurationError>false</abortOnConfigurationError> in solr.xml ------------------------------------------------------------- java.lang.RuntimeException: java.io.IOException: Cannot create directory: /usr/local/solr/./data/index at org.apache.solr.core.SolrCore.initIndex(SolrCore.java:403) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:552) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:480) at org.apache.solr.core.CoreContainer.load(CoreContainer.java:332) at org.apache.solr.core.CoreContainer.load(CoreContainer.java:216) at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488) at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1251) at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:613) at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:136) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:679) Caused by: java.io.IOException: Cannot create directory: /usr/local/solr/./data/index at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:171) at org.apache.lucene.store.Lock.obtain(Lock.java:72) at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1098) at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:84) at org.apache.solr.core.SolrCore.initIndex(SolrCore.java:398) ... 29 more
Что случилось, и как я могу решить эту проблему? Спасибо!
2 ответа
Похоже, вам нужно разрешить пользователю Tomcat писать в /usr/local/solr
каталог.
В зависимости от вашей ОС и от того, как вы установили Tomcat, используемое имя пользователя и группа будут различаться, но это будет примерно так:
chown -R tomcat:tomcat /usr/local/solr
Проверьте, что принадлежит пользователю /usr/share/tomcat6
, это должно указать вам в правильном направлении.
Если после этого все еще происходит сбой, вероятно, это проблема с альтернативным механизмом управления доступом, таким как SELinux.
Я бы проверил права доступа к папке / usr / local / solr, потому что файл журнала в основном говорит вам, что он не может создать папку по этому пути.
Пользователь, который запускает Tomcat, должен иметь права на чтение и запись в / usr / local / solr и его подпапки.