System Administrator's Guide/Requirements
From Mahara Wiki
The following article lists the software and hardware requirements for Mahara. There is a sister article on scalability that provides more details in particular about the hardware.
We attempt to keep this article up to date to reflect the latest stable release of Mahara. For the system requirements for older Mahara versions, check the README file in the release's zip file, or look in the git repository for your branch or release, for example:
Please see the README file in the code that you downloaded for up-to-date information on the system requirements that Mahara supports for the particular version that you are installing.
Mahara is designed to run on variants of the popular LAMP stack. Apart from the PHP requirement, all other parts can be swapped for alternatives if necessary. However, the platform used by the core developers (and so most thoroughly tested) is:
- Server OS: Ubuntu Linux latest LTS
- Web Server: Apache2 latest 2.4.x version
- Database Server: PostgreSQL latest 12.x version
- Language: PHP - PHP 7.4+, 8.1+
- Web Browser: latest version of
- MS Edge
All Possible Software Options
While we have a recommended platform, Mahara will run successfully using replacements for parts of the stack. All possible options, supported and unsupported, are listed here.
Mahara is officially supported on the following operating systems:
- Debian GNU/Linux, all versions from 11/"Bullseye"
- Ubuntu GNU/Linux, all versions from 20.04/"Focal Fossa"
Mahara is not officially supported, but known to work or mostly work, on the following operating systems:
- Most other variants of Linux, including Red Hat Enterprise Linux, CentOS, Slackware, Fedora and SUSE.
- Microsoft Windows - all desktop versions from XP, all server versions from Windows Server 2003.
- Mac OS X Server, from Tiger upwards (note that people seem to be having more luck with Leopard and above).
Currently, we're not certain of the status of Mahara on other operating systems (Solaris springs to mind). If you know more, feel free to add them to the above list!
Mahara is officially supported on the following web servers:
- Apache, all versions from 2.4
Mahara is not officially supported, but known to work or mostly work, on the following web servers:
- nginx (using fastcgi)
Mahara is officially supported on the following database servers:
- PostgreSQL, all versions from 9.5
- MySQL, all versions from 5.6. Note that you will need InnoDB table support
- (And equivalent MariaDB versions)
Mahara's database must be in UTF8 encoding. In MySQL, you can use any UTF8 collation you like - generally, you'll pick the one that suits your locale.
If you are using MySQL 5.1.5 or older, you need to add the SUPER privilege to Mahara's database user in order to enable the Elasticsearch search plugin. (IF you will not be using Elasticsearch, you don't need this.)
Mahara is not supported or known to work on any other database server.
PHP version 7.4.x or later is required. In addition, you'll need the following extensions:
- gd (include Freetype support)
- pgsql OR mysqli
- For networking support: openssl and xmlrpc
- intl - For language internationalisation
- zip and unzip utilities (necessary for portfolio exports)
- Optionally: imagick
- Optionally: adodb (improves performance)
- The ADOdb PHP extension, written in C, which Mahara will automatically detect and use to improve the performance of its database layer.
- Recommended: zlib, zip, bz2
You should make sure that
magic_quotes_gpc is off, and that
register_globals is off. Mahara will work around these settings if they're on, but it's better if you turn them off.
- Firefox - latest version
- Chrome - latest version
- Safari - latest version
- Opera - latest version
- Microsoft Edge - latest version
- Mobile (phone or tablet)
- Safara for iOS
- Chrome for Android
Some Mahara plugins may require browser plugins for full functionality. For instance, the copy button on the secret URL screen requires the Adobe Flash browser plugin.
Mahara has hardware requirements that are extremely similar to other PHP-based web applications. A detailed analysis of this is provided in the scalability article, but here are some guiding principles:
- Mahara comprises a PHP application, which is CPU bound, and a database, which is IO bound. If you can put the database on a separate host to the web server(s), you'll be able to tune the machines more appropriately, but this isn't necessary for "small" installations (anything up to a few thousand users).
- Mahara requires somewhere between 8 and 32M of RAM for most script invocations. This means that you'll need a decent amount of RAM for your web server(s) in order to support the most number of concurrent connections. So don't be too stingy with the amount of RAM you allocate if you're going to use virtualisation, else the system will crash and burn when you get more than one user using it at once :). Consider at least 1G if you can.
- If possible, putting a reverse proxy in front of Apache is a great idea - it'll allow your site to handle more concurrent users, as Apache processes won't have to stick around while serving data to clients.
- Installing Mahara alongside other webapps like Moodle makes sense - they have similar performance profiles. But remember, this will increase the amount of load you're putting on the system. So again, if installing Mahara in a limited resource environment, you might have to increase some limits.
The minimum requirements are:
- CPU: any modern CPU produced in the last few years is fine, the faster the better naturally. PHP pages are CPU limited, so faster CPUs mean quicker response times.
- Memory: 256MB at an absolute minimum. 1G or more is recommended.
- Disk: This will depend largely on how much disk quota you want each user to have. For a site of 1000 users, each with a 250M quota, you might need 50G to start with.
For more detailed information about choosing the right hardware, check out the scalability article.
Here are some commonly asked questions about the requirements:
Can I use Mahara on Windows?
Mahara can be used on Windows, by accessing a Mahara site (such as https://mahara.org) on a web browser running on a Windows machine. We regularly test Mahara against recent versions of Internet Explorer and Edge, and actively fix any bugs found for users accessing Mahara from a Windows computer.
Can I host Mahara on Windows?
Hosting Mahara on Windows (in other words, running Mahara in IIS or Apache via XAMPP, running on a Windows server), is more complicated. For hosting solutions, Mahara has been designed for Linux, Apache, PHP and an SQL database, and currently there has been very little testing for Windows hosted environments. Some people have done it successfully. You might want to search this wiki and the mahara.org forum for the instructions they've used. Because Mahara was designed to run on Apache, you will probably find it easier to use Apache in XAMPP than to use IIS or another webserver software.
Because Catalyst IT is an all-open-source software company, it is very unlikely the Mahara core team will have the resources to support hosting on Windows any time soon. So while you may be able to install Mahara on a Windows server without too much bother, be aware that we do not officially support this and may not be able to assist you if you have any issues.
What about hosting Mahara on Solaris/Mac/BSD/Other *nix OS?
The developers do not explicitly test for these OSes. While they may well work, there may be issues that the developers cannot help you with. If you come across an issue and work out why it doesn't work, please consider posting in the forums or opening a bug report, so that others may benefit too!
Will Mahara ever support Windows/Solaris/Other webservers/Other databases
Unfortunately, the answer is probably not, unless someone wants to fund this, or offers their own time and services to implement and maintain this functionality.
Mahara is primarily maintained and developed by the Mahara team at Catalyst IT in New Zealand. The Catalyst IT Mahara team (often referred to as "Mahara HQ") is funded primarily by paid client support, hosting, and customization requests. So our highest priority goes to implementing features or bug fixes that are specifically funded by our clients. If you would like to help support the Mahara project by sponsoring a feature or bug fix, you can buy a Mahara support package, or contract with Catalyst for larger requests.
Beyond that, we have a limited number of resources for unfunded maintenance and expansion of the Mahara project. (Catalyst IT is committed to open source software, but is not a charity.) We try to use these resources in areas where they will produce the greatest benefit for the greatest number of Mahara users, and testing Mahara on other hosting platforms is probably not one of those areas.
However, we are very willing to accept patches or implement small code adaptations to make Mahara run more smoothly on other systems. If you can help with this, see Developer Area/Contributing Code.
Maybe. It depends on your host. Some hosts disable certain functions (e.g.
exec) or use safe mode, and these things can badly impact on Mahara functionality. Mahara is not explicitly designed to run on shared hosting - while it is a goal we keep in mind, and will accept patches for, shared hosting by its nature limits what you can do, and you should endeavour to obtain a VPS or dedicated host if at all possible.
If you would still like to install Mahara on shared hosting, you can follow the instructions. This guide will show you how to install Mahara via cPanel and is designed for users who don't have any previous experience with creating websites or setting up databases.
npm and nodejs are not available in the Debian repo. How do I install them on my Debian server?
You will only need npm or nodejs if you are attempting to compile Mahara's theme CSS for Mahara 15.10 or later, after cloning the Mahara git repository. If you're using an earlier version of Mahara, or you downloaded Mahara from the zip file on Launchpad, the CSS files will already be included and this question probably does not apply to you.
To install npm and nodejs on Debian, you'll need sudo access:
echo "deb https://deb.nodesource.com/node_0.12 wheezy main" > /etc/apt/sources.list.d/nodesource.list curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - apt-get install apt-transport-https apt-get update; apt-get install nodejs; npm install -g gulp
I am confused by all of this, where do I go to get help now?
To the Mahara Support forums, or #mahara:matrix.org