第一:我想学习solr.所以我想从http://lucene.apache.org/solr/quickstart.html执行快速入门教程
在ubuntu 14.04 64位上,我按以下方式安装了solr:
在/ opt per wget中,我使用了最新版本6.3.0.这是以root身份制作的.
然后我通过提取服务安装文件
tar xzf solr-6.3.0.tgz solr-6.3.0/bin/install_solr_service.sh --strip-components=2
也是由root!
我让它运行
sudo ./install_solr_service.sh solr-6.3.0.tgz
导致用户/组solr,启动solr作为服务,从/ opt/solr创建一个符号链接到/opt/solr-6.3.0,将solr.home作为/ var/solr与用户solr作为所有者等.
Solr按预期启动,因此http:// localhost:8983/solr /#/在浏览器中显示破折号.
我按照通常的命令停下来
service solr stop
启动示例的服务.
这里的问题是:
当我以root身份开始时:
root@duke:/opt/solr# bin/solr start -e cloud -noprompt
这里结果如下:
"欢迎来到SolrCloud示例!
为示例SolrCloud集群启动2个Solr节点.
Solr主目录/ opt/solr/example/cloud/node1/solr已存在./ opt/solr/example/cloud/node2已经存在.
使用以下命令在端口8983上启动Solr:/ opt/solr/bin/solr start -cloud -p 8983 -s"/ opt/solr/example/cloud/node1/solr"
警告:以root用户身份启动Solr存在安全风险,并且不被视为最佳做法.退出.请参阅参考指南.要覆盖此检查,请以参数'-force'开头
错误:进程退出并显示错误:1(退出值:1)"
所以root不是正确的所有者,我理解这是因为创建了一个新的用户solr.
然后我改为solr作为用户启动示例:
solr@duke:/opt/solr$ bin/solr start -e cloud -noprompt
"欢迎来到SolrCloud示例!
为示例SolrCloud集群启动2个Solr节点.
创建Solr主目录/ opt/solr/example/cloud/node1/solr
错误:无法创建目标'/ opt/solr/example/cloud/node1/solr'目录
因此,作为root的第一个测试由于solr而没有给我任何许可,而第二个作为用户solr给我没有权限创建目录/文件.
怎么办???
当您以Solr用户身份运行时,您必须授予solr
用户访问您尝试编写配置的目录的权限.如果是这样/opt/solr
,您可以通过发出chown
命令以递归方式更改目录的所有者和所有包含的文件:
chown -R solr.solr /opt/solr
这假设solr
您的系统上还有一个名为group的组.如果您没有solr组,请使用另一个合适的组,或者将最后一个保留.solr
在命令之外.