我收到 "Dspace JSPUI内部服务器错误"。我认为是solr的问题。我检查了 http:/localhost:8080solr。 . 我发现solr无法创建一些目录,并提示 "SolrCore初始化失败"。Dspace文件夹拥有所有用户的所有权限。其中一个用户的日志如下。
`
org.apache.solr.common.SolrException: /dspace/solr/search/data/index/write.lock
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:881)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:654)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:491)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:255)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:249)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.nio.file.AccessDeniedException: /dspace/solr/search/data/index/write.lock
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:177)
at java.nio.channels.FileChannel.open(FileChannel.java:287)
at java.nio.channels.FileChannel.open(FileChannel.java:335)
at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:167)
at org.apache.lucene.store.Lock.obtain(Lock.java:77)
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:755)
at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:77)
at org.apache.solr.update.SolrIndexWriter.create(SolrIndexWriter.java:64)
at org.apache.solr.core.SolrCore.initIndex(SolrCore.java:531)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:785)
`
作为运行Dspace的用户,如果你在终端执行以下内容,是否会出现权限错误?
touch /dspace/solr/search/data/index/write.lock
如果是这样的话,这意味着该用户没有访问该文件的权限。
另外,这是一个锁文件,这意味着该索引可能被另一个Solr实例使用。检查一下有没有其他进程在使用这个文件或solr。
你也可以尝试停止Dspace Solr的所有实例,手动删除锁文件,然后重新启动服务。
我强烈建议不要给予完全的读-写权限,因为这样会削弱安全性。一旦你弄清楚了文件的正确用户和权限,就正确地限制它们,只给需要id的用户(solr和dspace用户)以读和或写的权限。