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:

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:
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:


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:

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:

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

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

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

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

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

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 !
