【问题标题】:How to get Solr and CKAN to run on Ubuntu 18.04 after recent solr-jetty updates?在最近的 solr-jetty 更新后,如何让 Solr 和 CKAN 在 Ubuntu 18.04 上运行?
【发布时间】:2019-05-01 17:17:35
【问题描述】:

问题

在进行一些更新后,Jetty 在尝试在 Ubuntu 18.04 上运行 CKAN 时无法再找到 Solr。全新安装的 CKAN 无法用于开发或生产。

这是使用3.6.2+dfsg-18~18.04 包。

我知道 Jetty9 正在运行,但它找不到 solr。

任何帮助或指示都会很棒。

错误信息

WARNI [pysolr] Unable to extract error message from invalid XML: mismatched tag: line 10, column 2
ERROR [pysolr] Solr responded with an error (HTTP 404): [Reason: None]
<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/><title>Error 404 Not Found</title></head><body><h2>HTTP ERROR 404</h2><p>Problem accessing /solr/select/. Reason:<pre>    Not Found</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.15.v20190215</a><hr/></body></html>
ERROR [ckan.controllers.package] Dataset search error: ('SOLR returned an error running query: {\'sort\': \'score desc, metadata_modified desc\', \'fq\': [u\'\', u\'+site_id:"default"\', \'+state:active\', u\'+permission_labels:("public" OR "creator-aedc3c62-8492-48b7-9640-0c362bb2b537")\'], \'facet.mincount\': 1, \'rows\': 21, \'facet.field\': [u\'organization\', u\'groups\', u\'tags\', u\'res_format\', u\'license_id\'], \'facet.limit\': \'50\', \'facet\': \'true\', \'q\': \'*:*\', \'start\': 0, \'wt\': \'json\', \'fl\': \'id validated_data_dict\'} Error: SolrError(u\'Solr responded with an error (HTTP 404): [Reason: None]\\n<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"/><title>Error 404 Not Found</title></head><body><h2>HTTP ERROR 404</h2><p>Problem accessing /solr/select/. Reason:<pre>    Not Found</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.15.v20190215</a><hr/></body></html>\',)',)
INFO  [ckan.lib.base]  /dataset render time 0.079 seconds

复制步骤

  1. 创建新的 Ubuntu Server 18.04 LTS 设置
  2. 关注default source install documentation
  3. 启动服务器paster serve /etc/ckan/default/development.ini
  4. 导航到/dataset 页面

背景

通过关注docs(包括comment from here),这在二月份可以正常工作。

我注意到,在最新的 solr-jetty 包中,它默认添加符号链接,这意味着在 CKAN 文档中添加它的步骤将失败,因为符号链接已经存在。我尝试删除并重新添加它以获取文件的不同权限,但没有成功。

此外,Solr 设置下的第一步指示更新 /etc/default/jetty 文件中不再存在的行。我相信这些应该转移到/etc/jetty9/start.ini,但我都没有运气。

更新

  • 尝试降级solr-jetty 包,但结果相同(但符号链接步骤有效,因为之前的包中未包​​含该步骤)。
    • sudo apt install libsolr-java=3.6.2+dfsg-11 solr-common=3.6.2+dfsg-11 solr-jetty=3.6.2+dfsg-11
    • sudo apt-get install python-dev postgresql libpq-dev python-pip python-virtualenv git-core redis-server
  • 尝试降级 solr-jetty 和 openjdk-8-jdk 与 openjdk-11-jdk 时出现相同的错误:
    • sudo apt install libsolr-java=3.6.2+dfsg-11 solr-common=3.6.2+dfsg-11 solr-jetty=3.6.2+dfsg-11
    • sudo apt install openjdk-8-jdk
  • 可能类似于https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919638 的权限问题

目前的解决方案

我不会将此添加为答案,因为这只是放弃使用 solr-jetty 包,它不能回答问题或如何让 solr-jetty 工作。然而,在让solr-jetty 工作后(见下面的答案),我决定改用这个直接使用 solr 的解决方案。

  • 按照 CKAN 文档步骤 1-4
  • 安装 solr 6.5.1 代替 ckan 的第 5 步
    • solr >= 6.6.0 的 CKAN 架构有错误。更改架构是可能的,但这更需要维护/排除故障。
    • 查看ckan wikiSolr 了解一些说明
    • 将 solr 架构复制到新的 solr 安装中
  • 继续第 6 步

【问题讨论】:

    标签: solr jetty ckan jetty-9


    【解决方案1】:

    目前,solr-jetty 包会因此设置而中断。这似乎是一个权限和文件问题。这是使其工作的一种方法。

    感谢this PR

    1. 对我来说最简单的方法是从头到尾遵循所有 CKAN 源安装文档,包括 solr(但我确实跳过了数据存储,因为我不想要它)
      • 此时网站应该可以加载,但您会收到 solr 错误
    2. 进行以下 solr 更新:

      1. sudo mkdir /etc/systemd/system/jetty9.service.d
      2. sudo nano /etc/systemd/system/jetty9.service.d/solr.conf 并添加

        [Service] ReadWritePaths=/var/lib/solr

      3. sudo nano /etc/solr/solr-jetty.xml 并替换为以下配置。
    3. 重启 jetty9 sudo service jetty9 restart 你可能需要systemctl daemon-reload

    步骤 3.3 solr-jetty.xml

    <?xml version="1.0"  encoding="ISO-8859-1"?>
    <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
    
    <!-- Context configuration file for the Solr web application in Jetty -->
    
    <Configure class="org.eclipse.jetty.webapp.WebAppContext">
      <Set name="contextPath">/solr</Set>
      <Set name="war">/usr/share/solr/web</Set>
    
      <!-- Set the solr.solr.home system property -->
      <Call name="setProperty" class="java.lang.System">
        <Arg type="String">solr.solr.home</Arg>
        <Arg type="String">/usr/share/solr</Arg>
      </Call>
    
      <!-- Enable symlinks -->
      <!-- Disabled due to being deprecated
      <Call name="addAliasCheck">
        <Arg>
          <New class="org.eclipse.jetty.server.handler.ContextHandler$ApproveSameSuffixAliases"/>
        </Arg>
      </Call>
      -->
    </Configure>
    

    请参阅this issue 了解更多信息。

    【讨论】:

    • 我发现我也需要编辑/etc/jetty9/start.ini,并将jetty.port从8080改为8983
    猜你喜欢
    • 1970-01-01
    • 2011-05-16
    • 2023-04-04
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 2019-05-31
    相关资源
    最近更新 更多