OpenKM 是一个开源的电子文档管理系统 (DMS),基于 Tomcat+J2EE+Ajax web (GWT)+Jackrabbit (lucene) 等技术开发,可以在线预览Office、图片、PDF等文档。由于相关中文资料较少,本篇文章主要基于官方文档和Wiki进行安装和配置。
1. 运行环境
- Windows Server 2012 64位
- Java 1.8
- MySQL 5.6
- OpenKM 6.3.2 及 Tomcat 7 集成包
https://sourceforge.net/p/openkm/activity - OpenKM汉化包
https://www.openkm.com/wiki/index.php/Language_Packs - Apache OpenOffice 4.1.5 及中文语言包
http://www.openoffice.org/zh-cn/download - SWFTools
http://www.swftools.org/download.html
2. 准备工作
2.1 安装 jdk
OpenKM 仅能在 Java 1.8 环境中运行
https://docs.openkm.com/kcenter/view/okm-6.3-com/hardware-and-software-requirements.html
2.2 安装数据库
由于 OpenKM 使用的是 Hibernate,所以可以支持 MySQL/PostgreSQL/Oracle/SQL server 等多种数据库,这里使用 MySQL。
- 检查数据库引擎
show engines;
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
如果查询结果如上表示是 InnoDB;若不是,则需要修改 MySQL 配置文件 (C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
)
修改或添加:
default-storage-engine=INNODB
- 创建数据库
这里使用 root 用户,不再创建新用户
DROP DATABASE IF EXISTS okmdb;
CREATE DATABASE okmdb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;
GRANT ALL ON okmdb.* TO root@localhost WITH GRANT OPTION;
2.3 安装 OpenOffice
选择自定义
修改安装路径为
C:\Program\OpenOffice4
2.4 安装 SWFTools
修改安装路径为C:\Program\SWFTools
3. 安装 OpenKM
将
openkm-6.3.2-community-tomcat-bundle.zip
内 tomcat 文件夹解压到 D 盘根目录并改名为 tomcatOpenKM;
如果解压遇到错误,是因为 license 文件夹与 LICENSE 文件重名导致,保留 LICENSE 文件即可;将
D:\tomcatOpenKM\bin\win-x64
中文件复制到D:\tomcatOpenKM\bin
中 (如果操作系统为32位,则复制的文件来自D:\tomcatOpenKM\bin\win-x86
文件夹);分别修改
D:\tomcatOpenKM\bin
中tomcat7.exe
和tomcat7w.exe
为tomcat7OpenKM.exe
和tomcat7OpenKMw.exe
;-
打开
D:\tomcatOpenKM\bin\service.bat
,替换全部tomcat7
为tomcat7OpenKM
;
打开 cmd,切换目录到
D:\tomcatOpenKM\bin
,
# 安装 tomcat 服务;
service.bat install
# 修改 JVM 参数
tomcat7OpenKM //US//tomcat7OpenKM ++JvmOptions="-XX:+UseConcMarkSweepGC"
tomcat7OpenKM //US//tomcat7OpenKM ++JvmOptions="-Djava.awt.headless=true"
tomcat7OpenKM //US//tomcat7OpenKM ++JvmOptions="-Dlog4j.configuration=file:///%CATALINA_HOME%/conf/log4j.properties"
tomcat7OpenKM //US//tomcat7OpenKM ++JvmOptions="-Dfile.encoding=utf-8"
tomcat7OpenKM //US//tomcat7OpenKM ++JvmOptions="-Dmail.mime.ignoreunknownencoding=true"
- 不执行修改 JVM 参数命令,也可以打开
tomcat7OpenKMw.exe
手动修改;
在 Java Options 中添加:
-XX:+UseConcMarkSweepGC
-Djava.awt.headless=true
-Dlog4j.configuration=file:///%CATALINA_HOME%/conf/log4j.properties
-Dfile.encoding=utf-8
-Dmail.mime.ignoreunknownencoding=true
- 添加 Path 环境变量
D:\tomcatOpenKM\lib\sigar;D:\tomcatOpenKM\bin;
4. OpenKM 启动前配置
- 修改
"D:\tomcatOpenKM\OpenKM.cfg"
# hibernate 方言
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
# 当为 create 时,启动服务会创建 OpenKM 所有数据库表
# 启动后,OpenKM 会自动修改该项为 none
hibernate.hbm2ddl=create
# Initial configuration - Windows
system.imagemagick.convert=D:/tomcatOpenKM/bin/convert.exe
# OpenOffice 安装目录
system.openoffice.path=C:/Program/OpenOffice4
# SWFTools 安装目录
system.swftools.pdf2swf=C:/Program/SWFTools/pdf2swf.exe -T 9 -f ${fileIn} -o ${fileOut}
- 修改
"D:\tomcatOpenKM\conf\server.xml"
中数据库配置:
<Resource name="jdbc/OpenKMDS" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1"
username="root" password="123456" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.1.146:3306/okmdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8"/>
注意 validationQuery 中不要出现不存在的 table;
启动 tomcatOpenKM 服务,日志在
"D:\tomcatOpenKM\logs\catalina.log"
中;
如果出现Specified key was too long; max key length is 767 bytes
错误,修改 MySQL 配置文件添加innodb_large_prefix=on
当日志出现以下内容时,OpenKM已启动完成:
2018-08-11 10:00:19,035 [Thread-21] INFO org.apache.coyote.http11.Http11AprProtocol- Stopping ProtocolHandler ["http-apr-0.0.0.0-80"]
2018-08-11 10:00:19,128 [Thread-21] INFO org.apache.coyote.ajp.AjpAprProtocol- Stopping ProtocolHandler ["ajp-apr-127.0.0.1-8009"]
- 配置默认扩展:
INSERT INTO OKM_EXTENSION (EXT_UUID, EXT_NAME) VALUES ('808e7a42-2e73-470c-ba23-e4c9d5c3a0f4', 'Live Edit');
INSERT INTO OKM_EXTENSION (EXT_UUID, EXT_NAME) VALUES ('58392af6-2131-413b-b188-1851aa7b651c', 'HTML Editor 4');
INSERT INTO OKM_PROFILE_MSC_EXTENSION (PEX_ID, PEX_EXTENSION) VALUES (1, '808e7a42-2e73-470c-ba23-e4c9d5c3a0f4');
INSERT INTO OKM_PROFILE_MSC_EXTENSION (PEX_ID, PEX_EXTENSION) VALUES (1, '58392af6-2131-413b-b188-1851aa7b651c');
5. OpenKM 启动后配置
-
打开
http://你的IP/OpenKM
,管理员账号 okmAdmin 密码 admin,登录;
进入 Administration -> Language,选择汉化 sql 文件,点击 Add new translation,退出后选择 simplified Chinese 登录即可使用汉化后的 OpenKM;
-
进入 管理面板 -> Configuration
修改system.openoffice.path
为C:/Program/OpenOffice4
,修改system.swftools.pdf2swf
为C:/Program/SWFTools/pdf2swf.exe -T 9 -f ${fileIn} -o ${fileOut}
;
-
默认的字体很小,进入 管理面板 -> Profiles,修改 Web skin 为 Medium font;
6. 文档预览效果
ps:若出现无法预览,检查浏览器是否启用了 Flash
参考:
OpenKM KnowledgeCenter
https://docs.openkm.com/kcenter/view/okm-6.3-com
OpenKM Documentation
https://www.openkm.com/wiki/index.php/Main_Page