Prerequisites and system requirements
Suggested minimum configuration
The following table shows suggested minimum configurations for development and production environments.
Development | Production | |
---|---|---|
Processor | Dual Core | Quad Core |
Memory | 4 GB RAM (2 GB RAM for Jahia) | 8 GB RAM (4 GB RAM for Jahia) |
Disk space | 5 GB | 100 GB |
Java Virtual Machine (JVM)
Jahia requires the Java Development Kit (JDK) package to run on your environment. Jahia 8 is compatible with the following JDK versions:
- OpenJDK 11
- Oracle JDK 11
- OpenJDK 8
- Oracle JDK 8
You can verify the current installed version of Java by entering the following command line at the prompt in your system:
java -version
You must set the JAVA_HOME
environment variable to the JDK installation directory.
Resources are available online to show you how to installing a JDK:
- https://openjdk.java.net/install/
- https://stackoverflow.com/questions/52511778/how-to-install-openjdk-11-on-windows
Database
Jahia Enterprise Distribution is distributed by default with the Sun Java DB/Apache Derby database engine. For getting started or rapid prototyping purposes, you can use the provided database as is. In production or for developing an advanced project, use a standalone database instead. This section addresses only the mandatory configurations. Please refer to Fine tuning your Jahia server before going live.
Your database should be UTF-8 compliant. Have this in mind when creating a new database for Jahia. Default settings allow Jahia to run on an embedded Apache Derby, or standalone PostgreSQL, MySQL, MariaDB, Microsoft SQL Server and Oracle (supported versions are mentioned in the supported stack). During the Jahia installation, you will have to provide the URL to the database you have created for Jahia (this does not apply if using the embedded Apache Derby). These connection strings are different for each database.
Jahia may detect bugs in certain DB versions which would cause errors in Jahia. Jahia performs validations during installation which will not allow installing Jahia with these database versions.
MySQL
The default database URL (the connection string) for MySQL is:
jdbc:mysql://localhost/jahia?useUnicode=true&character Encoding=UTF-8&useServerPrepStmts=false
where localhost
should be replaced by the fully qualified domain name (for example, mysql.mydomain.com
) or IP address of the MySQL server if it is not located on the same machine as the Jahia server, and jahia is just the default name of the database where Jahia 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. Jahia 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 put in your my.cnf
or my.ini
file:
#
# * InnoDB
#
# InnoDB is enabled by default with a 10 MB 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 Jahia will prohibit installation. If you have chosen to store the files in the database, the value 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 Jahia limitation should not be bigger than the database limitation, otherwise the Jahia UIs will allow files to be uploaded that the database will not be able to store.
max_allowed_packet = 1024M
PostgreSQL
The default database URL (the connection string) for PostgreSQL is:
jdbc:postgresql://localhost:5432/jahia
where jahia
is the default name of the database where Jahia tables will be created. If your PostgreSQL server is located on a distant computer and/or on a non-default port (5432
), adjust the connection URL accordingly. Make sure your PostgreSQL server is accepting TCP connections. Refer to your database documentation for detailed instructions on how to configure PostgreSQL to accept TCP connections.
With Jahia 8.0 and 8.1, an issue can occur when using the VACUUMLO
maintenance and cleanup command on the database side. This action is used to free space inside the database by removing unreferenced objects inside the pg_largeobject
large objects fields table. Because of the way the Jahia database creation schema is designed, the command may incorrectly identify some large objects inside the pg_largeobject
table as unreferenced when these objects are actually in use. When running the VACUUMLO
command, PostgreSQL may delete these large objects from the database 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.
To run VACUUMLO
safely against Jahia schema, you must first execute an additional step. Before running the VACUUMLO
command, you must 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 Jahia tables into a dedicated view. After that you can run the VACUUMLO
command which will clean up the orphaned large objects. Each additional time that you run the VACUUMLO
command, you must first refresh the view.
refresh materialized view jahia_oid
Oracle
Jahia Enterprise Distribution also comes with JDBC drivers for Oracle. 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 (for example, oracle.mydomain.com
) or the IP address of the Oracle Server if it is not located on the same machine as the Jahia server, and jahia is the default name of the database where Jahia tables will be created. 1521
is the standard port for Oracle. If you Oracle server is running on a different port, change it here.
Microsoft SQL Server
Jahia 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 (for example, sqlserver.mydomain.com
) or the IP address of the Microsoft SQL Server if it is not located on the same machine as the Jahia server, and jahia is the default name of the database where Jahia tables will be created. If your Microsoft SQL Server is not running on the standard port (1433
), add :port
after the domain name, where port
is the port number, for example:
jdbc:sqlserver://localhost:port;databaseName=Jahia
Tomcat and Catalina environment variables
Ensure that you do not have TOMCAT_HOME
and CATALINA_HOME
environment variables set.
About frameworks used by Jahia
For more information about frameworks used by Jahia, see Jahia embedded frameworks.