零基礎(chǔ)快速搭建個人Wiki(XWiki+Tomcat+MySQL)
前言
學(xué)習(xí)過程中可能遇到不同方面的知識,數(shù)量多了要靠腦袋組織還是太困難,自己會的東西要和朋友要分享溝通也非常麻煩。
而擁有一個自己的Wiki,就能解決這兩個問題:1、自己對知識的整理;2、和其他人分享溝通。
現(xiàn)在有很多開源免費(fèi)的軟件,只要有一臺個人電腦就能部署一個自己的Wiki環(huán)境,何樂而不為。
開源Wiki中比較流行的是?Mediawiki?和?Dokuwiki,有興趣的話可以了解這兩個Wiki。
我這里選的是?XWiki,形式上繼承了?Mediawiki?和?Confluence,個人比較喜歡。
但是XWiki網(wǎng)上資料比較散,沒有找到一個完整流程,中途也遇到中文字符相關(guān)問題,折騰了兩天才搭起來,所以記錄分享一下自己的部署過程。
( 個人Web零基礎(chǔ),所以如果有需要,不要擔(dān)心部署有困難,放手折騰 )
( 熟悉的話,不用一個小時就能搭起來自己Wiki )
貓貓鎮(zhèn)樓,效果如下:

一、安裝配置流程
我這里選擇的是 Tomcat 服務(wù)端 + MySQL 數(shù)據(jù)庫 + XWiki的組合。
XWiki可以支持各種類型的服務(wù)端和數(shù)據(jù)庫,具體可以看上面的官方安裝文檔,不必吊死在這一棵樹上
大概流程如下:
1、Java環(huán)境配置(JDK)
2、Tomcat 作為Web服務(wù)器
2.1、Tomcat中文字符配置
3、MySQL Server & WorkBench,數(shù)據(jù)庫管理Wiki條目
4、XWiki 安裝配置
5、XWiki中文配置 與 搜索引擎中文配置
參考:
官方安裝文檔:www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/
油管安裝流程視頻:https://www.youtube.com/watch?v=HWvvgNjf9ng&ab_channel=allthingstechnical
二、提前準(zhǔn)備文件
所需要的安裝文件:
1. AdoptOpenJDK 11.0.17+8:https://adoptium.net/zh-CN/temurin/releases/?version=11?(Java環(huán)境)
2. MySQL Installer 8.0.32:https://dev.mysql.com/downloads/installer/?(建議下載400+MB的離線版本,不然要還要再等下載)
3. Apache Tomcat:https://tomcat.apache.org/?(Web服務(wù)端)
4. driver for mysql connector:?https://dev.mysql.com/downloads/connector/j/
這里要選Platform Independent下載的才是Connector

5. XWiki:https://www.xwiki.org/xwiki/bin/view/Download/?選一個喜歡的版本,想穩(wěn)就選Long Term Support,無所謂就無腦最新版。
要下載兩個文件,XWiki本體 .war包 和 初始主題 .xip 包。

6. XWiki 搜索引擎 中文分詞器:https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-smartcn/?用來讓W(xué)iki支持中文搜索
三、詳細(xì)過程
1、Java環(huán)境配置(JDK)
(這一步如果已經(jīng)有了Java環(huán)境可以跳過)
直接下載Java安裝完事。我這里直接用的默認(rèn)路徑安裝。
JDK:OpenJDK11U-jdk_x64_windows_hotspot_11.0.18_10.msi
下載地址:https://adoptium.net/zh-CN/temurin/releases/?version=11
安裝好后,右鍵我的電腦 -> 高級系統(tǒng)設(shè)置 -> 環(huán)境變量,檢查添加JAVA_HOME系統(tǒng)變量配置,配置為安裝的jdk路徑。

配置完畢,打開cmd,輸入java -version,如果正確輸出了版本,這一步就算完成了。

2、Tomcat安裝
這部分參考官方:https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/InstallationWAR/InstallationTomcat/
先下載Tomcat:https://tomcat.apache.org/
官網(wǎng)列了部分版本Tomcat不兼容,這里我的版本是8.5.87?apache-tomcat-8.5.87.exe?Windows直接下載.exe安裝
可以選其他兼容的版本

安裝完畢,打開 Tomcat\bin\startup.bat,在瀏覽器打開 localhost:8080,出現(xiàn)下面頁面就算成功。

打開 Tomcat\conf\context.xml,在最后加上:
<Resources cachingAllowed="true" cacheMaxSize="100000" ></Resources>

打開 Tomcat\conf\server.xml,在下圖位置加上:(設(shè)置字符集為UTF-8,開啟壓縮)
URIEncoding="UTF-8"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/css,text/javascript,application/x-javascript"

2.1、Tomcat8中文字符配置(UTF-8)
【我的Tomcat版本是 8.5.87,如果是其他版本可能不會有這個問題】
Tomcat8關(guān)鍵:由于需要中文環(huán)境,需要在 Tomcat\bin\catalina.bat 文件里,加上一行:(否則會在后續(xù)傳遞中文到MySQL數(shù)據(jù)庫的時候報錯)
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=UTF-8"

3、MySQL Server & WorkBench,數(shù)據(jù)庫管理Wiki條目
這部分參考官方文檔:https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/InstallationWAR/InstallationMySQL/
準(zhǔn)備好MySQL Connector:mysql-connector-j-8.0.32.jar
下載MySQL 8.0.32?mysql-installer-community-8.0.32.0.msi
下載安裝以下兩個部分:
MySQL Server
MySQL Workbench 圖形化界面,不用黑框框手敲指令

安裝好后,先把 mysql-connector-j 文件放到 Tomcat\lib 下,提供Tomcat到MySQL的連接。

然后打開 MySQL Workbench,建立一個連接Connection:localhost

建立新的Schema,命名為xwiki,并設(shè)置字符集為:utf8mb4 和 utf8mb4_bin

然后到 Query1 (或者M(jìn)ySQL控制臺都行)輸入下面的指令并執(zhí)行:
CREATE USER 'xwiki'@'localhost' IDENTIFIED BY 'xwiki';
grant all privileges on *.* to xwiki@localhost;

4、XWiki 安裝配置
下載 XWiki 壓縮包:
XWiki:xwiki-platform-distribution-war-15.1.war
XWiki初始化主題 .xip 包:xwiki-platform-distribution-flavor-xip-15.1.xip
將 .war 包解壓到 Tomcat\webapps\xwiki 文件夾下(用解壓縮應(yīng)用直接解壓 .war 包),可以得到以下文件:

接下來需要配置兩個文件:
1、打開 Tomcat\webapps\xwiki\WEB-INF\xwiki.properties,找到 environment.permanentDirectory 字段,這個路徑就會是以后Wiki數(shù)據(jù)存儲的路徑
將其解除注釋(去掉前面的#號)設(shè)置路徑為你希望存儲Wiki數(shù)據(jù)的路徑
environment.permanentDirectory = 數(shù)據(jù)路徑

2、打開 Tomcat\webapps\xwiki\WEB-INF\hibernate.cfg.xml,配置XWiki與MySQL數(shù)據(jù)庫連接
找到 hibernate.connection.url 的配置,將這部分字段注釋或刪掉,改為:
<property name="connection.url">jdbc:mysql://localhost/xwiki</property> <property name="connection.username">xwiki</property> <property name="connection.password">xwiki</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.useUnicode">true</property> <property name="connection.characterEncoding">UTF-8</property>

最后解壓前面下載的 flavor-xip,將解壓縮得到的文件,放到前面配置的XWiki數(shù)據(jù)data存儲路徑下:

到這里,XWiki就應(yīng)當(dāng)能夠開始運(yùn)行了。
打開 Tomcat\bin\startup.bat,然后打開網(wǎng)頁?http://localhost:8080/xwiki
如果看到XWiki的配置界面,前面的流程就算成功了。

接下來按照XWiki的提示,注冊管理員賬號。(這個賬號是最高權(quán)限的管理員賬號,平時不需要的時候可以用普通賬號登錄)

接下來到XWiki的初始化主題,點(diǎn)擊下面的Flavor,然后點(diǎn)擊Install
由于前面用xip離線包提前獲取了需要下載的文件,所以這里可以跳過下載,直接開始下一步安裝



安裝好后,點(diǎn)擊下一步就可以來到開頭的Wiki界面。(當(dāng)然,你沒有貓,現(xiàn)在界面也還沒有漢化)

5、XWiki中文配置 與 搜索引擎中文配置
安裝好 XWiki 后,會看到界面都是英文,還需要配置中文。
找到右側(cè)側(cè)邊欄,點(diǎn)擊個人頭像,然后找到 Administer Wiki,然后到左側(cè),搜索 local,點(diǎn)擊下面的 Localization,進(jìn)行本地化配置。


將紅框部分的,支持語言 和 默認(rèn)語言,都配置為 中文(中國),點(diǎn)擊Save就可以看到界面漢化了。


XWiki中文配置,還只是進(jìn)行了界面的漢化。實(shí)際使用會發(fā)現(xiàn),搜索時還搜不到中文,這時候可以:
1、在查詢配置中,將搜索引擎改為Database(但這種辦法會缺少搜索細(xì)節(jié)、高亮提示等信息):

2、對Solr搜索引擎進(jìn)行中文配置:
先關(guān)閉 Wiki 和 Tomcat。
下載中文分詞器:lucene-analyzers-smartcn-8.9.0.jar
將下載好的 .jar 文件,放入XWiki數(shù)據(jù)目錄下的: Data數(shù)據(jù)路徑\store\solr\search\lib 中

然后配置文件:Data數(shù)據(jù)路徑\store\solr\search\conf\managed-schema
在文件最后加上以下配置:
<!-- smartcn分詞器 -->
<dynamicField name="*_zh" type="text_smartcn" indexed="true" stored="true" multiValued="true" />
<dynamicField name="*_zh_CN" type="text_smartcn" indexed="true" stored="true" multiValued="true" />
<dynamicField name="*_zh_TW" type="text_smartcn" indexed="true" stored="true" multiValued="true" />
<!-- smartcn分詞器 -->
<fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>

現(xiàn)在再打開 Tomcat,訪問Wiki,等待搜索引擎索引完成,就能搜索中文了。

