The following hardware specification illustrates an example of a system hosting a site with approximately 10,000 users (approx. 500 concurrent).
- Platform: Dell PowerEdge 2950
- Processor: 2x Quad Core Xeon E5420 @ 2.5GHz
- Memory: 4GB
- Storage: 4x 146GB 10,000RPM hard disks
- Dell PERC 6 RAID controller
- 160MB disk space required for core Totara Learn files
- 1-5GB or greater disk space required for additional teaching and course materials
- 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. If you require more information please speak to your Partner, of if you have an account speak with our Helpdesk to determine your exact requirements.
- If your database is Postgres you must set
standard_conforming_stringsto "off" and
escape_string_warningto "off" in your postgresql.conf file
If your database is MySQL or MariaDB, your database must use Barracuda file format
If your database is MSSQL, your database user must have the permissions: ALTER SETTINGS(SERVER)
It is recommended that Totara Learn sites are installed via SSL.
A Linux based system is recommended for high performance, e.g. CentOS, Redhat, Ubuntu Server Edition.
Apache 2.x.x or IIS (Apache recommended).
Postgres 9.4 or greater.
MariaDB 10.2.6 or greater (require barracuda- see more information on converting in the Technical documentation).
MSSQL 2016 or greater.
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 256 MB however on large installations or where working with large datasets this may need to be increased
- upload_max_filesize: This setting in conjuction with post_max_size will determine how high you can set the max upload size within Totara Learn
- 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 Learn 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.
Note 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.
- Case sensitive collation: It is recommended you use a case sensitive collations such as Latin1_General_CS_AS
- Enable ANSI NULLS: To ensure null values are treated correctly you should ensure that ANSI_NULL is on
- 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 settings 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:
It is always recommended that you run the latest supported version of software as this will offer the best performance alongside security and stability.
For example, the minimum requirement for Totara 11 is Postgres 9.2, but it is recommended that you run the latest release.
Using the latest supported version of software can really help improve performance, for example upgrading from an older version of PHP to the latest release can improve performance by around 30% on every single page load. You will also see performance improvement by using that latest stable version of MySQL.