Actions

System Administrator's Guide/Requirements: Difference between revisions

From Mahara Wiki

< System Administrator's Guide
 
(66 intermediate revisions by 8 users not shown)
Line 1: Line 1:
The following article lists the software and hardware requirements for any Mahara installation. There is a sister article on [[System Administrator's Guide/Scalability|scalability]] that provides more details in particular about the hardware.
The following article lists the software and hardware requirements for Mahara. There is a sister article on [[System Administrator's Guide/Scalability|scalability]] that provides more details in particular about the hardware.


<div id="section_1">
== Mahara version ==
 
We attempt to keep this article up to date to reflect the [[SupportedVersions|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:
 
; 22.10 : https://git.mahara.org/mahara/mahara/blob/22.10_STABLE/README.md
; development : https://git.mahara.org/mahara/mahara/blob/main/README.md


==Software==
==Software==
Line 7: Line 12:
===Recommended Platform===
===Recommended Platform===


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 '''recommended''' platform is:
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: '''Linux''' - Debian Lenny or later, and Ubuntu Lucid or later, are the distributions that the core developers use, and so Mahara is best tested there.
* Server OS: '''Ubuntu Linux''' latest LTS
* Web Server: '''Apache''' - 2.0 or greater
* Web Server: '''Apache2''' latest 2.4.x version
* Database Server: '''PostgreSQL''' - 8.3 or greater
* Database Server: '''PostgreSQL''' latest 12.x version
* Language: '''PHP''' - 5.3 or greater
* Language: '''PHP''' - PHP 7.4+, 8.1+
* Web Browser: '''Firefox''' - latest version at time of Mahara release
* Web Browser: latest version of
** '''Firefox'''
** '''Chrome'''
** '''Safari'''
** '''MS Edge'''


===All Possible Software Options===
===All Possible Software Options===
Line 23: Line 34:
Mahara is '''officially supported''' on the following operating systems:
Mahara is '''officially supported''' on the following operating systems:


* '''[http://www.debian.org/ Debian GNU/Linux]''', all versions from 5.0/"Lenny"
* '''[http://www.debian.org/ Debian GNU/Linux]''', all versions from 11/"Bullseye"
* '''[http://www.ubuntu.com/ Ubuntu GNU/Linux]''', all versions from 10.04/"Lucid Lynx"
* '''[http://www.ubuntu.com/ 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:
Mahara is not officially supported, but '''known to work or mostly work''', on the following operating systems:
Line 38: Line 49:
Mahara is '''officially supported''' on the following web servers:
Mahara is '''officially supported''' on the following web servers:


* '''[http://httpd.apache.org/ Apache]''', all versions from 2
* '''[http://httpd.apache.org/ Apache]''', all versions from 2.4


Mahara is not officially supported, but '''known to work or mostly work''', on the following web servers:
Mahara is not officially supported, but '''known to work or mostly work''', on the following web servers:
Line 48: Line 59:
Mahara is officially supported on the following database servers:
Mahara is officially supported on the following database servers:


* '''[http://www.postgresql.org/ PostgreSQL]''', all versions from 8.3
* '''[http://www.postgresql.org/ PostgreSQL]''', all versions from 9.5
* '''[http://www.mysql.com/ MySQL]''', all versions from 5.1. Note that you will need InnoDB table support
* '''[http://www.mysql.com/ MySQL]''', all versions from 5.6. Note that you will need InnoDB table support
** (And equivalent '''[https://mariadb.org 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.
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.
Mahara is not supported or known to work on any other database server.
Line 57: Line 71:
====PHP====
====PHP====


PHP version 5.3 or later is required. In addition, you'll need the following extensions:
PHP version 7.4.x or later is required. In addition, you'll need the following extensions:


* gd (include Freetype support)
* gd (include Freetype support)
* json
* curl
* curl
* libxml
* SimpleXML
* session
* pgsql OR mysqli
* pgsql OR mysqli
* For networking support: openssl and xmlrpc
* For networking support: openssl and xmlrpc
* mbstring
* mime_magic OR fileinfo
* mcrypt
* mcrypt
* intl - For language internationalisation
* zip and unzip utilities (necessary for portfolio exports)
* zip and unzip utilities (necessary for portfolio exports)
* Optionally: imagick
* 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
* Recommended: zlib, zip, bz2


You should make sure that <code>magic_quotes_gpc</code> is off, and that <code>register_globals</code> is off. Mahara will work around these settings if they're on, but it's better if you turn them off.
You should make sure that <code>magic_quotes_gpc</code> is off, and that <code>register_globals</code> is off. Mahara will work around these settings if they're on, but it's better if you turn them off.
====Web Browser====
Mahara should work in any modern web browser with JavaScript. However current stable is only actively tested in the following browsers:
* 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.


==Hardware==
==Hardware==
Line 92: Line 118:


For more detailed information about choosing the right hardware, check out the [[System Administrator's Guide/Scalability|scalability]] article.
For more detailed information about choosing the right hardware, check out the [[System Administrator's Guide/Scalability|scalability]] article.
</div><div id="section_10">


==Requirements FAQ==
==Requirements FAQ==
Line 99: Line 123:
Here are some commonly asked questions about the requirements:
Here are some commonly asked questions about the requirements:


<div id="section_11">
===Can I use Mahara on Windows?===


===Can I use Windows to host Mahara?===
Yes, absolutely!


Users may access Mahara with a standard web browser. 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. Mahara 1.1 and beyond should be installable on Windows, however.
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.


[[System Administrator's Guide/Installing Mahara/Installing Mahara in Wampserver|Instructions for installing using WAMP Server]] are available for Mahara, which may help you too.
===Can I host Mahara on Windows?===


</div><div id="section_12">
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.


===Will Windows be supported in future?===
Because [[Developer_Area/Mahara_project_overview#Who_makes_Mahara.3F|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.


Windows support, when it comes is likely to be addressed through our Partner programme or through a specific client funded request. For now, you should be able to install Mahara on Windows without too much bother, but 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?===


</div><div id="section_13">
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!
 
===What about hosting Mahara on Solaris/Mac/BSD/Other 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===


</div><div id="section_14">
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.


===What about using Other Web Server/Other Database/Other PHP?===
Mahara is [[Developer_Area/Mahara_project_overview#Who_makes_Mahara.3F|primarily maintained and developed]] by the Mahara team at [https://www.catalyst.net.nz 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 [https://www.catalyst.net.nz/what-we-offer/learning-and-development/mahara-support-packages Mahara support package], or contract with Catalyst for larger requests.


No other webservers are tested, you're on your own. Please contact the dev team in #mahara/on forums if you're interested in implementing support for other databases. PHP 5.1+ is required, all versions above this should be fine.
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.


</div><div id="section_15">
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]].


===Can I use shared hosting?===
===Can I use shared hosting?===
Line 131: Line 153:
Maybe. It depends on your host. Some hosts disable certain functions (e.g. <code>exec</code>) 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.
Maybe. It depends on your host. Some hosts disable certain functions (e.g. <code>exec</code>) 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 your host has disabled exec, you may lose some functionality - for example, the ability to use Import/Export.
If you would still like to install Mahara on shared hosting, you can [http://linx.ml/view/view.php?t=4LvhtJH8NgEMfy1Ii3R5 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.


Hosts often (stupidly) set AllowOverride None, meaning that .htaccess isn't allowed. If you are getting 500 errors when trying to set up your site, you may find commenting out the php_flag lines, or removing the .htaccess file is necessary. This will not cause a critical reduction in functionality, but if you are forced to remove the entire file it '''will''' make your site less performant than it otherwise would be. ['''Note''': The .htaccess file may be invisible on Mac OS X and your server; it may be best to make changes to this file from a Windows based PC and upload it from that platform, which is possible despite the fact that it may appear as a nameless file.]
===npm and nodejs are not available in the Debian repo. How do I install them on my Debian server?===


If you would still like to install Mahara on shared hosting, a detailed guide with screen shots and video tutorials is available on http://mygreatlearningsite.com/. 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.
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.


</div><div id="section_16">
To install npm and nodejs on Debian, you'll need sudo access:
<pre>
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
</pre>


===I am confused by all of this, where do I go to get help now?===
===I am confused by all of this, where do I go to get help now?===


To the [http://mahara.org/interaction/forum/view.php?id=2 Mahara Support forums], or #mahara on freenode.
To the [http://mahara.org/interaction/forum/view.php?id=2 Mahara Support forums], or #mahara:matrix.org
 
</div></div>

Latest revision as of 14:37, 24 March 2023

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.

Mahara version

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:

22.10
https://git.mahara.org/mahara/mahara/blob/22.10_STABLE/README.md
development
https://git.mahara.org/mahara/mahara/blob/main/README.md

Software

Recommended Platform

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
    • Firefox
    • Chrome
    • Safari
    • 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.

Server OS

Mahara is officially supported on the following operating systems:

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!

Web Server

Mahara is officially supported on the following web servers:

Mahara is not officially supported, but known to work or mostly work, on the following web servers:

Database Server

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

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

PHP version 7.4.x or later is required. In addition, you'll need the following extensions:

  • gd (include Freetype support)
  • curl
  • pgsql OR mysqli
  • For networking support: openssl and xmlrpc
  • mcrypt
  • 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.

Web Browser

Mahara should work in any modern web browser with JavaScript. However current stable is only actively tested in the following browsers:

  • 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.

Hardware

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.

Requirements FAQ

Here are some commonly asked questions about the requirements:

Can I use Mahara on Windows?

Yes, absolutely!

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.

Can I use shared hosting?

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