前言
如标题所示,网上关于这方面的内容要么残缺不全,要么完全用不了。我决定按照自己成功部署的经验来分享一下我的安装教程,这里面的方法不是最佳实践,不过对于小型 Wiki 基本是完全够用的。
软件要求
- Debian 12
- Mediawiki 1.43.3
- ElasticSearch 7.10.2 (CirrusSearch 只兼容7.10版)
你也可以参考官方提供的支持矩阵,但是我说白了这个页面做的很烂。
下载必要文件
首先在这里下载 Linux X86_64 版本。
可能有人看见有 deb 包就直接跑去用 dpkg 安装了,但我实际使用时总是会出现莫名其妙的问题,这也是为什么我不用 apt 安装。
随便找个自己喜欢的文件夹,cd 到那个文件夹,然后输入 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz 。
部署 ElasticSearch
我这里把压缩包下载到了 /opt 里,用 tar -xzf elasticsearch-7.10.2-linux-x86_64.tar.gz 把文件解压出来。
然后我们 cd 到 bin 文件夹里。
由于 root 账户不能用于运行 ElasticSearch(可能会有潜在的安全危险),接下来我们新建一个用户账户用于运行该软件。
1 | groupadd elastic |
接下来我们开一个 screen 会话,用于运行 ElasticSearch。
1 | screen -R ElasticSearch |
因为是用 Java 写的程序,所以启动时会有点慢,一般来说到这里就能直接使用了,如果没有用的话就根据错误日志自行调整。
没问题的话直接 detach 就行了。
测试服务连通性
输入 curl -X GET "localhost:9200/?pretty" ,如果返回如下内容,则 ElasticSearch 已经可以使用了。
1 | { |
记得使用 ufw 等防火墙保护你的服务器,你也不希望自己部署的服务被滥用吧。
如果你要把 ElasticSearch 开放到公网,输入 ufw allow 9200 即可,不过你得自己折腾安全性之类的东西了。
安装 MediaWiki 插件
把下面这些插件都丢到 $MW_INSTALL_PATH/extensions 文件夹里。
配置 CirrusSearch
配置流程来自这里,我将按照我的安装方式复述一遍。
首先添加下列内容到这个文件里。
1 | # ./LocalSettings.php |
然后运行 CirrusSearch 目录里的维护脚本。
1 | php $MW_INSTALL_PATH/extensions/CirrusSearch/maintenance/UpdateSearchIndexConfig.php |
脚本执行完毕后,删掉 $wgDisableSearchUpdate = true; 这一行。
接下来执行另一个维护脚本(关于这部分,原文针对大型 wiki 给出了解决方案,请阅读原文)。
1 | php $MW_INSTALL_PATH/extensions/CirrusSearch/maintenance/ForceSearchIndex.php --skipLinks --indexOnSkip |
脚本执行完毕后,在 LocalSettings.php 添加如下内容。
1 | $wgSearchType = 'CirrusSearch'; |
额外内容
如果你需要使用 AdvancedSearch 的话,添加下列内容。
1 | # ./LocalSettings.php |