Prerequisites

  Written by The Jahia Team
 
Sysadmins
   Estimated reading time:

2.1 Minimal system requirements

Please find below the minimum system requirements to properly run Digital Experience Manager v7.2.0 - Enterprise Distribution.

OS:

  • Windows
  • Linux
  • Solaris
  • Mac OSX

Suggested Min. Development Configuration:

  • Dual Core 2GHz or +
  • 2 GB RAM
  • 5 GB HDD

Suggested Min. Production Environments:

  • Quad Core (64 bit CPU and OS)
  • 4 GB RAM
  • 100 GB HDD

Warning: 32 bit JVM are limited in max memory (1.5 GB under Windows - 2 or 3 GB under Linux/Solaris). Digital Experience Manager v7.2.0 tries to cache a maximum of data to boost performance. So, we highly recommend 64 bit environments with enough memory available at least for all production environments.

2.2 Java Virtual Machine (JVM)

To run Digital Experience Manager, you first need to install an Oracle’s Java SE (Java Platform, Standard Edition) 7 or 8 on your system. Digital Experience Manager requires the JDK (Java Development Kit) package to run. The JRE (Java Runtime Environment) only won’t be sufficient.

To check if Java is already installed on your system, type the following command line at the prompt of your system:

java -version

You should get a message indicating which Java version is installed on your system. Please note that the same message will be displayed if you only have a JRE installed. If an error is returned, you probably don't have a Java Platform installed. If you have installed other versions of the Java Platform, Java Runtime Environment or other Java servers on your system, we recommend that you run a few checks before starting the installation to be sure that Digital Experience Manager will run without problems. If you need to obtain and install a new Java SE, you can find both Linux and Windows versions on the Oracle Web site: http://www.oracle.com/technetwork/java/javase/downloads/index.html. To install a Java Virtual Machine on a Windows system, you need to have administrator rights on your computer. Please contact your system administrator if you don’t have sufficient permissions. It is recommended that the installation path of the Java Platform does not contain any spaces (not like in the default C:\Program Files\Java\jdk1.7.0_xx, where “xx” is the release number – so please change it to a path without spaces, like C:\Java\jdk1.7.0_xx). After the installation, you have to set the JAVA_HOME environment variable to the directory where you have installed the Java SE. Note that at run time Digital Experience Manager will check that this variable is correctly set, and will stop if it is not the case. To setup this variable, follow the steps, described in next sections.

2.2.1 Under Windows

i) Open the Control Panel, and the System option. In Windows 7 and Vista it is: Control Panel _ System and Security _ System _ Advanced System Settings. Then, depending on your system: - Select the Advanced tab and click on the Environment Variables button (Windows 7/Vista/XP/2000) - Select the Properties tab and click on the Environment button (Windows NT) ii) Click on New in the "System variables" section to add a new environment variable. Enter the following information: - Variable name: JAVA_HOME - Variable value: c:\Java\jdk1.7.0_xx (replace this value with the correct path) Click on OK to validate your entry. The Java Virtual Machine should now be correctly set-up. Please note that on Windows NT you will need to restart your computer to apply the changes.

2.2.2 Under Linux

Set the JAVA_HOME variable to the root directory of your JDK installation. Both examples below suppose you have installed the JDK version 1.7 in your /usr/java directory. The classpath is usually set by typing: In bash or ksh:

export JAVA_HOME=usr/java/jdk1.7.0_xx

In csh or tcsh:

export JAVA_HOME usr/java/jdk1.7.0_xx

2.2.3 Under Solaris

Set the JAVA_HOME variable to the root directory of your JDK installation. Both examples below suppose you have installed the JDK version 1.7 in your /usr/java directory. The classpath is usually set by typing: In ksh:

export JAVA_HOME=/usr/java

In sh:

JAVA_HOME=/usr/java;export

In csh or tcsh:

setenv JAVA_HOME /usr/java

2.3 Database

Digital Experience Manager v7.2.0 Enterprise Distribution is by default distributed with the Sun Java DB / Apache Derby database engine. If you wish to get started rapidly or for rapid prototyping purposes, you can use the provided database as is. But in production and also for developing a serious project, you should use a standalone database instead. This section addresses only the mandatory configurations. Please refer to the “Fine tuning” section, before going live. Your database should be UTF-8 compliant! Have this in mind when creating a new database for Digital Experience Manager. Default settings are currently already predefined to allow Digital Experience Manager to run on Sun Java DB / Apache Derby, PostgreSQL, MySQL and the Enterprise Distribution also supports Microsoft SQL Server and Oracle. During the Digital Experience Manager installation, you will have to provide the URL to the database you have created for Digital Experience Manager. These connection strings are different for each database. Digital Experience Manager may have also detected bugs in certain DB versions, which would cause errors in Digital Experience Manager, so we integrated validations during installation, which will not allow installing Digital Experience Manager with these database versions.

2.3.1 MySQL

The default database URL (the connection string) for MySQL is:

jdbc:mysql://localhost/jahia?useUnicode=true&characterEncoding=UTF-8&useServerPrepStmts=false

where localhost should be replaced by the fully qualified domain name (e.g. mysql.mydomain.com) or IP address of the MySQL server if it is not located on the same machine as the Digital Experience Manager server, and jahia is just the default name of the database where Digital Experience Manager tables will be created. If your MySQL server is not running on the standard port (3306), you should add “:port” after the domain name where port is the port number. Digital Experience Manager is using InnoDB engine for its database engine on MySQL, so be sure that you have configured your MySQL for InnoDB. Here are some default configuration options for your database to be put in your my.cnf or my.ini file:

#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# You can write your other MySQL server options here
# ...
# Data files must be able to hold your data and indexes.
# Make sure that you have enough free disk space.
innodb_data_file_path = ibdata1:100M:autoextend
#
# Set buffer pool size to 50-80% of your computer's memory
innodb_buffer_pool_size=1024M
innodb_additional_mem_pool_size=256M
#
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=256M
innodb_log_buffer_size=64M
#
innodb_flush_log_at_trx_commit=1

max_allowed_packet has to be at least set to 100M, otherwise Digital Experience Manager will prohibit installation. In case you have chosen to store the files in the database, it should be at least the same size as the biggest file that will be uploaded on your server. Said differently, your users won’t be able to upload any file bigger than the size you specify here. You should also configure jahiaFileUploadMaxSize in WEB-INF/etc/config/jahia.properties accordingly. The Digital Experience Manager limitation should not be bigger than the database limitation, otherwise the Digital Experience Manager UIs will allow files to be uploaded that the database will not be able to store.

max_allowed_packet = 1024M

2.3.1.1 MySQL on Mac OS X

Please note that for MySQL versions from 5.5.9 to 5.5.12 on MacOSX, you must set the value of lower_case_table_names to 1 (http://bugs.mysql.com/bug.php?id=60309).

2.3.2 PostgreSQL

The default database URL (the connection string) for PostgreSQL 9.x is:

jdbc:postgresql://localhost:5432/jahia

where jahia is the default name of the database where Digital Experience Manager tables will be created. If your PostgreSQL server is located on a distant computer and/or on a non-default port (5432), please, adjust the connection URL accordingly. Make sure your PostgreSQL server is accepting TCP connections. Please refer to your database documentation for detailed instructions on how to configure PostgreSQL to accept TCP connections.

An issue has recently been identified on the Jahia / Digital Factory / Digital Experience Manager line of products when using *PostgreSQL *database. The issue comes up when using the maintenance and cleanup command "VACUUMLO" on the database side. This action is supposed to free some space inside the database by removing unreferenced objects inside large objects fields table "pg_largeobject".

Because of the way the Jahia/DF/DXM database creation schema is designed, it may - in some cases - incorrectly identify some large objects inside the table "pg_largeobject" as unreferenced, whereas these objects are actually in use. By running the "VACUUMLO" command, PostgreSQL may delete from the database these large objects if they are identified as not referenced anymore from any of the other tables, even though they actually are in use. This can have an unexpected effect on the internal functioning of Jahia / Digital Factory / Digital Experience Manager.

In order to run VACUUMLO safely against DX/DF schema, an additional step has to be executed before.
Before running the VACUUMLO, you should create a new DB materialized view using the following SQL script:

create materialized view jahia_oid as
select externalid::oid as id from jahia_external_mapping
union select expression::oid as id from jbpm_boolean_expression
union select body::oid as id from jbpm_email_header
union select "text"::oid as id from jbpm_i18ntext
union select "text"::oid as id from jbpm_task_comment
union select entry_path::oid as id from jahia_contenthistory
union select cndfile::oid as id from jahia_nodetypes_provider;


This will collect the "OID" values form DX tables into a dedicated view.
After that you can run the VACUUMLO command which will clean up the orphaned large objects.
Also each time before the VACUUMLO command is executed you should refresh the view:

refresh materialized view jahia_oid

2.3.3 Oracle

Digital Experience Manager v7.2.0 Enterprise Distribution also comes with JDBC drivers for Oracle. These drivers work with Oracle 11g and above. The default database URL (the connection string) for Oracle is:

jdbc:oracle:thin:@localhost:1521:jahia

where localhost should be replaced by the fully qualified domain name (e.g. oracle.mydomain.com) or the IP address of the Oracle Server if it is not located on the same machine as the Digital Experience Manager server, and jahia is the default name of the database where Digital Experience Manager tables will be created. 1521 is the standard port for Oracle. If you Oracle server is running on a different port, please change it here.

2.3.4 Microsoft SQL Server

Enterprise Distribution is provided with JDBC drivers for Microsoft SQL Server. The default database URL (the connection string) for Microsoft SQL Server is:

jdbc:sqlserver://localhost;databaseName=jahia

where localhost should be replaced by the fully qualified domain name (e.g. sqlserver.mydomain.com) or the IP address of the Microsoft SQL Server if it is not located on the same machine as the Digital Experience Manager server, and jahia is the default name of the database where Digital Experience Manager tables will be created. If your Microsoft SQL Server is not running on the standard port (1433), you should add “:port” after the domain name, where port is the port number, i.e.:

jdbc:sqlserver://localhost:port;databaseName=Jahia

2.4 Other preparations and checks

Check that you have no TOMCAT_HOME and no CATALINA_HOME environment variable set.