Setting Up #Moodle Server(s)

The following came up on the Moodle Mayhem email list, and though I think I'm in the ballpark on the response, I know I'm not 100% correct. How would you respond to the problem situation below and what would you correct about my responses? Thanks in advance!

Not know much about servers, what would you recommend as far as how many servers we should purchase and hardware specs for the server(s)? We intend to use moodle with about 20,000 staff for required staff development courses, as well as some enrichment courses.

Also, we intended to use moodle with students as we begin to encourage teachers to move their classes to the moodle environment. I would imagine that this would require a lot more file storage for student projects, etc. We currently have about 157,000 students but intended to start slowly.

Possible Solutions (feel free to modify to improve the response):

Approach #1 - Cheap Approach
Start off with a high-powered server running GNU/Linux, make all the PHP.ini tweaks (check the Tips section) you can, and you'd be set to go for awhile. You could always add more servers as needed.

Approach #2

Server #1 - MySQL Database Host
All your MySQL Databases would be hosted on this server
This should be a GNU/Linux machine. Ken Task (Texas)often offers to setup servers with CentOS, or you can establish a relationship with a hosting company (e.g. Rackspace in San Antonio) that could provide this expertise. You would administer your MySQL databases using phpMyAdmin, which I believe you are familiar with. MoodleData would also be stored on this high-powered server.

Server #2 - Web Site Host
This is where Moodle instances would be installed, including the PHP web pages that interact with the databases on Server #1. This can be either  a GNU/Linux machine, Windows or Mac. Again, you'll want to edit the PHP.INI file

As you increased your load, you could install Moodle Instances on additional servers like Server #2, leaving MySQL database server (Server #1) to handle the processing of multiple servers.

Your MySQL server should be pretty "beefy" and powerful, so buy a top of the line machine with sufficient RAM and processor speed.

Some extra links worth checking out:

Finally, if you're dealing with that many folks, it's probably worth investing in some expert advice!

UPDATE 05/12/2010: On a completely different server solution, a friend asked me about earlier designs of the diagram above. Here's what this looked like back in pre-2004 time period using a different solution...try not to laugh:

Note that the idea of having one server host the database (FMPRO Host Server), while another server (FMPRO Unlimited Server) handles the web sites isn't that original! Ahh, nostalgia. ;->

Subscribe to Around the

Everything posted on Miguel Guhlin's blogs/wikis are his personal opinion and do not necessarily represent the views of his employer(s) or its clients. Read Full Disclosure


Uwe said…
Hi -

nice scheme, thanks for sharing. Where can I find the php tweaks you mentioned?
Miguel Guhlin said…
@Uwe, you can find them online at

Be warned that some of the items listed in my php.ini at the address above may not appear at all in your php.ini due to version differences, etc.

Popular posts from this blog

#Chromecast Add-Ons to Play Various Video File Formats

Free Professional Learning! Education On Air #googleedu

10 Steps to a Blended Learning Classroom #MIEexpert #MIE #tceamie1