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.
Please refer to our Recommended hosting environments page for best practices.
The following is the minimum supported environment:
PHP 7.2.10 minimum, it is recommended you use the latest PHP 7.4 release.
Required modules: curl, ctype, dom, gd, iconv, intl, json, mbstring, pcre, simplexml, spl, xml, zip, zlib
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.
- 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: