Installing → Software Requirements

Open XDMoD requires the following software:

Linux Distribution Packages

Open XDMoD is developed and tested with servers running Rocky 8 Linux. The Open XDMoD team use Rocky 8 for their production Open XDMoD software instances.

Rocky 8 is the preferred Linux distribution, however Open XDMoD should be able to run on any Linux distribution that has the appropriate versions of the software dependencies available.

Rocky 8+

NOTE: The php version that is enabled by default in Rocky 8 is php 7.2. Open XDMoD requires php version 7.4 that is supported until May 2029.

dnf module -y reset php
dnf module -y enable php:7.4

The Open XDMoD RPM requires packages that are provided in EPEL.

dnf install -y epel-release

dnf install -y php make libzip-devel php-pear php-devel \
            mariadb-server mariadb

NOTE: The nodejs version that is enabled by default in Rocky 8 is nodejs 10. Open XDMoD requires nodejs 16 which can be installed on Rocky 8 using the nodejs 16 module stream as follows:

dnf module -y reset nodejs
dnf module -y install nodejs:16

NOTE: The php mongodb drivers are not available as RPMs and must be installed using PECL as follows:

pecl install mongodb-1.18.1
echo "extension=mongodb.so" > /etc/php.d/40-mongodb.ini

You can double check that the installation was successful by running the following and confirming that there is output:

php -i | grep mongo

Add the following property to the [server] section of /etc/my.cnf.d/mariadb-server.cnf

sql_mode=

This will instruct your database to operate in permissive SQL mode. We currently require this to be set as XDMoD still relies on behaviors and features only present in older versions of MySQL.

Additional Notes

PHP

Open XDMoD is tested to work with the versions of PHP that is supplied with Rocky 8 (PHP 7.4.33). Open XDMoD 11.0.0 is not compatible with PHP 8.

Some Linux distributions (including Rocky 8) do not set the timezone used by PHP in their default configuration. This will result in many warning messages from PHP and will cause data corruption in the XDMoD datawarehouse if the PHP timezone is different from the OS or Mariadb timezone.

You must set the timezone in your php.ini file by adding the following, but substituting your timezone:

date.timezone = America/New_York

The PHP website contains the full list of supported timezones.

Open XDMoD instances must use HTTPS. HTTP is not supported. HTTPS is enabled via the webserver configuration (see below).

Apache

Open XDMoD must use HTTPS. This requires the mod_ssl module be installed and enabled. The mod_headers module is also recommended so that the HTTP Strict-Transport-Security header can be set on the webserver.

Open XDMoD requires that mod_rewrite be installed and enabled. Since the Open XDMoD portal is a web application you will also need to make sure you have configured your firewall properly to allow appropriate network access.

MySQL

Open XDMoD is tested to work with MariaDB 10.3.39, and may be compatible with more recent releases of MySQL and MariaDB. Open XDMoD is not compatible with MySQL 8.0 at this time.

Refer to the Configuration Guide for configuration details.

Chromium

Chromium is required for graph exporting.

Open XDMoD has been tested with chromium-headless from EPEL, chromium from EPEL was shown to be usable, but is not actively tested.

SELinux

The default SELinux policy on Rocky 8 does not give sufficient permission to the webserver software to perform all tasks required by Open XDMoD, such as connecting to the MariaDB and MongoDB databases, and running the image export tools.

It is recommended to either disable SELinux, or to follow the RedHat SELinux documentation to create an SELinux policy for your server.