Open Source

DIY: Moodle offers course management for free

Moodle is open source course management software that Jack Wallen says is the perfect DIY project for anyone working in education. Here are Moodle installation instructions and tips.

The education industry really benefits from the power of DIY and open source. So many schools lack the budget for the systems and software necessary to successfully run their day-to-day transactions, as well as for systems that allow educators to properly manage and promote their educational materials and courses. When educators cannot properly manage their classes and educational material, students' education can suffer.

Fortunately, there are tools like Moodle, which is considered a Course Management System (CMS), a Learning Management System (LMS), or a Virtual Learning Environment (VLE). Moodle has a feature list that shames most other, similar proprietary systems. Moodle has the ability to:

  • Scale to very large environments.
  • Conduct online courses.
  • Offer students forums, databases, and wikis.
  • Build rich educational communities.
  • Deliver content to students.
  • Distribute assignments, quizzes, and more.
  • Offer student/teacher interaction using chat and/or forums.

Moodle can be used for all age/grade levels and can be fine-tuned for each student/grade/course. Moodle is incredibly flexible and modular, and best of all, it's open source, so the software cost to the educational institutes is zero.

Moodle installation instructions and tips

My only issue with Moodle is that it can be rather tricky to install for some administrators on some platforms. Moodle is available for Linux, Windows, and OS X. Some administrators might think that since they are running Linux the easiest method of installation is to fire up an Add/Remove Software utility such as Synaptic and install from there. It will automatically create the database and successfully install Moodle; the newly created Moodle can be logged into and, seemingly, used, but when anyone attempts to create any content, error 500s will be tossed left and right. Why? Because most of the repositories install older versions of the software that do not work; therefore, it is important to download the latest version from the Moodle Downloads Page.

A nice feature of the Windows version of Moodle is that it comes with its own built-in web server, so there's no need to have a pre-existing server up and running. For Linux, you will need to have Apache running and configured. You will not need to configure Apache for use with Moodle because the installation of Moodle will handle that for you.

Since the Windows installation of Moodle is fairly straightforward, I will walk you through the steps of the more complicated Linux installation.

Create the database and data directory

Before the installation of Moodle can begin, a single, empty MySQL database must be created. The easiest method of creating a database is to use the MySQL Workbench. Once that tool is installed and set up, you need to create a database called moodle.

The Moodle installation requires a data directory, which the installer cannot create, so you need to manually create the directory /var/moodledata with this command: sudo mkdir /var/moodledata. If not working on a distribution that requires sudo, you will need to first su to the root user and then issue the command: mkdir /var/moodledata. Now give the newly created directory the correct ownership and permissions with the commands below (remove sudo if using a distribution that allows for the su'ing to the root user):

sudo chown -R nobody:apache /var/moodledata
sudo chmod -R 0770 /var/moodledata
Run the installation

The next step is to move the downloaded archive file to the /var/www directory and then unpack it with the command: tar xvzf moodle-latest.XX.tgz (where XX is the release number). The command has to be run with administrative privileges, so either issue it after su'ing to the root user or with the addition of sudo. When the archive extracts, it will create the new directory /var/www/moodle.

Now it's time to fire up a browser and start the installation. The address will be http://ADDRESS_TO_SERVER/moodle/ (where ADDRESS_TO_SERVER is either the FDQN or IP address of the server). This will automatically redirect to the install.php script and begin the installation wizard, which will require some simple configurations —the most important of which is your server's hostname.

During the configuration process, Moodle will test your environment to make sure it has everything necessary for a successful installation. If a step in the test fails, Moodle will provide feedback for resolving the issue. At the end of this process, a page will appear with the contents of what needs to be in the config.php file for the Moodle setup. The Moodle installation is unable to write that file to the proper location, so it has to be created manually. Using a text editor, create the file /var/www/moodle/config.php and then copy and paste the contents of this page into the newly created file.

At this point, there are two options: an attended or unattended install. I suggest going with the unattended installation; otherwise, you will have to click through every time a Moodle database table is filled with data, and that's a lot of data. With the unattended installation, each time a Moodle database table is filled, the process will continue to the next step without a prompt.

Once the installation is complete, you will be prompted to log in to the administrator page. The problem is the installation never prompts for the configuration of an admin username or password. Never fear, the credentials necessary are admin/admin (username/password). After you enter this information, you need to configure the front page of your Moodle site; you can get to this section by clicking the Front page entry in the Settings menu (Figure A). Figure A

These settings are important to the overall effectiveness of the Moodle site. (Click the image to enlarge.)
Setting up Moodle

Once the Moodle site is up and running, the bulk of the work will be setting up your Moodle; this is where users, classes, courses, grades, locations, etc. are created. You need to pay very close attention to this stage in order to get the Moodle correctly designed and set up. I highly recommend that you do not try to do this on your own because it will take forever to get a full-blown Moodle up and running with only one pair of hands. I suggest creating a group of users as administrators and delegating out the work for the content phase of the installation.

You also want to make sure to set up backups, email, and cron, all of which must be completed in order for your Moodle to be fully functional.

Bottom line

You will be hard-pressed to find educational software with more flexibility and power than Moodle. With an unbeatable inverse cost:power ratio, Moodle simply cannot be beat and is the perfect DIY project for anyone working in an educational environment.


Jack Wallen is an award-winning writer for TechRepublic and He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website

Editor's Picks