Moodle is an open-source learning management system (LMS) that provides a platform for educators and learners to create, manage, and participate in online courses and educational activities. Moodle is widely used in schools, universities, and other educational institutions to facilitate online learning, course management, and collaboration.

Moodle and MySQL have always been a very powerful combination.

If you want to deploy Moodle on OCI, you can use Ampere compute instances as application servers and MySQL HeatWave Database Service as database server.

Depending on your requirements, MySQL HeatWave can provide High Availability and Query Acceleration.

In this post, we will see the easiest and fasted way to deploy the following basic architecture:

Moodle on OCI - Architecture

In OCI to quickly deploy an architecture and all the required resources, it’s recommended to use a Stack (Terraform recipes and modules). 

So deploy all the resources we need (VCN, Subnets, Security Lists, Internet Gateways, Compute Instances…) we just need to click on the following button:

Deploy on OCI

When you click on it, if you are already connected to OCI, you will be redirected directly to Resource Manager Stack where you need to accept the Oracle Terms of Use and use the latest available Terraform version:

Create Stack

Terraform version

Then on the next screen, you can specify the required credentials and select the shapes. By default, the Always Free Ampere Compute Instance is selected and you can manually specify the amount of OCPUs and Memory to use:

Shape Selection

You can click on next and create. All resources will be deployed on OCI. After some time, the Stack Job will finish and if all went well, it should turn green:

Stak Job Succeeded

Using the Application Information tab, you will find all the relevant information to reach the new deployed Moodle and finish the installation:

Stack - Application Information

Click on the url (1) and finish the installation:

Moodle Installation  - part 1

We need to choose Improved MySQL (mysqli) as database driver:

Moodle Installation  - part 2 - Database Driver

And we provide the information related to the MySQL HeatWave Instance deployed:

Moodle Installation  - part 2 - Database Settings

 

Finally, after having finished the installation, Moodle’s dashboard is available:

Moodle Dashboard

As you can see, using OCI’s Resource Manager via a Stack is very easy to deploy Moodle. You can also use an Ampere Shape as application server.

If you connect to the Compute Instance hosting Moodle (in ssh), you can verify the architecture (ARM) and the version of the Operating System:

[opc@moodleserver1 ~]$ lscpu
Architecture:           aarch64
  CPU op-mode(s):       32-bit, 64-bit
  Byte Order:           Little Endian
CPU(s):                 1
  On-line CPU(s) list:  0
Vendor ID:              ARM
  Model name:           Neoverse-N1
    Model:              1
    Thread(s) per core: 1
    Core(s) per socket: 1
    Socket(s):          1
    Stepping:           r3p1
    BogoMIPS:           50.00
    Flags:              fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp
                        asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
NUMA:                   
  NUMA node(s):         1
  NUMA node0 CPU(s):    0
Vulnerabilities:        
  Itlb multihit:        Not affected
  L1tf:                 Not affected
  Mds:                  Not affected
  Meltdown:             Not affected
  Mmio stale data:      Not affected
  Retbleed:             Mitigation; CSV2, BHB
  Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:           Mitigation; __user pointer sanitization
  Spectre v2:           Mitigation; CSV2, BHB
  Srbds:                Not affected
  Tsx async abort:      Not affected

[opc@moodleserver1 ~]$ cat /etc/oracle-release
Oracle Linux Server release 9.1

This is a video with all the steps:

Enjoy Moodle on MySQL HeatWave !