Choosing a platform (Windows vs Linux) for Moodle

Published April 18, 2009

I posted a response on this issue on the MITIE Forums and thought I’d tweak and include it here.

Contrary to many common perceptions (and my own feelings on the topic) not impossible to run Moodle in a fairly stable way for a largeish Windows installation. In my experience, you want a team to be confident doing things like:

  • merging core Moodle code with your own and community-contributed modules
  • executing backup and restore operations (of moodledata files and db dumps)
  • performance tuning and tweaking of each element in the system
  • understanding and ensuring the security of each component, as well as the whole system
  • configuring SSL (if req’d) etc
  • quickly building and configuring testing & staging sites (ensuring, for example, that those updates from CVS or Git aren’t going to break your site)
  • managing and monitoring logs, scheduled tasks, etc

If you’re keen to support the infrastructure yourself, I’d suggest reading the documentation (http://docs.moodle.org/en/Administrator_documentation) and subscribing to the Moodle.org “Windows-based Servers” forum (http://moodle.org/mod/forum/view.php?id=6799). From some careful searching or from just watching the flow of discussion I’d look to gauge the community’s feelings on the best choices.

Although our team would only use and recommend Linux for the several hundred Moodle sites (with anywhere from 200 – 45 000 users per site) that we support, I personally have run Moodle on IIS (with PHP as ISAPI and then later as FastCGI – NB this discussion on ISAPI being discontinued from php 5.3 onwards ), with DBs in MySQL and (with less success) MSSQL. If your team has great IIS skills and experience and you’ve access to someone with really good MSSQL knowledge, then this could be an option.

Keep in mind too, that running Moodle on Linux doesn’t prevent you from things like: connecting to a MS SQLServer to do automated student enrolment; using AD for authentication and single sign-on, etc

Some other things (like spellcheck, some of the integrated tools like zip, du. etc) are either difficult or impossible to configure.

If you’re self-supporting with Moodle, I think it’s probably wise to make the decision based on:

  1. The current and intended future skillsets of your team. This includes all components of the system (the OS, web server, PHP, DB server, etc) in performing the list of activities I outlined above
  2. The known stability, performance, security and reliability of Moodle and its core components (web server, PHP, DB server) under each platform
  3. The strength of community support for Moodle (and other similar PHP apps) on the platform.

All the best for great Moodling!

.