下載
- 下載 官方設定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
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
* soft nofile 6084
* hard nofile 6084
* 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;
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
$ 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