XWiki使用war部署在tomcat9

xwiki部署

官方文档,比较详细。

https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/InstallationWAR/

xwiki是基于java的开源知识库,可以替代Confluence。有多种部署方式,本文使用war方式部署在tomca下,需要提供jdbc驱动jar包,修改WEB-INF/hibernate.cfg.xml,解压xip包,按向导一步步部署即可。xwiki会自动建表。

使用war部署

下载使用最新的tomat9.x

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.100/bin/apache-tomcat-9.0.100.tar.gz

下载xwiki的war部署包及XIP页面风格包

https://www.xwiki.org/xwiki/bin/view/Download/DownloadVersion/?projectVersion=16.10.4

wget https://nexus.xwiki.org/nexus/content/groups/public/org/xwiki/platform/xwiki-platform-distribution-war/16.10.4/xwiki-platform-distribution-war-16.10.4.war
wget https://nexus.xwiki.org/nexus/content/groups/public/org/xwiki/platform/xwiki-platform-distribution-flavor-xip/16.10.4/xwiki-platform-distribution-flavor-xip-16.10.4.xip

下载jdk17

wget https://download.java.net/java/GA/jdk17.0.1/2a2082e5a09d4267845be086888add4f/12/GPL/openjdk-17.0.1_linux-x64_bin.tar.gz
tar -zxvf openjdk-17.0.1_linux-x64_bin.tar.gz
mv jdk-17.0.1  /usr/lib/jvm/
/usr/lib/jvm/jdk-17.0.1/bin/java -version

部署及修改配置

tomat修改

  • 修改tomat规则文件

    vi catalina.policy

    grant codeBase "file:<full-path-here>/webapps/xwiki/WEB-INF/lib/-" {
      permission java.util.PropertyPermission "file.encoding", "read";
    // Needed by Hibernate -> antlr
      permission java.util.PropertyPermission "ANTLR_DO_NOT_EXIT", "read";
      permission java.util.PropertyPermission "ANTLR_USE_DIRECT_CLASS_LOADING", "read";
    // Needed by Hibernate and others
      permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
      permission java.lang.RuntimePermission "createClassLoader";
      permission java.lang.RuntimePermission "setContextClassLoader";
    // Needed by commons-logging
      permission java.util.PropertyPermission "org.apache.commons.logging.LogFactory.HashtableImpl", "read";
    // Needed for connecting to the database
      permission java.net.SocketPermission "127.0.0.1:3306", "connect,resolve";
    // Needed by the scheduler plugin -> quartz, but works without (maybe except scheduling? should be checked)
    //  permission java.util.PropertyPermission "org.quartz.properties", "read";
    
    //Allow file storage directory reading - for directory and everything underneath
    //This is dependent on the setting of environment.permanentDirectory in xwiki.properties
    permission java.io.FilePermission "${catalina.home}${file.separator}xwikidata${file.separator}", "read,write,delete";
    permission java.io.FilePermission "${catalina.home}${file.separator}xwikidata${file.separator}-", "read,write,delete";
    //Allow file storage directory reading - temporary directory and everything underneath
    //This is dependent on the setting of environment.temporaryDirectory in xwiki.properties.
    permission java.io.FilePermission "${catalina.home}${file.separator}temp${file.separator}", "read,write,delete";
    permission java.io.FilePermission "${catalina.home}${file.separator}temp${file.separator}-", "read,write,delete";
    };
    
  • conf/server.xml没设置编码的增加编码设置URIEncoding=“UTF-8”

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000"
               URIEncoding="UTF-8"
               />
  • 修改启动脚本startup.sh和catalina.sh增加JAVA_HOME

    vi startup.sh
    #o
    JAVA_HOME=/usr/lib/jvm/jdk-17.0.1
    PATH=/usr/lib/jvm/jdk-17.0.1/bin:$PATH
    
  • 重命名war为xwiki.war复制到webapp目录,手工解压war。

  • 下载xip包后解压后的文件全部移动到到永久数据目录下的extension/repository

修改配置文件

WEB-INF/xwiki.properties

设置永久目录environment.permanentDirectory及

mkdir -p /iflytek/xwiki/data
vi xwiki.properties
#o
environment.permanentDirectory = /iflytek/xwiki/data/
extension.repositories=https://nexus.xwiki.org/nexus/content/groups/public/
WEB-INF/hibernate.cfg.xml
  • 准备xwiki数据库
create database xwiki default character set utf8 collate utf8_bin;

编辑你的 MySQL 配置文件 my.cnf(通常位于 /etc/mysql/my.cnf 或 /etc/my.cnf)。
在 [mysqld] 部分添加以下行:

max_allowed_packet = 100M
  • 修改WEB-INF/hibernate.cfg.xml,注释默认数据并放开mysql数据库的注释,修改改数据库信息ip端口,用户名密码等。

  • 复制mysql的jdbc驱动包mysql-connector-java-8.0.29.jar到xwiki的lib目录。

上传Flavor拓展包到拓展目录

https://nexus.xwiki.org/nexus/content/groups/public/org/xwiki/platform/xwiki-platform-distribution-flavor-xip/16.10.4/xwiki-platform-distribution-flavor-xip-16.10.4.xip

下载对应版本的xip包解压后的文件复制到永久数据目录下的extension/repository

unzip -q xwiki-platform-distribution-flavor-xip-16.10.4.xip

重启tomcat后,浏览器访问http://localhost:8080/xwiki

/iflytek/server/apache-tomcat-9.0.100/bin/shutdown.sh
/iflytek/server/apache-tomcat-9.0.100/bin/startup.sh

首次访问会开始初始化,自动在数据库建表(需要后续手工创建索引提升性能),等待初始化完成开始进入安装向导。

Continue注册admin用户

会有显示xip解压后的Flavor,选中点击Install,等待安装。

安装失败时注意分析日志,solr在有其他wiki服务启动的时候会被锁定,停止其他wiki服务后删除锁文件,自动重试通过,完成安装。

配置

国际化
右侧点击Administer Wiki

Content(内容)–Locailzation(国际化)–设置language默认语言为中文

隐藏左侧应用面板

管理Wiki–外观–

  1. 以管理员身份登录 XWiki。
  2. 点击右上角图标打开侧边栏菜单,再点击管理Wiki。
  3. 点击 “外观”–“面板编辑”。
  4. 在 "显示在左侧的面板"中删除Panels.Application
  5. 保存新的布局后刷新查看

“外观”–"显示"下可以修改页头页脚。

不了解的配置可以问问大模型,现在大模型能力还是比较强的。

拓展包安装

右侧点击Administer Wiki
拓展–Extensions,然后从右侧选择需要的拓展包Install即可。

问题

solr启动时有锁导致solr无法启动,启动前删除锁文件即可。

rm -f /iflytek/server/apache-tomcat-9.0.100/work/Catalina/localhost/xwiki/cache/solr/search_9/index/write.lock
rm -f /iflytek/xwiki/data/cache/solr/search_9/index/write.lock
rm -f /iflytek/xwiki/data/cache/solr/extension_index_9/index/write.lock
rm -f /iflytek/xwiki/data/store/solr/events_9/data/index/write.lock
rm -f /iflytek/xwiki/data/store/solr/ratings_9/data/index/write.lock

还是有的复杂了,简单点可以用docker部署

 git clone https://github.com/xwiki/xwiki-docker.git
 cd xwiki-docker/16.4/mysql-tomcat
 ls -a
 docker-compose up -d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值