Installing on a pristine Tomcat

In this section, it will be depicted how deploy OpenKM in a pristine Apache Tomcat.

Preliminaries

Take a look to the installation of the whole system according with your Operating System:

Installing Tomcat

Download latest Tomcat version from Apache Tomcat page (Tomcat 7 or Tomcat 8 ) and extract it into the directory you want to install it.

Once Tomcat has been extracted, some modifications are necessary.

Copy libraries and configuration files

Copy the following required libraries to TOMCAT_HOME/lib. These files can be found in the Tomcat already configured by the OpenKM team, which can be downloaded from https://sourceforge.net/projects/openkm/files/common/

  • unicode.ttf
  • sigar directory
  • mail-1.5.2.jar
  • activemq-all-5.13.2.jar
  • The driver acording to your database:
    • MySQL: mysql-connector-java-5.1.12-bin.jar
    • Oracle: ojdbc6-11.2.0.3.jar
    • PostgreSQL: postgresql-9.1-902.jdbc4.jar
    • SQL Server: sqljdbc4.jar
    • Hypersonic: hsqldb.jar
    • H2: h2-1.4.191.jar

Copy the following files to TOMCAT_HOME:

  • OpenKM.cfg
  • OpenKM.xml
  • logback.xml

Modify configuration files

Modify the following files from TOMCAT_HOME/conf:

context.xml

Add the following configuration inside  Context section:

<!-- OpenKM resources -->
<ResourceLink global="jdbc/OpenKMDS" name="jdbc/OpenKMDS" type="javax.sql.DataSource"/>
<ResourceLink global="mail/OpenKM" name="mail/OpenKM" type="javax.mail.Session"/>

server.xml

Add the following configuration inside GlobalNamingResources section:

  • In case of Tomcat 7
<Resource name="jdbc/OpenKMDS" auth="Container" type="javax.sql.DataSource"
          maxActive="100" maxIdle="30" maxWait="10000" validationQuery="select 1"
          username="openkm" password="*****" driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8"/>

<Resource name="mail/OpenKM" auth="Container" type="javax.mail.Session"
          mail.smtp.host="localhost" mail.from="testing@openkm.com"/>
  • In case of Tomcat 8
<Resource name="jdbc/OpenKMDS" auth="Container" type="javax.sql.DataSource"
          maxTotal="100" maxIdle="30" maxWaitMillis="10000" validationQuery="select 1"
          username="openkm" password="*****" driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/okmdb?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF8"/>
 
<Resource name="mail/OpenKM" auth="Container" type="javax.mail.Session"
          mail.smtp.host="localhost" mail.from="testing@openkm.com"/>

These two resources correspond to the ones to connecto to database and mail server. The correponding parameters must be adapted to the different databases (this examples is for a mysql database) and for the corresponding mail server.

setenv.sh or setenv.bat

Depending on your Operating System you have to create a file called setenv.sh in Linux or setenv.bat in Windows. This file should be placed at TOMCAT_HOME/bin. This is the context in case of Linux:

JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx2048m -XX:+UseConcMarkSweepGC -Djava.awt.headless=true"
JAVA_OPTS="$JAVA_OPTS -Dlog4j.configuration=file://$CATALINA_HOME/conf/log4j.properties"
JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Dmail.mime.ignoreunknownencoding=true"
CATALINA_PID=$CATALINA_HOME/catalina.pid
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib/sigar

And this is the content in case of Windows:

set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx2048m -XX:+UseConcMarkSweepGC -Djava.awt.headless=true
set JAVA_OPTS=%JAVA_OPTS% -Dlog4j.configuration=file:///%CATALINA_HOME%/conf/log4j.properties
set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Dmail.mime.ignoreunknownencoding=true
set PATH=%PATH%;%CATALINA_HOME%\lib\sigar

Installing OpenKM

With Tomcat stopped copy the OpenKM.war file into TOMCAT_HOME \webapps

$ cp OpenKM.war $TOMCAT_HOME/webapps

Install third party software

To do this, go to the section corresponding to your Operating System:

 Start application

Check OpenKM.cfg parameters

$ vim TOMCAT_HOME/OpenKM.cfg

Your configuration file should contain something like this:

# OpenKM Hibernate configuration values
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
hibernate.hbm2ddl=create
 
# Logback configuration file
logback.config=logback.xml

Ensure hibernate.dialect=org.hibernate.dialect.MySQL5Dialect is enabled if your database is MySQL.

First time application start:

$ start tomcat

Use mTail Program - or equivalent - to watch the TOMCAT_HOME\log\catalina.log file

When the application starts, you should see these log messages:

2015-07-04 18:28:10,680 [main] INFO  org.apache.coyote.http11.Http11Protocol - Starting ProtocolHandler ["http-bio-0.0.0.0-8080"]
2015-07-04 18:28:10,688 [main] INFO  org.apache.coyote.ajp.AjpProtocol - Starting ProtocolHandler ["ajp-bio-127.0.0.1-8009"]
2015-07-04 18:28:10,692 [main] INFO  org.apache.catalina.startup.Catalina - Server startup in 41456 ms

The application will be accessible at http://YOUR_IP:8080/OpenKM using user: okmAdmin with password: admin. ( Do not forget to change it !). For more information: Manage users and roles.