Moodle installation – an overview
Before we start installing Moodle, you have to decide which setup is right for your organization. Once you have come to a conclusion, there are a number of prerequisites that you have to provide before we can get started.
Choosing the best setup
There are a number of different environments in which you can set up Moodle. The three main criteria that should dictate the choice of the correct setup are:
- Flexibility: If you want to have full control over your system, be able to tweak system settings, and make frequent changes to the setup, you are best suited to host your own server. However, if your preferred choice is to only administer Moodle while somebody else is looking after the operating system, the web server, and backups, it is better to opt for a professionally-hosted setup, and particularly, the offerings provided by the authorized Moodle Partners.
- Scalability: This is entirely driven by the number of concurrent users, that is, the number of active learners and teachers logged in to Moodle at the same time. A Moodle on a single-processor desktop computer will not be able to cope with hundreds of simultaneously logged-in users. A load-balanced cluster, on the other hand, would be overkill for a small institution with a handful of learners. The following table provides some indicative setups for different types of educational organizations, and is by no means complete:
Max number of concurrent users
Recommended setup
1 (to experiment locally)
Desktop, laptop, memory stick
20 (single class)
Public server or https://moodlecloud.com/en/
100 (small school / company)
Shared server
250 (large school / company)
Dedicated server
500 (medium-to-large college)
Dedicated application and database servers
+500 (university/corporate)
Load-balanced cluster
Please bear in mind that these are only indicative numbers, which are not written in stone, and also depend on the other factors mentioned here. The mentioned hosting option on https://moodlecloud.com/en/ offers free Moodle hosting by Moodle HQ with a number of limitations: maximum number of users is set to 50, storage capacity is limited to 200 MB, there is no ability to install plugins, and there is advertisement displayed throughout the site. This is a good way to try out Moodle, but not intended for production sites.
Organizations require a server (either dedicated or shared) that is either hosted in-house or externally. If you decide to go down the hosted route, it is highly recommended to avoid a cheap hosting package as their systems are not optimized for Moodle usage. This will have a significant impact on the performance of the system, especially with an increasing number of users.
- Cost: Budgetary constraints will certainly play an important role in your setup. Unless you already have the appropriate infrastructure in place, it is likely to be more cost-effective to host your Moodle system externally as it saves you from having to purchase servers and provide a 24/7 data connection that caters to your learners' needs. Licensing cost is significantly higher if you use commercial operating systems, web servers, and database systems, instead of an open source solution. Either way, Moodle is designed to support a wide range of possible infrastructures suitable to your organization's IT policy.
In addition to these three key criteria that usually influence the decision about the underlying infrastructure, there are other factors that will have an impact on your decision, such as in-house expertise, compatibility with other systems, personal preference, and existing resources.
We will cover the three most popular operating systems for hosting Moodle—Linux, Windows, and Mac OS. For other setups such as on a memory stick, in a virtualized environment, or a larger multi-server cluster, please consult your local Moodle Partner (https://moodle.com/). Some hosting companies offer quick one-click installations (often via the Fantastico installer, which usually doesn't contain the latest version). While the resulting Moodle system is sufficient for experimental sites, it is certainly unsuitable for production environments.
Moodle prerequisites
There are a number of hardware and software requirements that have to be satisfied before we can start installing Moodle.
Hardware requirements
These requirements apply if you host Moodle yourself or if it is hosted on an external server (shared, virtual, dedicated, or clustered). On cheaper hosting packages, the hardware configuration is often insufficient to run Moodle efficiently:
- Disk space: Moodle takes up between 150 MB and 200 MB of disk space. However, this only provides you with an empty system and does not take into account the space you require for any learning resources. The faster the disks, the better. RAIDed disks are recommended, but are not essential on smaller installations.
- Memory: The (absolute) minimum requirement is 256 MB for a single-user instance, but more is necessary in a multiuser setup. A good rule of thumb is to have 1 GB of RAM for every 10-15 concurrent users. You have to double this calculation on Windows-based systems due to the higher overhead of the operating system.
Tip
The more RAM the better; the faster the RAM the better.
- CPU: Processor type and speed is important too, but not as important as RAM. As always, the faster the CPU the better, and the more cores a CPU has, the more powerful it will be.
- Network: While Moodle can run on a standalone machine, its full potential is in a networked environment. A fast network card is essential, as is good upload and download speed if the LMS is accessed over the Internet.
Software requirements
While it is recommend to have the latest version installed, for Moodle 3, you must have the following components up and running on your server (release specific notes can be found at https://docs.moodle.org/dev/Releases):
- Database: Moodle officially supports four database systems: MySQL (version 5.5.31 or later utilizing the ACID-compliant InnoDB storage engine), PostgreSQL (version 9.1+), MariaDB (version 5.5.31+) Microsoft SQL Server (version 2008+), and Oracle (version 10.2+).
- Web server: Apache is the preferred web server option, but Moodle works well with any other web server that supports PHP such as Microsoft IIS.
- PHP: PHP 5.4.4 is the minimum PHP version to run Moodle 3. PHP 7 is also supported. There are a number of PHP settings, which you might have to change in the
php.ini
or.htaccess
file (see https://docs.moodle.org/en/Installing_Moodle for more details). - PHP extensions: Moodle makes use of a number of extensions, most of which are compiled into PHP, by default. They are as follows:
- Compulsory extensions:
curl
,ctype
,dom
,gd
,hash
,iconv
,json
,pcre
,simplexml
,spl
,xml
,zip
, andzlib
- Recommended extensions:
intl
,mbstring
,openssl
,tokenizer
,soap
, andxmlrpc
- Conditional extensions:
mysql
,odbc
,pgsql
, (depending on database) andldap
,ntlm
, and so on (depending on authentication mechanism used)
- Compulsory extensions:
Depending on your specific setup, additional software and hardware might be required. It is assumed that the database, web server, PHP, and its extensions have been installed correctly as this is not a VLE administrator task. Once this is the case, we are ready to go.
Tip
Internet Explorer 8 is not supported by Moodle. A modern web browser (Internet Explorer 9+, Firefox 25+, Google Chrome 30+, or Safari 6+) is required to access Moodle.