Understanding How Moodle Works

Working at a non-profit company has given me many opportunities to learn the behind-the-scenes stuff that I didn’t have access to while working at a university. This is why I learned how to download Moodle and maintain it. Below, I’ll share helpful resources for learning Moodle and an analogy that can help you make sense of how Moodle works.

Learning How to Download Moodle

When I first began my role as an instructional designer, I was overwhelmed by the organization’s terminology. There were acronyms for everything and shortened terms for different stages of projects. I quickly became overwhelmed, so I created a glossary of terms. Every time I learned a new word, I could easily keep track of it.

As I was learning these organizational terms, I was also learning how to navigate the Moodle LMS. In my previous job, I used Blackboard (in the sense that I wrote content and made cosmetic changes to courses.) This all changed when I started sharing responsibilities with my manager as an LMS administrator. All of a sudden, I needed to know how to enroll students, change passwords, and make stylistic changes to courses.

I figured I better learn how to install Moodle and understand the backend, too. This proved useful when I facilitated the Moodle redesign project later on, which I blog about here. My manager shared with me access to a Udemy course on how to install Moodle. As I worked through the course, I found that certain terms just weren’t sticking. I had never worked with servers and the stuff that happens “behind the LMS scenes.”

The Main Parts of a Moodle Download

To download Moodle, you are required to download several other technologies. These four technologies were recommended for download by the Udemy course in order to make Moodle function efficiently (behind the scenes):

  • Apache: the server.
  • PHP: a coding language that reads and writes to the database before sending the completed HTML back to the server.
  • MySQL: the database, which stores all the course content.
  • Cron: job scheduler.

The server is what communicates with the user (student, instructor). If an instructor wants to add new content to a course, the server (Apache) would communicate with PHP to pull up the proper information from the database (MySQL) and then store the new content. Not many websites use Cron, but LMSs sometimes do because it can run in the background to update and clean up the site. A student can’t communicate directly with PHP, MySQL, and Cron for security reasons. If they were allowed to make changes to MySQL, for instance, they could potentially make changes to their grades or wreak other havoc. By having these systems communicate with each other, it reduces risk and keeps Moodle running smoothly.

Restaurant Analogy

My partner and I developed an analogy so I could remember the behind-the-scenes magic that makes Moodle work. The analogy involves food, making it much more likely I’ll remember the terms I’m about to share.

Let’s pretend you’re at a restaurant. One that lets you seat yourself. When you’re seated, your server, Apache, ambles over. You provide your order: “I’ll have the cheeseburger without pickles.” The server says, “Sounds great, I’ll bring you one cheeseburger without pickles.” (Apache is quite formal and direct in his serving style.)

Apache brings the order to the cook, named Peggy High Pony. We’ll call her PHP for short. Apache tells PHP, “I need one cheeseburger made to order.” Apache doesn’t know how to cook or do other cook-related duties (his job is simply to serve). The cook’s job is to take all the necessary information, assemble the ingredients, and give it back to Apache. The final product, one burger no pickles, is the completed HTML code.

PHP is known for her ability to quickly take information in and then out, remembering exactly what the server told her. The kitchen is quite efficient. As PHP is doing her job, so is MySQL, the fridge brand. It’s one of those high-end fridges that can maintain its own inventory. When PHP grabs lettuce and burger patties from the fridge, the fridge automatically knows the inventory that’s left. Next time PHP communicates with the fridge, it will be up-to-date. This is important because all of the inventory is stored in the fridge (in Moodle terms, that’s the course information, text, documents, videos). It needs to be current and store the correct material, so that someone accessing it next time will see what they are supposed to.

PHP delivers the final product, one burger no pickles to Apache, who then delivers the meal to the customer. The customer had no contact with the cook or fridge as they completed their tasks. This ensures the kitchen can operate efficiently and safely.   

A restaurant is only as good as it’s manager. At this restaurant, Cron keeps things squeaky clean. He orders the food, maintains the schedules, and mostly works behind the scenes. In Moodle terms, Cron runs in the background and prepares schedules and grades, updates the site, and gets rid of the clutter.

Why the Analogy Works

It’s not a perfect analogy, but it helps me distinguish the different roles that the 4 technologies play in running Moodle. I like this analogy because it shows that the user would never interact directly with certain technologies that allow Moodle to run.

Of course, a user has no idea any of this is happening in the background. But that’s the neat thing if you have set up Moodle correctly; so much happens with the click of a button. When a student commands Apache to do a certain thing, such as open “My Grades,” Apache speaks with PHP, who communicates with MySQL, and then PHP delivers the content to Apache, who can display the course grades to the student. Pretty nifty!


Moodle Image from Flickr.com: https://www.flickr.com/photos/jlconfor/14007913139

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s