Skip to content

下載

  • 下載 官方設定Tomcat8,其他不必下載 https://sourceforge.net/projects/openkm/files/common/
  • 下載最新版本war https://sourceforge.net/projects/openkm/files/ 若使用OKMInstaller.jar 會造成無法進入OpenKM 資料夾監看logs
  • 依照 https://docs.openkm.com/kcenter/view/okm-6.3-com/installing-on-ubuntu-and-debian.html 預裝需求套件

修改

/home/zon/tomcat-8.5.24/OpenKM.cfg {{% notice style="info" %}}

OpenKM Hibernate configuration values

hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect hibernate.hbm2ddl=none

Logback configuration file

logback.config=logback.xml {{% /notice %}}

解開下面註解,並修改密碼

<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="d6g981a0" roles="tomcat"/>
<user username="both" password="d6g981a0" roles="tomcat,role1"/>
<user username="role1" password="d6g981a0" roles="role1"/>

增加以下,以利Debug

{{% notice style="info" %}} java.util.logging.ConsoleHandler.level = FINE

java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter

org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ../logs
org.apache.juli.FileHandler.prefix = error-debug.
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler
{{% /notice %}}

新增 /home/zon/tomcat-8.5.24/conf/log4j.properties

以利Debug,放一份到/home/zon/tomcat-8.5.24/webapps/OpenKM/WEB-INF/classes

log4j.logger.com.openkm.util.ExecutionUtils=DEBUG

修改新增 home/zon/tomcat-8.5.24/bin/setenv.sh

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ JRE_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre

取得 JAVA_HOME & JRE_HOME 位址

$ update-alternatives --display javaac
$ update-alternatives --config java
直接按 [Enter] 不要更改系統預設值

Check server configuration

$ wget -Nc smxi.org/inxi
$ sudo chmod +x inxi
$ sudo ./inxi -F

Increase ulimit

$ sudo vim /etc/pam.d/su uncomment the following line

#session required pam_limits.so to
session required pam_limits.so

$ sudo vim /etc/security/limits.conf
and add the following lines to the end of the file (before the line # End of file)

*   soft  nofile   6084
*   hard  nofile   6084

安裝mysql or mariadb

$ sudo apt-get install mysql-server
# or
$ sudo apt-get install mariadb-server

Check InnoDB is default MySQL engine

$ mysql -h localhost -u root -p
> show engines;
It should looks something like this:
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys  | YES | YES | YES |
If it not default, modify /etc/mysql/my.cnf

$ vim /etc/mysql/my.cnf

and under [mysqld] add
bind-address 127.0.0.1
default-storage-engine = innodb

建立資料庫

CREATE DATABASE okmdb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;
CREATE USER openkm@localhost IDENTIFIED BY 'password';
GRANT ALL ON okmdb.* TO openkm@localhost WITH GRANT OPTION;

完成

將/home/zon/tomcat-8.5.24 權限改 root:root

$chown root:root /home/zon/tomcat-8.5.24
$chmod /home/zon/tomcat-8.5.24/logs 766
$chmod /home/zon/tomcat-8.5.24/bin 755

移除多餘 bcprov-*.jar ,僅留一個版本最新

/home/zon/tomcat-8.5.24/webapps/OpenKM/WEB-INF/lib

若JAVA 記憶體不足

修改 home/zon/tomcat-8.5.24/bin/setenv.sh

-Xmx2048m 加大-Xmx4096m

更改預設port

/home/zon/tomcat-8.5.24/conf/server.xml

啟動tomcat

nohup /home/zon/tomcat-8.5.24/bin/startup.sh &

備份

mysql

mysqldump -u 'openkm' -p'd6g981a0' okmdb | gzip > /home/zon/db/openkm_db_$bakDates.gz

datastore

位置

/home/zon/tomcat-8.5.24/repository/datastore

{{% notice style="info" %}} 注意: 備份時,直接備份 tomcat-8.5.24 資料夾,上面修改部份就不需要做了 {{% /notice %}}

還原備份

mysql -u openkm -p okmdb < [sql_file]

無法啟動OpenKm可能原因之一

檢查log /home/zon/tomcat-8.5.24/logs/catalina.out

{{% notice style="info" %}} 2021-04-19 10:26:19,909 [localhost-startStop-1] INFO com.openkm.dao.HibernateUtil - Hibernate 'hibernate.dialect' = org.hibernate.dialect.MySQL5InnoDBDialect 2021-04-19 10:26:19,909 [localhost-startStop-1] INFO com.openkm.dao.HibernateUtil - Hibernate 'hibernate.connection.datasource' = java:/comp/env/jdbc/OpenKMDS 2021-04-19 10:26:19,909 [localhost-startStop-1] INFO com.openkm.dao.HibernateUtil - Hibernate 'hibernate.hbm2ddl.auto' = none 2021-04-19 10:26:19,909 [localhost-startStop-1] INFO com.openkm.dao.HibernateUtil - Hibernate 'hibernate.show_sql' = false 2021-04-19 10:26:19,909 [localhost-startStop-1] INFO com.openkm.dao.HibernateUtil - Hibernate 'hibernate.generate_statistics' = false 2021-04-19 10:26:19,909 [localhost-startStop-1] INFO com.openkm.dao.HibernateUtil - Hibernate 'hibernate.search.default.directory_provider' = org.hibernate.search.store.FSDirectoryProvider 2021-04-19 10:26:19,909 [localhost-startStop-1] INFO com.openkm.dao.HibernateUtil - Hibernate 'hibernate.search.default.indexBase' = /home/zon/tomcat-8.5.24/repository/index 2021-04-19 10:26:21,697 [localhost-startStop-1] ERROR com.openkm.dao.HibernateUtil - could not init listeners org.hibernate.HibernateException: could not init listeners at org.hibernate.event.EventListeners.initializeListeners(EventListeners.java:205) ~[hibernate-core-3.6.10.Final.jar:3.6.10.Final] at org.hibernate.cfg.Configuration.getInitializedEventListeners(Configuration.java:2010) ~[hibernate-core-3.6.10.Final.jar:3.6.10.Final] at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872) ~[hibernate-core-3.6.10.Final.jar:3.6.10.Final] at com.openkm.dao.HibernateUtil.getSessionFactory(HibernateUtil.java:176) [classes/:6.3.8] at com.openkm.dao.HibernateUtil.getSessionFactory(HibernateUtil.java:82) [classes/:6.3.8] at com.openkm.servlet.RepositoryStartupServlet.init(RepositoryStartupServlet.java:89) [classes/:6.3.8] at javax.servlet.GenericServlet.init(GenericServlet.java:158) [servlet-api.jar:3.1.FR] {{% /notice %}}

index 錯誤

到/home/zon/tomcat-8.5.24/repository/index/

篩除以下資料夾,預防萬一,請先備份

com.openkm.dao.bean.NodeBase com.openkm.dao.bean.NodeDocumentVersion