This is a research guide based on cited documentation. It is not a report of firsthand testing. Our editorial method

Which Moodle version you are sizing for

Moodle's release page lists four supported branches on 30 October 2026. Requirements rise with each release, so decide the branch first. A new site should usually start on the newest LTS for its long security window; an existing site on 4.5 LTS has until October 2027 for security fixes.

BranchReleasedGeneral support endsSecurity support ends
4.5 LTS7 October 20246 October 20254 October 2027
5.16 October 20255 October 202619 April 2027
5.220 April 202619 April 20274 October 2027
5.3 LTS5 October 20264 October 20271 October 2029

PHP and database minimums by release

From each release's notes. All three require the sodium PHP extension, max_input_vars of at least 5000 and a 64-bit PHP build. Moodle recommends running the latest point release of each requirement. Oracle is not supported from Moodle 5.0.

RequirementMoodle 5.1Moodle 5.2Moodle 5.3 LTS
PHP minimum8.2.0 (8.3 and 8.4 supported)8.3.0 (8.4 supported)8.3.0 (8.4 supported)
PostgreSQL151617
MySQL8.48.48.4
MariaDB10.11.010.11.011.4.0
SQL Server201720192019
Upgrade from4.2.3 or later4.4 or later4.4 or later

Cron, moodledata and the /public document root

Cron is not optional. Moodle's Task API documentation says tasks only run as often as cron runs and recommends running cron at least once per minute; Moodle's INSTALL.txt says to set up a cron task every minute. Scheduled tasks run on a schedule set by the administrator, and ad-hoc tasks queued by developers also wait for cron.

moodledata, set as $CFG->dataroot, is Moodle's data directory. The comments in Moodle's config-dist.php say this directory should be readable and writable by the web server user but should not be accessible directly via the web, so it belongs outside the public folder.

From Moodle 5.1, the release notes say the server must point its document root at the new /public directory rather than the main Moodle folder; without that change some sites show directory listings or errors after upgrading, and plugins must be moved into the right place under /public.

Why these needs point to a VPS

Look at what the list asks you to control: a per-minute cron calling a PHP command-line script, a data directory outside the web root, a specific document root, a PHP setting (max_input_vars), a PHP extension (sodium) and a database version as recent as MariaDB 11.4 or PostgreSQL 17. On a server where you have root access, each is a configuration step. On a plan designed around WordPress, any of them may be impossible to set, so confirm every item in writing before buying.

A VPS gives that control. DigitalOcean Droplets are unmanaged: you install PHP, the database and the web server yourself. KnownHost's managed VPS lists full root access with a control panel option and mentions running cron, Composer and multiple PHP versions; its plans start higher but include management.

OptionEntry priceResources at entryWho runs the stack
DigitalOcean Basic Droplet$12/mo2 GiB RAM, 1 vCPU, 50 GiB SSD, 2,000 GiB transferYou
DigitalOcean Basic Droplet$24/mo4 GiB RAM, 2 vCPU, 80 GiB SSD, 4,000 GiB transferYou
KnownHost Managed VPS Basic$43.25/mo starting price4 cores, 6 GB RAM, 100 GB NVMe, 3 TB bandwidthKnownHost manages; you have root
KnownHost Managed VPS Standard$63.25/mo starting price6 cores, 10 GB RAM, 200 GB NVMe, 5 TB bandwidthKnownHost manages; you have root

Pre-install checklist

  • Pick the branch: 5.3 LTS for a new site unless a required plugin is not yet compatible.
  • Confirm 64-bit PHP 8.3 or 8.4 with the sodium extension.
  • Set max_input_vars to 5000 or higher in PHP configuration.
  • Install a supported database at or above the branch minimum (for 5.3: PostgreSQL 17, MySQL 8.4 or MariaDB 11.4).
  • Create moodledata outside the web root, writable by the web server user.
  • Point the web server document root at Moodle's /public directory (5.1 and later).
  • Add a system cron entry that runs Moodle cron every minute.
  • Plan backups that cover both the database and the moodledata directory.

Worked example: a 5.3 LTS install for a small training team

A training team wants self-hosted Moodle for a few hundred staff. They choose 5.3 LTS for security support until 1 October 2029. On a DigitalOcean $24 Droplet with 4 GiB of RAM, they install PHP 8.4 with sodium, MariaDB 11.4, and Nginx with the document root set to /public. moodledata sits in a separate directory outside it. A system crontab runs Moodle cron every minute. Daily Droplet backups add 30% to the Droplet price, and they also export database dumps and moodledata to separate storage.

If nobody on the team wants to patch a Linux server, the same checklist goes to a managed VPS provider instead, with a written confirmation for each item.

Questions before you decide

What PHP version does Moodle 5.3 need?

Moodle 5.3's release notes set the minimum at PHP 8.3.0, with 8.4 supported, a 64-bit build only, the sodium extension, and max_input_vars of at least 5000.

How often should Moodle cron run?

Moodle's Task API documentation recommends running cron at least once per minute, because tasks only run as often as cron does. INSTALL.txt also says to set up cron every minute.

Can I host Moodle on managed WordPress hosting?

Only if the plan lets you set a per-minute CLI cron, a moodledata directory outside the web root, the /public document root, PHP extensions and settings, and a supported database. Plans built around WordPress often do not, so confirm each in writing or use a VPS.

Sources & verification

Product details and prices can change. Check the linked provider before buying.

  1. Moodle Developer Resources: Releases Accessed 30 Oct 2026
  2. Moodle Developer Resources: Moodle 5.3 release notes Accessed 30 Oct 2026
  3. Moodle Developer Resources: Moodle 5.1 release notes Accessed 30 Oct 2026
  4. Moodle Developer Resources: Task API Accessed 30 Oct 2026
  5. Moodle source: INSTALL.txt Accessed 30 Oct 2026
  6. Moodle source: config-dist.php Accessed 30 Oct 2026
  7. DigitalOcean: Droplet pricing Accessed 30 Oct 2026
  8. KnownHost: Managed VPS hosting Accessed 30 Oct 2026

Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.

Your decision at a glance

Compare the options

Full comparison

Documentation-based guidance. No tested ranking or performance score.

Managed VPS

KnownHost

Consider it for
Consider KnownHost Basic VPS when you need a specific server configuration and clearly defined management support. It was advertised from $43.25 per month; confirm the billing term and full quote.
Starting cost
Basic managed VPS advertised from $43.25/month on 2026-09-15; confirm term and full invoice
Before you choose
Not for undiagnosed application bottlenecks or sites a shared plan already covers. No course-capacity or migration test is claimed here.

Checked 15 Sep 2026 · Pricing source

View KnownHost plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Cloud VMs

DigitalOcean

Consider it for
Use a DigitalOcean Droplet when you will administer a cloud VM, not when you need managed WordPress hosting.
Starting cost
Basic Droplet listed from $4.00/mo (512 MiB, 1 vCPU, 10 GiB SSD, 500 GiB transfer) on 2026-09-15; 3 static sites listed free. Confirm live checkout and bandwidth overage.
Before you choose
A listed VM size is not a WordPress or course-capacity claim. You own OS, updates, backups, and mail unless a separate product says otherwise. The static-site free tier is not a course site.

Checked 15 Sep 2026 · Pricing source

View DigitalOcean plans

Direct provider link; no affiliate tracking added by this publication. Link disclosure

Shared hosting

SiteGround

Consider it for
Use SiteGround StartUp, advertised at $2.99/month for a prepaid first 12 months then $17.99/month, when one WordPress site needs shared hosting rather than a server you administer.
Starting cost
StartUp first-term $2.99/mo prepaid 12 months, renews $17.99/mo on 2026-09-15 (world page: ex. VAT); 1 website, 10GB, ~10,000 visits marketing estimate
Before you choose
Visit marketing estimates are not class concurrency. Renewal is $17.99/mo after the prepaid term. No course-capacity test is claimed.

Checked 15 Sep 2026 · Pricing source

View SiteGround plans

Affiliate link: we may earn a commission on an eligible purchase. Link disclosure