Server system requirements
  • 31 Jan 2024
  • 4 minutes to read

Server system requirements


Article Summary

Server hardware

The following hardware specification illustrates an example of a system hosting a site with approximately 10,000 users (approx. 500 concurrent):

  • Processor: 2x Quad Core Xeon
  • Memory: 16GB
  • Storage: SATA storage as required by your needs. Totara requires minimal storage for itself.
  • Connectivity: 100MBit Full-Duplex Dedicated Switch Port Connection

Specific hardware requirements for your project will depend on the volume of anticipated concurrent users and other factors.

It is strongly recommended that Totara sites use SSL.

Server software

Minimum supported environment vs recommended hosting environment

Each major Totara release stipulates minimum supported environments. This information can be found directly within the readme.md file distributed with the source code, or in the table below.

The minimum supported version indicates the minimum version of the software that Totara is designed to run, that is tested by us, and that we support. The versions given for a major Totara release are never changed except in exceptional circumstances (such as if a future release of the required software introduces a backwards-incompatible issue that is otherwise impossible for us to work around).

All maintained and supported software improves over time. While the minimum supported environment does not change, it is strongly recommended that required software is regularly and routinely upgraded as newer versions are made available. This will ensure that your web server is patched and secure.

Minimum and recommended environments

The following are the minimum and recommended supported environments:

OS

We recommend using a Linux-based operating system for hosting of web servers.

  • Recommended: RHEL / CentOS, or Ubuntu LTS
  • Debian, OSX, or any unix-based operating system should be compatible.
  • Windows Server
    It should be noted that Microsoft have announced that they are discontinuing their support for future PHP versions in Windows from PHP 8.0 as per PHP Internal mailing list post.

Web server

  • Apache 2.4.x
  • Nginx 1.20+
  • IIS 8.x

PHP

  • Recommended: 8.1.x, 8.0.x
  • Supported: 8.1.x, 8.0.x, 7.4.3+
  • Not supported: 7.4.2 or lower, 8.2 or greater

Required modules: curl, ctype, dom, gd, iconv, intl, json, mbstring, pcre, simplexml, spl, xml, zip, zlib

Recommended extensions: openssl, tokenizer, xmlrpc, soap, opcache, exif. For PHP 8.0 onwards, opcache.jit_buffer_size must be 0 or not set.

Database

  • PostgreSQL
    • Recommended: 14.5+
    • Supported: 15.x, 14.x, 13.x, 12.x, 11.x
    • Not supported: major releases greater than 14, 10 and lower
    • enable_memoize: For PostgreSQL 14.0 and 14.1, this setting must be off
  • MariaDB
    • Recommended: 10.6.9+
    • Supported: 10.11.5+, 10.6.3+, 10.5.4+, 10.4.6+, 10.3.17+
    • Not supported: non-stable releases, major releases greater than 10.11, short-term releases 10.7-10.10, 10.3.16 or lower, 10.2 or lower
    • innodb_read_only_compressed: For MariaDB 10.6 onwards, this setting must be off
  • MySQL
    • Recommended: 8.0.29+
    • Supported: 8.0.x, 5.7.21+
    • Not supported: major releases greater than 8.0, 5.7.20 or lower, 5.6.x and lower
  • MSSQL
    • Supported: 14.0 (2017) or greater
    • Not supported: 13 (2016) and lower
Some Linux distributions extend the life cycle of database engines by selectively backporting fixes to significant issues such as security bugs. In these situations you should ensure that you understand the backport policy of the distribution you choose to use to ensure that the database you are using is secure and stable.

Server PHP configuration

There are some PHP configuration variables that may need to be customised, depending on your needs. The variables that are commonly changed are detailed below:

  • memory_limit: Required minimum is 512MB, however on large installations or where working with large datasets this may need to be increased.
  • post_max_size: Ensure that this is larger than the largest file that you expect your users to upload.
  • upload_max_filesize: This setting in conjunction with post_max_size will determine how high you can set the maximum upload size within Totara.
  • max_input_vars: This setting will need to be increased to a minimum of 10000 if you would like to customise any of the Totara language packs.
  • upload_tmp_dir: Some customers may wish to enable this setting and specifically set a directory where files are temporarily stored during the upload process.
  • opcache.enable: If the opcache extension is installed then enabling opcache is recommended for performance reasons. This is enabled by default in modern versions of PHP.

Note that the web server user must have permissions to write files in this directory, or all file uploads will fail.

A thread safe PHP version is required to be installed if you are using a multithreaded server such as Apache, or a non-thread safe PHP version if you are running PHP as a CGI binary such as FastCGI.

MSSQL settings

  • Case-sensitive collation: It is recommended you use case-sensitive collation such as Latin1_General_CS_AS
  • Enable ANSI NULLS: To ensure null values are treated correctly you should ensure that ANSI_NULL is enabled
  • Enable Quoted Identifiers: It is recommended that quoted identifiers (also known as delimited identifies) are turned on
  • Enabled Read Committed transaction: It is advised you set this to READ_COMMITTED_SNAPSHOT to protect your transactions
  • Full-Text Search: This setting is on by default in MSSQL, so it should already be enabled unless you explicitly turned it off previously

For more information see How to setup FTS component in MSSQL in the developer documentation.

Please note that with PHP 7 you must use sqlsrv drivers. If you were previously using mssql drivers then you will need to reconfigure for the use of sqlsrv drivers. 

Totara is able to connect to SQL server without a username/password by using integrated Windows authentication. You will need to configure the application pool identity of your website if this is necessary for your system environment.

For more information, please refer to the following articles by Microsoft:

Caching

By default Totara will use the site data directory as an application cache. While this works perfectly fine, there are dedicated caching solutions that will deliver better performance. We recommend that production sites employ one or more dedicated caching solutions such as Memcached or Redis, both of which are supported by Totara.

© Copyright 2024 Totara Learning Solutions. All rights reserved.


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.