一直在浩瀚无垠的开源海洋中探索好用的wiki的开源软件,这里列举几个相对还不错的:MediaWiki、DokuWiki、MinDoc、BookStack、wikijs等。
整体感觉跟自己企业使用的confluence体验感相差不少,没有遇到很心仪的开源wiki让我很有意愿在自己本地搭建起来准备长期使用,用来记录些日常研发的各种事项,亦或是推荐给不想购买confluence lisense的老铁们使用。
在选择上个人偏向是:
(1)Java开发
(2)支持mysql
(3)体验不能比confluence差
碎碎念:选择Java是因为这是本人的第一开发语言
近日机缘到了,从github上淘到了一款极其先进的wiki软件:xwiki,以下是官网放出的对比,供大家参考:
https://www.xwiki.org/xwiki/bin/view/Compare/XWiki-vs-Confluence/
https://www.xwiki.org/xwiki/bin/view/Compare/XWiki-vs-MediaWiki/
之所以称之为新一代wiki,是因为它除了传统wiki具备的内容协作之外,还可以创建应用程序协作例如: 博客、文件管理、会议、论坛、日程、任务等。
这里说下缺点:
- 系统复杂度太高
- 插件太多(生态很好,安装有点痛苦)
- 编译太慢(用了2个多小时)
- 对二次开发不友好(即便是简单的改成springboot)
- 没有中文文档
看到这里想进一步了解庐山真面目的童鞋可点击下方链接直达:
https://www.xwiki.org/xwiki/bin/view/Main/
下面正式进入教程部分,xwiki支持的安装方式有以下几种:
- docker
- war
- .deb包
- 独立包
其中独立包是官方打包好的可以拿来就用的
本着万变不离其宗的技术准则,我从源码编译打包。过程很曲折就不在这里啰嗦。官网可以直接下载打包好的war包。
源代码编译
不建议尝试,相当耗时间。这里上图为证。
有种我上次编译打包thingsboard的感觉。
实际生成war的是xwiki-platform-distribution 这个模块下的才是真正打包可运行war包的。有精力的可以学习下。
以上废话如果只是想知道怎么使用,接下来就开始正式使用教程。注意本教程默认读者都不是新手。
软件安装
step1 基本环境准备
1.jdk
8+即可
2.mysql
也可以是其他数据库,由于我本机安装的是mysql就以mysql为例了。
3.tomcat
不能是10.0以上版本,servlet 不兼容。
step2 配置
数据库配置
- 创建数据库: xwiki
- 创建用户: xwiki/xwiki
- 数据库授权: 授权当前用户对当前库操作的所有权限
tomcat配置
- 如果机器内存小的,注意设置tomcat的内存,不能小于2G
- 将下载下来的war包重命名为xwiki.war
- 放到tomcat webapps目录下,以我的机器为例
apache-tomcat-9.0.80/webapps/
- 手动解压或者执行tomcat启动命令自动解压
日志配置
以为本机为例,项目的日志位置如下:
apache-tomcat-9.0.80/webapps/xwiki/WEB-INF/classes
修改该目录下logback.xml
如果不修改日志文件,代码抛异常的时候连东西南北都分不清了。默认的还只有控制台日志,这里需要自定义打印文件日志和日志目录在抛异常后可以去自己日志文件目录看日志排查原因。
以下是本人的配置文件,仅供参考。
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_HOME}/web-info.log</File>
<encoder>
<pattern>${PATTERN}</pattern>
<charset>${CHARSET}</charset>
</encoder>
<!-- 只输出level级别以上的日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<!--日志按天备份-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/web-info.log.%d{yyyy-MM-dd}</fileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>7</MaxHistory>
</rollingPolicy>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="DEBUG" />
<appender-ref ref="INFO" />
<appender-ref ref="ERROR" />
</root>
hibernate配置
默认数据库链接不是mysql这里使用mysql需要自己配置
- 下载mysql驱动,放到WEB-INF/lib目录
注释掉默认的数据库配置,打开mysql的配置,并修改为自己真实的配置。我的配置如下
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/xwiki?useSSL=false</property>
<property name="hibernate.connection.username">xwiki</property>
<property name="hibernate.connection.password">xwiki</property>
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="hibernate.dbcp.poolPreparedStatements">true</property>
<property name="hibernate.dbcp.maxOpenPreparedStatements">20</property>
<property name="hibernate.connection.charSet">UTF-8</property>
<property name="hibernate.connection.useUnicode">true</property>
<property name="hibernate.connection.characterEncoding">utf8</property>
<mapping resource="xwiki.hbm.xml"/>
<mapping resource="feeds.hbm.xml"/>
<mapping resource="instance.hbm.xml"/>
<mapping resource="notification-filter-preferences.hbm.xml"/>
<mapping resource="mailsender.hbm.xml"/>
经过以上配置后,启动tomcat,访问localhost:8080/xwiki会进入初始化配置页。
点击continue
我的Mac进入发烧模式
查看资源占用
这玩意对cpu消耗有点吓人,压不住了。
因此最佳方案是使用docker或者使用官方打包好的jetty版本的。
本教程到此就结束了,如有任何问题欢迎留言。
如有需要帮忙寻找开源软件需求,请加本人微信私聊。