最近两个月为项目组搭建了xwiki在线知识库。期间遇到了各种各样的困难,好在都被一一克服了。在此记录下整个过程,以方便日后翻阅。
搭建wiki之前需要准备的工具
- Tomcat,下载windows安装包类型,安装完成后以服务的形式运行
- xwiki独立安装包
- XWiki WAR
- java runtime
- mysql
开始安装:
- 安装Tomcat
- 在Tomcatwebapps目录下新建xwiki文件夹,并将XWiki War解压缩后放入其中
- 编辑Tomcatconfserver.xml文件,<Connector port="8080" ... URIEncoding="UTF-8"/>
- 配置catalina.policy文件,参考这里
- 安装mysql数据库,创建用户数据库xwiki以及用户xwiki
- 编辑TomcatwebappsxwikiWEB-INFhinernate.cfg.xml文件,参考这里
- 将mysql-connector-java*.jar拷贝到TomcatwebappsxwikiWEB-INFlib目录
- 运行TomcatinTomcat8w.exe启动或停止服务
由于使用Tomcat时,CKEditor一直无法使用,所以,请忽略上面的步骤。我采用了下面的策略:
- 安装了官方发布的独立安装包,即jetty+hsql这种组合
- 安装mysql,并建立数据库
- 配置WEB-INFhibernate.cfg.xml文件,取消对mysql的注释
- 不知是由于我自己的网络质量差还是其他原因,我始终没有通过在线的方式完成安装,而是通过手动导入XAR的方式完成安装
即:我使用了jetty+mysql的组合方式。
其实,整个过程参考官方的说明即可。
若是在线安装扩展包,可能很慢很慢,所以可以尝试另一种途径:下载离线包,然后再导入。
离线安装包的下载链接为:
maven.xwiki.org/releases/org/xwiki/
2017.04.12 00:03更新
添加office importer
1.安装open offcie,安装到C:OpenOffice,路径中最好不要有空格
2.修改xwiki.properties文件
openoffice.serverType=0
openoffice.serverPort=8100
openoffice.autoStart=true
openoffice.homePath=C://OpenOffice
openoffice.profilePath=C://OpenOffice
openoffice.maxTasksPerProcess=50
openoffice.taskExecutionTimeout=30000
3.在OpenOffice安装目录下添加user文件夹
之后即可导入word文档
导出pdf文件时需要注意的地方
xwiki在导出pdf文件时需要特定的字体存在,字体文件保存在WEB-INFfonts文件夹中。但是9.2这个版本需要在fop-config.xml文件中特别说明以下字体文件夹的全路径
<fonts>
<!-- Fonts located in WEB-INF/fonts/ are automatically loaded -->
<directory>D:xwikiwebappsxwikiWEB-INFfonts</directory>
<!-- Load system fonts -->
<!-- <auto-detect/> -->
</fonts>
而且需要在WEB-INFclasses路径下保存xhtml2fo.xsl以及fop-config.xml文件。
导入/导出页面需要注意的事项
在备份xwiki时,可以选择先导出所有页面,再导入。但是,导入页面时有几个地方需要注意:
- 如果XAR包的大小超过了32MB,需要修改xwiki的配置。配置方式请参见此处。
- 如果XAR中包含的页面比较多。xwiki会在导入时提示Server Error,控制台中的异常信息是“form too many keys”。解决办法是:不要一次性将所有页面都导入,而是分多次导入页面。
LDAP
http://extensions.xwiki.org/xwiki/bin/view/Extension/LDAP/Authenticator/
CKEditor
通过jar -cvfM D:xwikickeditor.jar D:META-INF命令,将修改后的ckeditor-webjar.jar放到xwiki中。
修改方法是:将lang文件夹下的zh.js和zh-cn.js修改为统一的内容,然后清空客户端的浏览器缓存。
文档
http://platform.xwiki.org/xwiki/bin/view/SRD/Navigation?xpage=embed
http://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/API/