为 apache-ubuntu 公共网络服务器设置文件索引器和文档检索搜索引擎?

为 apache-ubuntu 公共网络服务器设置文件索引器和文档检索搜索引擎?

我不确定我是不是没有找到正确的解决方案,但我似乎找不到一个直接的答案来满足我的项目需求,下面就是答案。如果这是重复的帖子,我深表歉意。

我的公司有一台 Apache Web 服务器,我们刚刚为所有研究文档建立了一个新部分,这些文档是 HTML 和 PDF 格式,我们需要我们的远程客户端能够输入搜索条件以在 Web 服务器上找到他们正在搜索的文档。文档源位于多个文件夹中,全部本地存储在 Web 服务器上。对于我们的客户来说,手动解析目录索引以查找他们需要的文档非常繁琐。不仅要索引文件名和元数据,还要索引文件本身的内容。我使用内置索引和搜索功能的 Microsoft Web 服务器非常轻松地完成了此操作,但在使用 apache2 的 Ubuntu 上执行此操作却很难。

我如何设置系统以便能够以类似于谷歌的风格执行所需的文档搜索和检索功能,但仅通过网络浏览器远程获取本地内容?

谢谢您的意见!

答案1

好吧,我的一个朋友看到了我的帖子,并发短信说他看到 recoll 实际上有一个 Web 界面,我应该研究一下。他们确实有,而且它工作正常,设置也不太麻烦。我应该指出,它是用 Python 编写的,非常可定制。这是针对 Ubuntu 用户的步骤,但它几乎适用于任何情况,只需按照作者页面上的说明操作即可,源材料的链接和其他平台的说明位于本文档的末尾。我应该指出,他的文档质量很差,您可能必须像我一样拼凑出最终解决方案:

首先安装repo和软件;

sudo add-apt-repository ppa:recoll-backports/recoll-1.15-on
sudo apt-get update 
sudo apt-get install -y recoll python-recoll

安装 mod-wsgi

sudo apt-get install -y libapache2-mod-wsgi

我强烈建议您已经设置好 apache2,否则您可能会得到完全合格的域名和 IP 地址错误。将服务器名称设置为服务器的本地 IP 地址应该可以解决这个问题。

获取 recoll webui 的 github 存储库:

https://github.com/koniu/recoll-webui

只需单击“克隆或下载按钮”即可下载存档。将其解压到 /var/www 目录。它应该会创建文件夹“recoll-webui-master”

再次检查它没有重复目录:

转到 /var/www/recoll-webui-master 并确保文件在那里而不是在子目录中,否则您将收到错误。

接下来编辑文件;

/etc/apache2/mods-enabled/wsgi.conf

在“IfModule”部分末尾添加以下内容,但不要在之后添加。

WSGIDaemonProcess recoll 用户=dockes 组=dockes \ 线程=1 进程=5 显示名称=%{GROUP} \ python-path=/var/www/recoll-webui-master WSGIScriptAlias /recoll /var/www/recoll-webui-master/webui-wsgi.py WSGIProcessGroup recoll 顺序允许、拒绝允许所有

我不知道此处发布的格式更改是否会影响功能,如果它确实参考了作者关于原始格式的文档。

更改用户和组(示例中的 dockes),注意他是索引的所有者(.recoll 在他的主目录中)。

确保 ~/.recoll 具有所有者名称和服务器上正在使用的帐户的读写权限,而其他所有人只具有读取权限,否则您将收到错误 500 内部服务器错误。不要使用“root”!

请注意,Recoll WebUI 应用程序主要是单线程的,因此在 WSGIDaemonProcess 行上指定多个线程用处不大(在某些情况下甚至可能适得其反)。应指定多个进程,让多个 CPU 处理同时的请求。

然后运行以下命令重新启动 Apache:

sudo apachectl restart

注意,在用于访问搜索的 URL 末尾需要一个 /(使用:http://my.server.com/recoll/, 不是http://my.server.com/recoll),否则找不到脚本本身以外的文件(页面看起来很奇怪并且搜索不起作用)。

一旦完成所有设置,您需要运行 recoll 并索引所需的文件夹,这些文件夹显然可以是系统中的任何文件夹,因此请小心不要索引您不想公开的文件夹。

另外,要通过网络查看文件,您必须更改设置。

在此处输入图片描述

资料来源:

https://www.lesbonscomptes.com/recoll/download.html

https://www.lesbonscomptes.com/recoll/pages/recoll-webui-install-wsgi.html

https://github.com/koniu/recoll-webui

希望这能帮到你!虽然它不是 100% 满足我的需要,但已经很接近了,在我有时间修改代码以适应我想要的适度更改之前,它都能正常工作。

答案2

apache2 的有效配置:文件:/etc/apache2/mods-enabled/wsgi.conf

WSGIDaemonProcess recoll user=web_user group=root threads=1 processes=5 display-name=%{GROUP} python-path=/var/www/recoll-webui-master
WSGIScriptAlias /recoll /var/www/recoll-webui-master/webui-wsgi.py

Alias /static /var/www/recoll-webui-master/static

<Directory /var/www/recoll-webui-master>
        WSGIProcessGroup recoll
        Order allow,deny
        allow from all
</Directory>

将上述代码放在结束标签的正上方:</IfModule>

相关内容