Moodle LMS: Installation & Setup

I decided to install and setup a Moodle LMS for three reasons:

  1. Initially, it was for experimentation and curiosity
  2. I decided a LMS would be a good place to host my elearning courses
  3. I realised that I could use the installation, setup and administration in my final university project

If you’ve read my blog, you will be familiar with my posts regarding the setup and administration.

Planning and Development

The real planning and development actually came after the installation. It was only once I decided to use the LMS as the basis for my final university project that I decided to plan my administration approach. Once Moodle was installed, I draw up an outline of what the LMS must be capable of. Three key points came to mind:

  1. The LMS must be capable of hosting SCORM packages, as the hosted elearning courses would be designed in Articulate 360.
  2. The LMS must have a quiz function, or the ability for a quiz plugin to be used.
  3. The LMS must allow students to upload work and provide them with feedback/a score.

These requirements became the functionality requirements. As for the design, the requirements were:

  1. The LMS must have a simple design which is easy to use and navigate

I then created a schedule for the work – the deadline, August 2018. After doing some initial research into quiz functionality, I decided to use the default quiz engine, mostly just to save time on testing.


I created a virtual machine in VMWare Workstation, installed Server 2008 R2 and setup the machine as a web server with Apache. Moodle requires a web server, PHP and a database to function. I installed PHP version 7 and used MySQL to host the database.

I also had a crack at installing Moodle in another virtual machine using the Microsoft Web Platform Installer – a one stop executable which installs all the required Moodle components, then runs through some final setup steps such as web server configuration and database setup.

Both installations worked – however I did feel more in control setting everything up manually. It also meant I could access granular settings that were missed in the WebPI installation. In a production environment you’re more likely to setup an LMS from scratch, manually, as Apache and MySQL may already be configured (you may also decide, or have in house skills in other web server technologies, like IIS) As a side note, I would always install an LMS on it’s own server, if possible. It just makes things like backups and maintenance easier. You also need to consider the network traffic that may hit your server. If you have a WordPress blog, Moodle LMS and something like an Umbraco CMS running on one server and the server goes down, all apps go down!

After my experiments on a virtual machine, I decided to research how to move my LMS to a more permanent home in the Cloud. I discovered that my WordPress host, TSO Hosts, offer a LMS installation using cPanel. cPanel is a Linux-based tool that provides web admins with a graphic interface for web application installation. The installation was similar to the WebPI install and after about half an hour I was ready to get started setting up Moodle (Note that in this instance, due to my budget, I had to install everything onto one server).

I had already purchased web hosting and a domain name for my LMS, so I didn’t need to change any settings here. All I needed to do was create a new website, make sure my installation directory was correct and that the database was setup and accessible.

Once the initial setup and installation was complete, it was then time for administration. It took about 3 months of on and off development work to setup my LMS to specification – this included applying a theme, altering some of the CSS (which actually isn’t straight forward and took a long time, experimenting and testing) removing unnecessary features, setting up course shells and creating users. An entire day was dedicated just to updating Moodle to the latest version (which required a PHP update on my web server via the cPanel), although backing up the server and testing took up most of the time.

I then went onto creating a course shell, uploading the company logo, course logo and created the course content; assignments, quizzes and SCORM packages.


Moodle is a free open source LMS, however it’s not as sleek as some of the more modern systems out there and I quickly found that it’s not the most straight forward system to use. However, the knowledge I gained from the installation, setup and administration has helped me greatly in my career as some of the businesses I have worked with use Moodle.

One of my biggest achievements was designing and setting up my own badges for one of the hosted elearning courses in the LMS. Although in the future, budget permitting, I would buy pre-designed badges and alter them rather than designing them from scratch.

I am happy with the overall outcome of the project, however I would like to refine the theme further at a later date. I’d also like to create a small Getting Started guide for new users, or possibly a video.

Since the project launched, I have experimented with integrating a WordPress shop with Moodle, to allow users to purchase courses online, allocate courses and create accounts with Single Sign-on (SSO) This mini project has been somewhat successful, but it’s unfinished and time-consuming and I will talk about this in another post at another time.

Skills Demonstrated
  • Project planning and management
  • Web development skills
  • LMS installation, setup and administration
  • Content administration
  • Server administration
  • Design
Tools and Software Used
  • Server 2008 R2 / PHP / Apache
  • Microsoft Web Platform Installer
  • cPanel
  • Filezilla (ftp client)