Server system requirements
  • 17 May 2023
  • 3 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

Please refer to our Recommended hosting environments page for best practices.

The following is the minimum supported environment:


  • Recommended: CentOS, Red Hat, or Ubuntu
  • 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


  • Recommended: 8.0.x, 7.4.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.


  • PostgreSQL
    • Supported: 14.x, 13.x, 12.x, 11.x, 10.x
    • Not supported: major releases greater than 14, 9.6 and lower
  • MariaDB
    • Recommended: 10.6.x
    • Supported: 10.8.x, 10.7.x, 10.6.x, 10.5.x, 10.4.x, 10.3.17+
    • Not supported: major releases greater than 10.8, 10.3.16 or lower
    • innodb_read_only_compressed: For MariaDB 10.6 onwards, this setting must be off
  • MySQL
    • 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
    • Supported: 14.0 (2017) or greater
    • Not supported: 13 (2016) and lower
  • PostgreSQL settings
    • enable_memoize: For PostgreSQL 14.0 and 14.1, this setting must be off

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:

© Copyright 2023 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.