E-learning System

Moodle E-learning System

Build Learning Site With Open Source Elearning Platform

Quickly create an e-learning platform with one of the popular Moodle open source system. Create and distribute own courses & training materials to the trainees.


Moodle is an open source learning management system (LMS). It is a 100% free e-learning system. Moodle stands for Modular Object-Oriented Dynamic Learning Environment. Moodle allows developers to create online learning sites in a matter of minutes. It’s an open source learning platform that’s both stable and scalable. Moodle open source was created to make it simple for teachers, students, and administrators to develop and distribute tailored content. This open source e-learning platform includes a modern customizable dashboard and a user-friendly layout. Furthermore, it is appropriate for a wide range of institutions and organizations all around the world.

Moodle comprises a wide variety of features, including collaborative tools and activities, an all-in-one calendar, progress tracking, multilingual reporting, and much more. Moodle has also implemented e-learning standards such as SCORM (Sharable Content Object Reference Model), AICC HACP, IMS, and Learning Tools Interoperability (LTI). By selecting a suitable theme, users can change the look and feel of the site or a specific course. Users can enhance the main functionality of Moodle using the plugins feature. There are numerous plugins available that can be utilized to enhance the functioning of the site. Furthermore, developers can tailor their plugins to meet the needs of their customers.

Moodle has a mobile app for iPhone, Android, and Windows phones and tablets. Users can utilize the mobile app from any location. This e-learning system is written in PHP and stores data in MySQL/PostgreSQL databases. It comes with extensive user and developer documentation. The license for this open source e-learning platform is GPLv3+.

System Requirements

In order to install Moodle, you must have the following softwares:

  • Nginx
  • PHP 7.3.0 or greater
  • MySQL 5.7 or greater


Following are the key features of Moodle:

  • Modern and easy to use interface
  • Personalised dashboard
  • File management
  • Track progress
  • Notifications
  • Multilingual capability
  • Customisable site design and layout
  • Manage user roles and permissions
  • High interoperability
  • Plugin management
  • Peer and self assessment
  • Competency based marking

Installation Instructions

Install Moodle on Ubuntu 18.04 LTS with Nginx

Install Nginx Web Server

Nginx is the most popular and secure web server. In order to install Nginx, use the following command

 sudo apt install nginx 

Once the Nginx is install, configure the domain and restart the Nginx by using the following command

 sudo service nginx restart 

Install MySQL Server

Next, need to install database Server, use the following command to install MySql server

sudo apt-get update;  
sudo apt-get install mysql-server; 

Once, the database server is installed, use the following command to restart MySql server

sudo service mysql restart 

Run commands to add a third-party PPA to Ubuntu.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

Now, run the following command to install PHP 7.4 and related modules.

sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-soap php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip

Create Database for Moodle

Now, you have installed all the required software and the next step is to login to mysql server and create Moodle database. Use following command to create database. Change with your database name.


Create a database user called “moodle” with new password. and granted user full access to the database by running the following commands. Change with your desired database user and with your desired password.

CREATE USER 'moodleuser'@'localhost' IDENTIFIED BY 'password_here'; 
GRANT ALL ON moodle.* TO 'moodleuser'@'localhost' WITH GRANT OPTION;

Download Moodle

Next, run the commands below to change directlory download and download Moodle.

cd /var/www/
sudo git clone -b MOODLE_38_STABLE git://git.moodle.org/moodle.git moodle

Run the following commands to set permissions.

sudo mkdir -p /var/www/moodledata
sudo chown -R www-data:www-data /var/www/
sudo chmod -R 755 /var/www/
sudo chown www-data:www-data /var/www/moodledata

Create Nginx config file for Moodle site.

sudo nano /etc/nginx/sites-available/moodle

Add below code into it and save the file.

server {
    listen 80;
    listen [::]:80;
    root /var/www/moodle;
    index  index.php index.html index.htm;
    server_name  example.com;

    client_max_body_size 100M;
    autoindex off;
    location / {
        try_files $uri $uri/ =404;

    location /dataroot/ {
      alias /var/www/moodledata/;

    location ~ [^/].php(/|$) {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

Create symlink to enable newly created site.

sudo ln -s /etc/nginx/sites-available/moodle /etc/nginx/sites-enabled/

Restart Nginx web server.

sudo systemctl restart nginx

Now, open browser and type http://example.com to access the site. Follow installation wizard to install Moodle.


You may find the following links relevant: