Copy actiTIME files onto your machine
Extract installation package (a .zip file) into the 'webapps' folder of your Tomcat
installation directory. 'actitime' subdirectory will appear.
Note that if you extract the archive into the '<tomcat home>\webapps', you will
only need to restart Tomcat server to make the actiTIME installation available.
Otherwise you will have to configure Tomcat to make it able to run actiTIME in another
directory.
Create a MySQL user account
The account shall have all privileges on the database that will be created later during the
installation. The default name of this database is 'actitime'. You can choose any other
name, but then you have to specify this name as a parameter for the installation script.
Allow actiTIME to create stored functions in its database
To do that, run the following query in MySQL under the 'root' user account or under any
other user account with SUPER privilege:
SET GLOBAL log_bin_trust_function_creators = 1;
If necessary, you can revert this configuration change to the original value after having
created and set up the database.
Set up database parameters
Database parameters are set up using scripts provided in the installation package. Launch
the
setup_admin.vbs script from
<Tomcat home>\webapps\actitime folder.
This script has the following launch format:
setup_admin.vbs [/mysqlpath <MYSQLPATH>] [/username <USERNAME>] [/password <PASSWORD>] [/host <HOST>] [/port <PORT>] [/dbname <DBNAME>]
where
<MYSQLPATH> is the path to the MySQL executables (a
directory where the 'mysql' and
'mysqldump' executable files are located). If the path is
not specified, installation script will ask for it when running.
<USERNAME> is the MySQL user name under which
actiTIME will create and use the database. If not specified, setup script will ask for
it when running.
<PASSWORD> is the password of user
<USERNAME>. If not specified, setup script will ask
for it when running.
<HOST> is the host name of the server where MySQL
server is running. If not specified, the local host will be assumed. It is required if
actiTIME uses a remote MySQL database.
<PORT> is the port on which MySQL server is
running. If not specified, the default MySQL port will be used.
<DBNAME> is the name of the database to be created.
If not specified, 'actitime' will be used as the database name.
NOTE: If the script finds the previous version of the actiTIME database, it will back up
the database to the
actiTIME.mysql4.sql.backup_[current date] file.
Revert the permission to create stored functions to the previous value
(if necessary):
To do that, run the following query in MySQL under the 'root' user account or under any
other user with SUPER privilege:
SET GLOBAL log_bin_trust_function_creators = 0;
Configure Tomcat application server
Make necessary activities to the Tomcat application server if you want to run actiTIME in
non-default configuration (different port, virtual host etc.).
If you want to configure actiTIME to work via secure connections (HTTPS), you can
use Tomcat's facilities, but it may decrease the system performance since Tomcat's
HTTPS module is built on Java and requires considerable computational resources.
See details on configuring Tomcat to work via secure connections with an SSL
certificate depending on your Tomcat version at:
Instead, you can use Tomcat together with Apache web server (http://httpd.apache.org/). If you configure your installation this way, secure requests will be processed
without serious loss of performance. Apache HTTP server will handle HTTPS requests,
decrypt them and then transfer decrypted data forwards to Tomcat. For more details
on the configuration procedures, see Tomcat and Apache documentation.
If you want to run Tomcat with "-security" option, you will need to add special
permissions to the
$CATALINA_HOME/conf/catalina.policy file (or
$CATALINA_HOME/conf/tomcat.policy depending on the
Tomcat version). The set of permissions depends on Tomcat version and its
configuration.
Examples of lines to add for different server versions are listed below:
Tomcat 7.0.x:
grant codeBase "file:<PATH>/actitime/-" {
// Access to Tomcat libraries
permission java.io.FilePermission
"${catalina.home}${file.separator}lib${file.separator}-", "read";
// Access to Tomcat logs (necessary to allow Tomcat to rotate its logs)
permission java.io.FilePermission "${catalina.home}${file.separator}logs",
"read";
permission java.io.FilePermission
"${catalina.home}${file.separator}logs${file.separator}-", "write";
// Database access permissions
permission java.net.SocketPermission "<HOST>:<PORT>",
"connect,resolve";
// actiTIME requires permissions to access an SMTP server to send email
notifications.
// Please replace <SMTP_HOST> below with name or IP address of your SMTP
server.
// It must be equal to the one specified in actiTIME General Settings.
permission java.net.SocketPermission "<SMTP_HOST>:25",
"connect,resolve";
// Access to system properties
permission java.util.PropertyPermission "file.encoding", "read";
permission java.util.PropertyPermission "catalina.home", "read";
permission java.util.PropertyPermission "java.runtime.version", "read";
permission java.util.PropertyPermission
"guava.concurrent.generate_cancellation_cause", "read";
permission java.util.PropertyPermission
"org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER", "read";
permission java.util.PropertyPermission
"org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
permission java.util.PropertyPermission
"org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "read";
// Network and Runtime permissions
permission java.net.SocketPermission "www.actitime.com:443",
"connect,resolve";
permission java.net.SocketPermission "maps.googleapis.com:443",
"connect,resolve";
permission java.net.NetPermission "specifyStreamHandler";
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "accessDeclaredMembers";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.session";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.connector";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.core";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.util";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina";
permission java.lang.RuntimePermission "accessClassInPackage.javax.servlet";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.util.logging.resources";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.util.buf";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.coyote";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.security.provider";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.jdbc.pool";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.jdbc.pool.jmx";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.jdbc.pool.interceptor";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.reflect.generics.reflectiveObjects";
permission java.lang.RuntimePermission "setContextClassLoader"; // MBean management
permission javax.management.MBeanServerPermission "createMBeanServer";
permission javax.management.MBeanPermission
"com.actimind.common.jmxmanagement.mxbeans.*", "registerMBean";
permission javax.management.MBeanTrustPermission "register";
// Optional permissions that would increase actiTIME performance
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.lang.RuntimePermission
"defineClassInPackage.org.apache.jasper.runtime";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina";
permission java.lang.RuntimePermission "defineClassInPackage.java.lang";
permission java.lang.RuntimePermission "defineClassInPackage.java.util"; };
Tomcat 8.0.x:
grant codeBase "file:<PATH>/actitime/-" {
// Access to Tomcat libraries
permission java.io.FilePermission
"${catalina.home}${file.separator}lib${file.separator}-", "read"; // Access to rt.jar
permission java.io.FilePermission
"${java.home}${file.separator}lib${file.separator}rt.jar", "read";
// Access to Tomcat logs (necessary to allow Tomcat to rotate its logs)
permission java.io.FilePermission "${catalina.home}${file.separator}logs",
"read";
permission java.io.FilePermission
"${catalina.home}${file.separator}logs${file.separator}-", "write";
// Database access permissions
permission java.net.SocketPermission "<HOST>:<PORT>",
"connect,resolve";
// actiTIME requires permissions to access an SMTP server to send email
notifications.
// Please replace <SMTP_HOST> below with name or IP address of your SMTP
server.
// It must be equal to the one specified in actiTIME General Settings.
permission java.net.SocketPermission "<SMTP_HOST>:25",
"connect,resolve";
// Access to system properties
permission java.util.PropertyPermission "file.encoding", "read";
permission java.util.PropertyPermission "catalina.home", "read";
permission java.util.PropertyPermission "java.runtime.version", "read";
permission java.util.PropertyPermission
"guava.concurrent.generate_cancellation_cause", "read";
permission java.util.PropertyPermission
"org.apache.tomcat.jdbc.pool.onlyAttemptCurrentClassLoader", "read";
permission java.util.PropertyPermission
"org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER", "read";
// Network and Runtime permissions
permission java.net.SocketPermission "www.actitime.com:443",
"connect,resolve";
permission java.net.SocketPermission "maps.googleapis.com:443",
"connect,resolve";
permission java.net.NetPermission "specifyStreamHandler";
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "accessDeclaredMembers";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.session";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.webresources.http";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.connector";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.core";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.util";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.util.logging.resources";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.security.provider";
permission java.lang.RuntimePermission "accessClassInPackage.javax.servlet";
permission java.lang.RuntimePermission "accessClassInPackage.sun.misc";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.reflect.generics.reflectiveObjects";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.jdbc.pool";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.jdbc.pool.jmx";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.jdbc.pool.interceptor";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.util.buf";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.coyote";
permission java.lang.RuntimePermission "setContextClassLoader"; // MBean management
permission javax.management.MBeanServerPermission "createMBeanServer";
permission javax.management.MBeanPermission
"com.actimind.common.jmxmanagement.mxbeans.*", "registerMBean";
permission javax.management.MBeanTrustPermission "register";
// Optional permissions that would increase actiTIME performance
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.lang.RuntimePermission
"defineClassInPackage.org.apache.jasper.runtime";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina";
permission java.lang.RuntimePermission "defineClassInPackage.java.lang";
permission java.lang.RuntimePermission "defineClassInPackage.java.util"; };
Tomcat 8.5.x & Tomcat 9.0.x:
grant codeBase "file:<PATH>/actitime/-" {
// Access to Tomcat libraries
permission java.io.FilePermission
"${catalina.home}${file.separator}lib${file.separator}-", "read"; // Access to rt.jar
permission java.io.FilePermission
"${java.home}${file.separator}lib${file.separator}rt.jar", "read";
// Access to Tomcat logs (necessary to allow Tomcat to rotate its logs)
permission java.io.FilePermission "${catalina.home}${file.separator}logs",
"read";
permission java.io.FilePermission
"${catalina.home}${file.separator}logs${file.separator}-", "write";
// Database access permissions
permission java.net.SocketPermission "<HOST>:<PORT>",
"connect,resolve";
// actiTIME requires permissions to access an SMTP server to send email
notifications.
// Please replace <SMTP_HOST> below with name or IP address of your SMTP
server.
// It must be equal to the one specified in actiTIME General Settings.
permission java.net.SocketPermission "<SMTP_HOST>:25",
"connect,resolve";
// Access to system properties
permission java.util.PropertyPermission "file.encoding", "read";
permission java.util.PropertyPermission "catalina.home", "read";
permission java.util.PropertyPermission "java.runtime.version", "read";
permission java.util.PropertyPermission
"guava.concurrent.generate_cancellation_cause", "read";
permission java.util.PropertyPermission
"org.apache.tomcat.jdbc.pool.onlyAttemptCurrentClassLoader", "read";
permission java.util.PropertyPermission
"org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER", "read";
permission java.util.PropertyPermission
"org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
// Network and Runtime permissions
permission java.net.SocketPermission "www.actitime.com:443",
"connect,resolve";
permission java.net.SocketPermission "maps.googleapis.com:443",
"connect,resolve";
permission java.net.NetPermission "specifyStreamHandler";
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "accessDeclaredMembers";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.session";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.webresources.http";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.connector";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.core";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina.util";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.util.logging.resources";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.security.provider";
permission java.lang.RuntimePermission "accessClassInPackage.javax.servlet";
permission java.lang.RuntimePermission "accessClassInPackage.sun.misc";
permission java.lang.RuntimePermission
"accessClassInPackage.sun.reflect.generics.reflectiveObjects";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.jdbc.pool";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.jdbc.pool.jmx";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.jdbc.pool.interceptor";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.tomcat.util.buf";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.coyote";
permission java.lang.RuntimePermission "setContextClassLoader"; // MBean management
permission javax.management.MBeanServerPermission "createMBeanServer";
permission javax.management.MBeanPermission
"com.actimind.common.jmxmanagement.mxbeans.*", "registerMBean";
permission javax.management.MBeanTrustPermission "register";
// Optional permissions that would increase actiTIME performance
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
permission java.lang.RuntimePermission
"defineClassInPackage.org.apache.jasper.runtime";
permission java.lang.RuntimePermission
"accessClassInPackage.org.apache.catalina";
permission java.lang.RuntimePermission "defineClassInPackage.java.lang";
permission java.lang.RuntimePermission "defineClassInPackage.java.util"; };
where
<PATH> is the path to the actiTIME directory or
'${catalina.home}/webapps' if actiTIME is installed to
webapps directory.
<SMTP_HOST> is the host name or IP of the SMTP
server.
Also add the following permission to the first block of permissions:
permission java.net.SocketPermission "<HOST>:<PORT>",
"connect,resolve";
where
<HOST> is the host name or IP of the server where
MySQL server is running.
<PORT> is the port on which MySQL server is running
(MySQL uses port 3306 by default).
Access actiTIME
Restart Tomcat and check if actiTIME is available.
Now you can access actiTIME via web browser
http://<IP address or server name>:8080/actitime if
Tomcat is configured by default and actiTIME is installed into the '<tomcat home>/webapps' directory).
Enter your license key for the installed version and log in to your actiTIME with username
'admin' and password 'manager'.
If actiTIME is not available, please check
Troubleshooting section for
possible error causes.
After having successfully installed actiTIME, configure mail server parameters to make
actiTIME notifications work properly.