使用开源软件XWiki搭建安装公司内部Wiki系统

时间:2023-01-15 23:14:55

背景无用赘述,主要解决文档协作编辑。

基础环境准备

  • 系统环境:CentOS Linux release 7.2.1511 (Core) 。使用 cat /etc/redhat-release 命令查看。
  • 运行环境:
    • tomcat:
      下载 wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.43/bin/apache-tomcat-8.0.43.tar.gz
      解压 tar -xzf apache-tomcat-8.0.43.tar.gz
    • java
      yum -y install java-1.8.0-openjdk
    • 中文字体库
      yum install autocorr-zh.noarch libreoffice-langpack-zh-Hans.x86_64 libreoffice-langpack-zh-Hant.x86_64
    • xwiki
      wget http://download.forge.ow2.org/xwiki/xwiki-enterprise-web-9.2.war

操作步骤

  • tomcat相关

    • 放置war包:在tomcat下的webapps目录下,创建xwiki目录,并将xwiki-enterprise-web-9.2.war拷贝到该目录下(命令行下使用cp进行拷贝);使用unzip xwiki-enterprise-web-6.3.war进行解压。
    • 修改server.xml:

      <Connector port="8092" 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"/>
  • 数据库相关

    • 下载MariaDB,并启动

      yum install mariadb-server -y
      systemctl start mariadb.service
      systemctl enable mariadb.service
    • 配置MariaDB
      推荐使用InnoDB存储引擎

      • 配置字符集
        查看 /etc/my.cnf 文件内容,其中包含一句 !includedir /etc/my.cnf.d 说明在该配置文件中引入 /etc/my.cnf.d 目录下的配置文件。

        • 使用vi server.cnf命令编辑 server.cnf 文件,在 [mysqld] 标签下添加

          init_connect='SET collation_connection = utf8_unicode_ci' 
          init_connect='SET NAMES utf8'
          character-set-server=utf8
          collation-server=utf8_unicode_ci
          skip-character-set-client-handshake

          如果 /etc/my.cnf.d 目录下无 server.cnf 文件,则直接在 /etc/my.cnf 文件的 [mysqld] 标签下添加以上内容。

        • vi client.cnf 命令编辑 /etc/my.cnf.d/client.cnf 文件,在 [client] 标签下添加
          default-character-set=utf8
        • vi mysql-clients.cnf 命令编辑 /etc/my.cnf.d/mysql-clients.cnf 文件,在 [mysql] 标签下添加
          default-character-set=utf8

        配置完成后 systemctl restart mariadb 重启服务

      • 创建数据库
        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
        /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
      • 配置/webapps/xwiki/WEB-INF/hibernate.cfg.xml

        将默认配置的给注释掉,然后将MySQL那一段去掉注释。一定要把用户名和密码换成本地的


        <!-- 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="connection.useUnicode">true</property>
        <property name="connection.characterEncoding">UTF-8</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"/>
  • Office Server

    • 下载 yum install libreoffice libreoffice-headless
    • 编辑xwiki.properties
      openoffice.autoStart=true
      openoffice.homePath=/usr/lib64/libreoffice/
  • 管理附件

    默认情况下,XWIKI使用数据库存储附件,上传的附件最大为30M左右,同时MySQL的配置文件my.cnf中要设置max_allowed_packet为最大值的3倍左右,因为存储历史版本也会耗费空间
    使用文件系统存储可以上传更大的附件,XWIKI使用一个临时目录来存储从数据库中调出的图片或附件。
    附件的存储目录在xwiki.properties中设定,不可以随意增加或删除这个目录下的内容,因为每个附件在数据库中都有相应的元数据


    #-# 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文件中设置

    xwiki.store.attachment.hint=file
    xwiki.store.attachment.versioning.hint=file
    xwiki.store.attachment.recyclebin.hint=file

参考文献