开源框架XWIKI搭建介绍

article/2025/8/27 13:47:41

原文地址:http://john88wang.blog.51cto.com/2165294/1605787

一 应用背景描述

  在平时的运维工作中,把常规工作进行文档整理非常重要,无论是平时工作处理或是工作交接,实时的维护文档资料可以提高工作效率。如果采用传统的TXT文档或者Word文档来记录的话修改不太方便,采用在线WIKI可以更好的让大家实时地查看或者修改文档资料。

  Wiki系统做得比较好的是Confluence,但是Confluence需要购买License才能使用,网上也有破解版本的。对比多个开源WIKI系统,我们选择XWIKI作为我们的WIKI系统,因为它提供的功能与Confluence的功能非常相似,不需要学习任何语法格式,可以直接在线像编辑Word一样编辑WIKI页面。

  XWIKI有以下几个显著的功能特性:

  1)多语言支持,可以支持英文,中文,韩文,日文等

  2)可以上传附件

  3)支持LDAP方式认证登录

  4)可以将Office文档直接导入为WIKI页面,也可以将WIKI页面导出成Office文档或PDF文档

  5)使用者不需要学习任何WIKI语法格式,直接使用WYSIWYG编辑器进行WIKI页面的编辑。

  6)具有版本控制管理的功能,并且可以回退到之前的历史版本

  7)界面友好,功能丰富,内置搜索引擎,可以进行站内搜索。

  8)用户和组权限管理,空间和页面的权限管理

  9)邮件通知功能

  10)支持多种WIKI的语法格式,如Confluence,Markdown,Jspwiki,meidawiki,twiki等


二 安装XWIKI

目前XWIKI官方最新版本是6.3,可以单独安装也可以结合其他WEB容器如tomcat安装。这里我们使用tomcat作为容器安装XWIKI

各个版本的安装方法都类似


本文使用的是CentOS6系列操作系统

1)安装Java和Tomcat

yum -y install java-1.7.0-openjdk

安装中文字体库

yum install autocorr-zh.noarch    libreoffice-langpack-zh-Hans.x86_64 libreoffice-langpack-zh-Hant.x86_64   

wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57-fulldocs.tar.gz

wget http://download.forge.ow2.org/xwiki/xwiki-enterprise-web-6.3.war


2)进入到tomcat的安装目录下,根据自己的tomcat安装目录而定。

cd /data/app_platform/xwiki_tomcat/webapps/

mkdir xwiki

将xwiki-enterprise-web-6.3.war放到xwiki目录下

cd /data/app_platform/xwiki_tomcat/webapps/xwiki/

unzip xwiki-enterprise-web-6.3.war


3)编辑tomcat的server.xml修改8080端口描述设置编码为UTF8,并允许gzip压缩

1
2
3
4
5
6
7
   <Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443"
                URIEncoding="UTF-8"
                compression="on"
                compressionMinSize="2048"
                compressableMimeType="text/html,text/xml,text/css,text/javascript,application/x-javascript"/>


4)配置JVM的内存大小和安装路径

如果是通过yum安装的tomcat需要修改如/etc/tomcat6/tomcat6.conf 这个文件

如果是使用的tomcat源码包安装,则修改bin/catalina.sh 这个文件

1
2
JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk.x86_64/"
JAVA_OPTS="-Xmx300m -XX:MaxPermSize=196m"


5)配置Nginx转发

默认XWIKI通过类似http://xxxx:8080/xwiki/

的方式访问,可以配置Nginx转发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
     listen       80;
     server_name  xwiki.xxx.xxx;
     root  /data/app_platform/xwiki_tomcat/webapps/xwiki/;
     location / {
         rewrite ^ $scheme://$server_name/xwiki$request_uri? permanent;
     }
     location ^~ /xwiki {
# If path starts with /xwiki - then redirect to backend: XWiki application in Tomcat
        proxy_pass http://localhost:8080/xwiki;
     }
}


6)配置MySQL数据库

MySQL版本建议使用5.0以上,不要使用MyISAM存储引擎,因为MyISAM不支持事务处理,推荐使用InnoDB存储引擎。


创建XWIKI数据库

create database xwiki default character set utf8 collate utf8_bin;  


赋予相应的权限

grant all privileges on xwiki.* to xwiki identified by 'xwiki';

flush privileges;


下载MySQL JDBC Driver Jar放到/data/app_platform/xwiki_tomcat/webapps/xwiki/WEB-INF/lib目录下

wget http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar


编辑/data/app_platform/xwiki_tomcat/webapps/xwiki/WEB-INF/hibernate.cfg.xml

将默认的给注释掉,然后将MySQL那一段去掉注释

1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- MySQL configuration.
          Uncomment if you want to use MySQL and comment out other database configurations.
     -->
     <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="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
     <property name="dbcp.ps.maxActive">20</property>
     <mapping resource="xwiki.hbm.xml"/>
     <mapping resource="feeds.hbm.xml"/>
     <mapping resource="activitystream.hbm.xml"/>
     <mapping resource="instance.hbm.xml"/>


7)配置Office Server

 yum install libreoffice   libreoffice-headless

编辑xwiki.properties

1
2
openoffice.autoStart=true
openoffice.homePath=/usr/lib64/libreoffice/


wKioL1S-C-ii55OxABznrC08fx8243.bmp



8)XWIKI字符集编码配置

/data/app_platform/xwiki_tomcat/webapps/xwiki/WEB-INF/web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  <filter>
     <filter-name>Set Character Encoding</filter-name>
     <filter-class>org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter</filter-class>
     <!-- The encoding to use. This must be the same as the one in xwiki.cfg (hopefully only one
          encoding will be used later). -->
     <init-param>
       <param-name>encoding</param-name>
       <param-value>UTF-8</param-value>
     </init-param>
     <!-- Whether to ignore and override the encoding specified by the client, when this actually
          happens. For example, AJAX requests made through XmlHttpRequests specify UTF-8. When this
          is set to false, the custom encoding is used only when there wasn't any encoding specified
          by the client. -->
     <init-param>
       <param-name>ignore</param-name>
       <param-value>false</param-value>
     </init-param>
   </filter>


/data/app_platform/xwiki_tomcat/webapps/xwiki/WEB-INF/xwiki.cfg


1
2
3
#-# The encoding to use when transformin strings to and from byte arrays. This causes the jvm encoding to be ignored,
#-# since we want to be independend of the underlying system.
xwiki.encoding=UTF-8


hibernate.cfg.xml中添加

1
2
     <property name="connection.useUnicode">true</property>
     <property name="connection.characterEncoding">UTF-8</property>


MySQL的配置文件my.cnf

1
2
3
4
5
6
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_bin


9)管理附件

默认情况下,XWIKI使用数据库存储附件,上传的附件最大为30M左右,同时MySQL的配置文件my.cnf中要设置max_allowed_packet为最大值的3倍左右,因为存储历史版本也会耗费空间

使用文件系统存储可以上传更大的附件,XWIKI使用一个临时目录来存储从数据库中调出的图片或附件。


附件的存储目录在xwiki.properties中设定,不可以随意增加或删除这个目录下的内容,因为每个附件在数据库中都有相应的元数据

1
2
3
4
5
#-# Note if the system property xwiki.data.dir is set then this property is not used.
#-# If neither the system property nor this configuration value here are set then the Servlet container's temporary
#-# directory is used; This is absolutely not recommended since that directory could be wiped out at any time and you
#-# should specify a value.
environment.permanentDirectory=/data/xwiki/


最好在第一次运行XWIKI的时候就设定好附件的存储方式

在xwik.cfg文件中设置

1
2
3
xwiki.store.attachment.hint=file
xwiki.store.attachment.versioning.hint=file
xwiki.store.attachment.recyclebin.hint=file


10)通过xwiki.xxx.xxx的方式可以直接访问XWIKI,然后进入安装页面


wKioL1S9JfPiXW3FAAIsEUrgXXI255.bmp



wKiom1S-EVOCCoC0AAC-1uTXQvM416.bmp

wKioL1S-EiiCRoEfAAH2Upis_Ro601.bmp




参考文档:

http://www.xwiki.org/xwiki/bin/view/Main/WebHome

http://enterprise.xwiki.org/xwiki/bin/view/Main/Download

http://platform.xwiki.org/xwiki/bin/view/AdminGuide/

https://www.atlassian.com/software/confluence/

http://en.wikipedia.org/wiki/Comparison_of_wiki_software

http://download.forge.objectweb.org/xwiki/



http://chatgpt.dhexx.cn/article/fHTRrbQC.shtml

相关文章

xwiki安装使用以及问题解决

环境要求&#xff1a; jdk1.8 安装步骤&#xff1a; xwiki的war包下载地址&#xff1a;https://www.xwiki.org/xwiki/bin/view/Download/DownloadVersion/?projectVersion10.11.2 第一步&#xff1a;在tomcat的webapps文件下创建xwiki文件夹&#xff0c;将war包上传至xwik…

CentOS 7安装XWiki

目录 前言 安装步骤 安装JDK 11 安装Tomcat 9 安装xwiki 13.10.10 安装Postgres 13 设置xwiki数据路径 参考 前言 本文介绍如何在CentOS 7安装xwiki。JDK 11 Tomcat 9 xwiki 13 Postgres 13。CentOS用vagrant虚拟化的。本文代码已开源 安装步骤 安装xwiki有四个主…

XWiki开发指南3-自定义扩展jar包

简介 本文将介绍如何编写一个提供给后台接口并使用脚本在前端页面调用。 使用maven下载XWiki提供的模板项目 保证你的maven已经安装&#xff0c;然后执行命令 mvn archetype:generate \-DarchetypeArtifactIdxwiki-commons-component-archetype \-DarchetypeGroupIdorg.xwi…

xwiki部署_开源Wiki应用平台---XWiki的部署

部署所需要做的工作&#xff1a; 1.安装好MySQL(这里使用的是MySQL5.6.23)&#xff0c;修改MySQL的my.ini配置文件(我的是手动安装版&#xff0c;所以在MySQL的安装目录 下)&#xff0c;在[mysqld]下添加以下配置&#xff1a; max_allowed_packet32M 这里是为了增大mysql serve…

XWIKI的搭建

原文地址&#xff1a;https://my.oschina.net/gywbest/blog/780569 一 应用背景描述 在平时的运维工作中&#xff0c;把常规工作进行文档整理非常重要&#xff0c;无论是平时工作处理或是工作交接&#xff0c;实时的维护文档资料可以提高工作效率。如果采用传统的TXT文档或者Wo…

xwiki部署_xwiki8.2.1安装部署

系统环境centos 6.5 实现方式&#xff1a;xwikinginxtomcatmysql 包获取&#xff1a;http://www.xwiki.org/xwiki/bin/view/Main/Download 版本&#xff1a;xwiki8.2.1 nginx 随意 jdk&#xff1a;必须1.8 tomcat&#xff1a;7或者以上 mysql&#xff1a;5.5或者以上 nginx、jd…

xwiki部署_Linux下Xwiki安装部署详解

一、Xwiki简介 XWiki是一个由Java编写的基于LGPL协议发布的开源wiki和应用平台。XWiki是一款基于java所编写的wiki&#xff0c;它可以运行在如Tomcat&#xff0c;Jetty&#xff0c;JBoss&#xff0c;WebLogic&#xff0c;WebSphere等Servlet容器上并利用关系型数据库(HSQL, MyS…

xwiki部署_xwiki 搭建心得

吐个槽可忽略 这几天不是接到个新活&#xff0c;要把 xwiki 融合到我们的项目里&#xff0c;于是我找到原来负责修改 xwiki 界面的同事&#xff0c;让他把代码给我。等我拿到手一看&#xff0c;我的内心几乎是崩溃的&#xff0c;竟然没有做代码版本控制&#xff0c;全部在初始文…

xwiki

下载war放到tomcat的webapps目录下&#xff1a; http://nexus.xwiki.org/nexus/content/groups/public/org/xwiki/platform/xwiki-platform-distribution-war/11.10.3/xwiki-platform-distribution-war-11.10.3.war 安装参考&#xff1a; https://juejin.im/post/5c1466d0f265…

xwiki使用指南

修改配置&#xff0c;启动超级管理员&#xff0c;启用默认语言。实现汉化&#xff0c;设置权限&#xff0c;禁止外部注册&#xff0c;设置邮箱激活&#xff0c;修改管理员密码&#xff0c;加入新用户。 1.启动超级管理员&#xff0c;编辑xwiki.cfg文件vim /usr/local/XWiki/web…

基于xwiki部署企业内部知识管理平台

1. Xwiki介绍 印象笔记、有道笔记、为知笔记都是挺好的商用笔记知识管理软件&#xff0c;不过有些敏感文件是不太好放到互联网上的。 所以搭建一套内部局域网知识管理平台是非常有意义的&#xff0c;在开源Wiki系统中&#xff0c;XWiki是做的最好的产品之一。因为它提供的功能…

xwiki初步认识

1、xwiki安装 下载xwiki的war包&#xff0c;tomcat&#xff0c;mysql&#xff0c;各自安装配置好。在mysql中建好xwiki库&#xff0c;将war包放入tomcat中&#xff0c;在解压出来的文件中修改hibernate.cfg.xml的数据库连接配置&#xff0c;如2、字符集更改的图中。注意删除war…

Xwiki安装部署详解

一、Xwiki简介XWiki是一个由Java编写的基于LGPL协议发布的开源wiki和应用平台。XWiki是一款基于java所编写的wiki&#xff0c;它可以运行在如Tomcat&#xff0c;Jetty&#xff0c;JBoss&#xff0c;WebLogic&#xff0c;WebSphere等Servlet容器上并利用关系型数据库(HSQL, MySQ…

xwiki安装部署

xwiki 下载&#xff0c;版本选择以及与jdk&#xff0c;servlet容器&#xff0c;数据库和JDBC的版本对应关系&#xff0c;可以参考我另一篇关于这个的文章 https://blog.csdn.net/qq_38417282/article/details/125271765 首先进入xwiki官网 在documentation中找到Admin Guide—…

设计模式之装饰器模式详解

设计模式之装饰器模式详解 文章目录 设计模式之装饰器模式详解一、什么是装饰器模式二、装饰器模式的角色组成三、装饰器模式通用写法示例四、装饰器模式业务中的应用举例五、装饰器模式优缺点 一、什么是装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09; 也称…

TS装饰器

通过本文你可以知道什么 装饰器的发展历程JS和TS装饰器有何不同Angular中的装饰器到底是什么装饰器的定义&#xff0c;语法&#xff0c;作用reflect-meta是什么及如何使用 前言 我们平常开发中或多或少的听说或使用过装饰器&#xff0c;也切身感受到了它带给我们的便利。但是…

python的装饰器(函数装饰器)

作为许多语言都存在的高级语法之一&#xff0c;装饰器是你必须掌握的知识点。 装饰器&#xff08;Decorator&#xff09;&#xff1a;从字面上理解&#xff0c;就是装饰对象的器件。可以在不修改原有代码的情况下&#xff0c;为被装饰的对象增加新的功能或者附加限制条件或者帮…

python装饰器这一篇就够了

前言 什么是装饰器 实现原理 实现效果 适用场景 装饰器&#xff1a; 装饰器的写法 装饰器的拓展 装饰器的模板 什么是装饰器呢&#xff1f; 就是在特定条件下为某些函数再不改动函数体的时候为函数新添加一些功能&#xff0c;这就是装饰器 实现原理&#xff1a; …

【Python】闭包与装饰器

1.闭包 闭包的本质就是函数的嵌套定义&#xff0c;即在函数内部再定义函数 闭包有两种不同的方式&#xff0c;第一种是“返回一个函数名称”&#xff0c;第二种是在函数内部就“直接调用” 闭包的定义&#xff1a;在一个外函数中定义了一个内函数&#xff0c;内函数里运用了…

Python装饰器的通俗理解

看了这篇文章终于搞懂了装饰器&#xff0c;原文有少许错误&#xff0c;但无伤大雅&#xff0c;改正后转载于此&#xff0c;一起学习。 在学习Python的过程中&#xff0c;我相信有很多人和我一样&#xff0c;对Python的装饰器一直觉得很困惑&#xff0c;我也是困惑了好久&#x…