XWiki_安裝和基礎配置企業級知識庫

背景

在平時的工做中,把常規工做進行文檔整理很是重要,不管是平時工做處理或是工做交接,實時的維護文檔資料能夠提升工做效率。若是採用傳統的TXT文檔或者Word文檔來記錄的話修改查詢都不太方便,採用在線Wiki能夠更好的讓你們實時地查看或者修改文檔資料。java

在開源Wiki系統中,XWiki是作的最好的產品之一。由於它提供的功能與Confluence的功能很是類似,不須要學習任何語法格式,能夠直接在線像編輯Word同樣編輯WIKI頁面。經過配置插件和擴展,還能夠實現包括Markdown語法以內的各類延展功能。mysql

本文僅記錄必須的安裝步驟,更完整的信息請參考官方手冊web

軟件版本

CentOS 7sql

OpenJDK 1.8數據庫

MySQL 5.7apache

Tomcat 7.0.90tomcat

XWiki 10.10bash

準備工做

創建數據庫和用戶

生產環境下,咱們須要把元數據保存在外部的RDBMS中。咱們先在MySQL中創建用戶和庫。服務器

PS:本文不涉及MySQL的安裝,若是須要能夠參考網上文章網絡

-- 創建對應的DB和User
drop user xwiki;
drop database if exists xwiki;

-- 注意修改用戶名和密碼
create database xwiki default charset utf8;
grant all privileges on xwiki.* to 'xwiki'@'%' identified by 'xwiki'; 
flush privileges;
複製代碼

安裝OpenOffice

爲了在XWiki中實現導入導出Office Word文檔,須要單獨安裝OpenOffice,並在XWiki中進行調用。

PS: 使用yum安裝的OO目錄是在 /usr/lib64/libreoffice/ ,記錄下來後面要配置

yum install -y libreoffice libreoffice-headless
複製代碼

創建OS用戶

根據運維規範,咱們須要使用一個獨立的用戶來運行XWiki。這裏先創建用戶和相關目錄。

# 新建用戶
useradd xwiki
passwd xwiki

# 創建用於保存XWiki附件的目錄
mkdir /data/xwiki_data
chown -R xwiki.xwiki /data/xwiki_data
複製代碼

配置Tomcat

由於XWiki運行過程當中對容器有一些特殊的配置要求,因此咱們使用一個獨立的Tomcat來承載XWiki服務。若是沒有現成的,咱們這裏從新安裝一個。

### 使用二進制安裝
unzip apache-tomcat-7.0.90.zip -d /usr/local/
mv /usr/local/apache-tomcat-7.0.90/ /usr/local/xwiki_app/
chown -R xwiki.xwiki /usr/local/xwiki_app

### 設置字符集爲utf8
vi /usr/local/xwiki_app/conf/server.xml

#
<Connector port="8080"  
	URIEncoding="UTF-8" 
	protocol="HTTP/1.1"
	connectionTimeout="20000"
	redirectPort="8443" />
	
### 必須修改默認JVM內存大小,不然啓動XWiki後會報錯。
### 由於咱們使用的是二進制安裝Tomcat,因此修改bin/catalina.sh 這個文件。
### 若是是yum安裝的須要修改如/etc/tomcat7/tomcat7.conf 這個文件 (未驗證yum安裝這種方法)
vi /usr/local/xwiki_app/bin/catalina.sh

# 在開頭增長這樣一句
JAVA_OPTS="-Xmx2048m"

複製代碼

安裝和啓動前配置

下載安裝

### 下載指定版本
wget http://nexus.xwiki.org/nexus/content/groups/public/org/xwiki/platform/xwiki-platform-distribution-war/10.10/xwiki-platform-distribution-war-10.10.war

### 安裝到webapps目錄下
unzip xwiki-platform-distribution-war-10.10.war -d /usr/local/xwiki_app/webapps/xwiki/

### 拷貝數據庫驅動程序
wget http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.26/mysql-connector-java-5.1.26.jar

cp mysql-connector-java-5.1.26.jar /usr/local/xwiki_app/webapps/xwiki/WEB-INF/lib/
複製代碼

配置數據庫

默認狀況下XWiki使用的是自帶的HSQLDB,咱們須要修改爲使用外部MySQL。

### 數據庫相關的配置在hibernate.cfg.xml
vi /usr/local/xwiki_app/webapps/xwiki/WEB-INF/hibernate.cfg.xml

# 首先要註釋掉 Configuration for the default database 這部分,具體操做略

# 取消註釋並修改 MySQL configuration 這部分。修改IP,Port,User,Passwd信息
    <property name="connection.url">jdbc:mysql://x.x.x.x:3306/xwiki?useSSL=false</property>
    <property name="connection.username">xwiki</property>
    <property name="connection.password">xxxxxx</property>

複製代碼

配置OpenOffice

前面的步驟中,咱們已經安裝了OO,在XWiki中進行配置就能夠在啓動階段自動鏈接OO服務器。

### 
vi /usr/local/xwiki_app/webapps/xwiki/WEB-INF/xwiki.properties

# 修改下列信息
openoffice.autoStart=true
openoffice.homePath=/usr/lib64/libreoffice/
複製代碼

配置附件管理

默認狀況下,XWiki使用數據庫存儲附件,因此對文件尺寸有必定限制。使用文件系統存儲能夠上傳更大的附件,因此咱們修改成文件系統。

### 啓用文件系統保存附件
vi /usr/local/xwiki_app/webapps/xwiki/WEB-INF/xwiki.cfg

# 修改下列信息
xwiki.store.attachment.hint = file
xwiki.store.attachment.versioning.hint = file
xwiki.store.attachment.recyclebin.content.hint=file
xwiki.store.attachment.recyclebin.hint = file
xwiki.store.recyclebin.content.hint = file

### 指定存放附件文件的目錄
vi /usr/local/xwiki_app/webapps/xwiki/WEB-INF/xwiki.properties

# 指定前面建立的目錄
environment.permanentDirectory=/data/xwiki_data/
複製代碼

啓動後初始化配置

首次啓動XWiki的過程當中,還須要完成一系列配置

### 首次安裝Tomcat後須要賦予sh文件執行權限
find /usr/local/xwiki_app/ -name *.sh | xargs chmod +x

### 啓動Tomcat
sh /usr/local/xwiki_app/bin/startup.sh
複製代碼

整個網頁版的安裝工做都在頁面中完成,跟着嚮導一步一步操做。

image-20181211164006079

配置管理員帳號

image-20181211164110063

安裝經常使用插件

標準插件包的安裝過程比較慢,耐心等待十幾分鍾到幾十分鐘。。。(國外網站,你懂滴)

PS:若是由於網絡緣由沒法在線安裝擴展和插件,可使用離線安裝的方式。

image-20181211164253921

看到下面的界面,就說明安裝成功了。

image-20181211174529633

配置Markdown

默認不支持Markdown語法,因此咱們須要安裝額外的擴展來實現。

image-20181211174819234

擴展安裝成功後,還須要在編輯器裏面啓用語法支持。以下圖的配置,咱們只保留了Markdown語法。

image-20181211175537996

配置自定義LOGO

公司內部使用,因此仍是換上公司的LOGO比較規範。

image-20181211180006950

配置中文界面

XWiki界面原生支持多語言,不過通過簡單使用後發現,界面的中文化並不徹底,顯得有點LOW,還不如用英文。

image-20181211180520436

平常維護

新建組和用戶

創建組和用戶很簡單,新建的全部用戶都會默認屬於一個叫 XWikiAllGroup 的組。從權限管理的角度出發,咱們須要把每一個用戶歸屬到不一樣的組當中。

image-20181211181330814

設置目錄權限

公司內部使用的XWiki,在權限管理上要知足下列要求

  • Admin組成員擁有系統管理權限;
  • 每一個組有專屬的文檔目錄(如運維組有本身專屬的根目錄,技術組同理);
  • 普通用戶歸屬於各自的組;
  • 註冊用戶和匿名用戶擁有全部文檔的讀權限(特殊要求的除外);
  • 組成員對組目錄下的文檔都有編輯權限;
  • 文檔做者及指定管理人員有文檔的刪除權限;

舉例,權限管理矩陣關係以下

組 \ 目錄 DIR-01 (G01根目錄) DIR-02(G02根目錄)
Admin full full
Group-01 read, write read
Group-02 read read, write

全局權限

爲了實現後面基於目錄的細粒度控制,首先在全局取消默認的用戶權限。以下圖

image-20181212112420529

目錄權限

以Dir01爲例,選中指定目錄後點選管理頁面,以下圖

image-20181212112608990

爲避免用戶誤操做修改根目錄內容,先在頁面級別取消組G01的編輯權限,以下圖

image-20181212112751251

而後給組G01賦予Dir01下級全部子目錄的讀寫權限,以下圖

image-20181212112911968

備份恢復

具體的備份腳本本文暫不提供,僅說明安裝前文進行安裝以後須要進行備份的部分。完整的備份恢復請參考官方手冊

  • MySQL中的xwiki庫。這裏保存的是全部基礎數據。
  • /data/xwiki_data/ 目錄。這裏保存的是全部附件文件,以及一些運行時數據。
  • /usr/local/xwiki_app/webapps/xwiki/ 目錄。這裏是XWiki應用,由於修改了Tomcat的默認配置,因此建議把整個 /usr/local/xwiki_app/ 目錄進行備份。

Troubleshooting

離線安裝標準擴展包

此處記錄必須操做,更多詳細的原理和流程請參看官方手冊

### 下載標準擴展
wget http://nexus.xwiki.org/nexus/content/groups/public/org/xwiki/platform/xwiki-platform-distribution-flavor-xip/10.10/xwiki-platform-distribution-flavor-xip-10.10.xip

### 解壓縮xip文件
unzip xwiki-platform-distribution-flavor-xip-10.10.xip -d /data/xwiki_data/extension/repository/

### 重啓XWiki
sh /usr/local/xwiki_app/bin/shutdown.sh
sh /usr/local/xwiki_app/bin/startup.sh
複製代碼

Tomcat版本問題

在使用Tomcat 8.5.31測試過程當中發現,後臺會出現字符集問題。換用7.0.90版本後問題再也不出現。

PS:在官方手冊中這裏有對於Tomcat版本的需求,可是並無說8.5.31有問題。

警告 [xwiki/bin/download/Main/SolrSearch/dark-grey-disclosure-arrow-down.png] org.apache.catalina.connector.Response.setCharacterEncoding The encoding [] is not recognised by the JRE
 java.lang.IllegalArgumentException: java.io.UnsupportedEncodingException: The character encoding [] is not supported
複製代碼

重啓OpenOffice

在測試過程當中發現,若是XWiki意外掛掉,在後續啓動的過程當中XWiki不能自動鏈接到OO服務器上。這個時候XWiki的基本功能都是正常的,可是不能導入導出Office文檔。

若是在管理界面重啓OO,會出現以下圖的錯誤信息

image-20181213103756541

查看系統日誌catalina.out中會出現相似這樣的錯誤信息

# 相似這樣的錯誤信息
Caused by: java.lang.IllegalStateException: a process with acceptString 'socket,host=127.0.0.1,port=8100' is already running; pid 9099
	at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.java:72)
複製代碼

這個時候的解決辦法是,根據錯誤信息中的OO進程號(如上圖中的pid),手工殺掉OO進程。

#### 查找確認一下端口號對應的進程
lsof -i:8100

#
COMMAND    PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
soffice.b 9099 xwiki   17u  IPv4 2322562      0t0  TCP localhost:xprint-server (LISTEN)

### 手工殺掉OO進程
kill -9 9099
複製代碼

而後在管理頁面重啓OO便可恢復。

相關文章
相關標籤/搜索