Application hosting

Hosting Moodle

Moodle is a learning management system with release-specific PHP and database prerequisites. Course files, active users, scheduled jobs, and assessment traffic determine capacity beyond those software requirements.

Min vCPU
Depends on workload
Min memory
Depends on workload
Min storage
Depends on workload

Must have

Hard prerequisites

  • 64-bit PHP 8.3 or 8.4, with Sodium enabled
  • A database supported by Moodle 5.2
  • PHP max_input_vars set to at least 5000

Recommended

Documented guidance

No further general recommendations are published for this version.

Capacity depends on your workload

Moodle publishes runtime and database requirements, but not one server size for all sites. Capacity changes with concurrent use, course content, uploaded files, plugins, database load, and scheduled tasks.

We only compare what providers publish. A RAM figure alone can't confirm compatibility or production capacity.

Deploy with

Supported paths

  • Self-managed PHP application behind Apache or Nginx
  • Moodle-hosted or certified-partner services, with separate operating and support models

The host must provide

Runtime

PHP
8.3 minimum for Moodle 5.2; 8.4 is also supported
PHP architecture
64-bit PHP only
PHP extension
Sodium is required; max_input_vars must be 5000 or higher
Database
PostgreSQL 16+, MySQL 8.4+, MariaDB 10.11+, Aurora MySQL 8.0+, or SQL Server 2019+
Web server
Apache or Nginx; configure the Moodle 5.2 public directory as the web root

Storage

Persistent data

Moodle stores course uploads and other files in its moodledata directory. Keep this directory outside the public web root, use persistent storage, and size it for uploaded content, temporary files, backups, and retention; there is no universal storage total.

Step by step

Moodle 5.2 deployment outline

  1. Select the release and supported stack

    Check the Moodle 5.2 release page, install 64-bit PHP 8.3 or 8.4 with Sodium, and select one of the documented database versions.

    Official instructions
  2. Set the public document root and private data path

    For Moodle 5.1 and later, configure the web server to serve the public directory. Store moodledata outside the public web root and make it writable only by the application service.

    Official instructions
  3. Schedule Moodle cron

    Configure the command-line cron script to run regularly; Moodle recommends every minute and warns that scheduled tasks are required for normal operation.

    Official instructions
  4. Check the environment and recovery path

    Run Moodle’s environment checks for the selected release, configure HTTPS, and test restoring the database and moodledata together before real courses depend on the site.

    Official instructions

Security

Before you go public

  • Keep moodledata outside the public document root.
  • Use a dedicated database account and restrict database permissions to the Moodle database.
  • Patch the operating system, PHP, database, Moodle core, and plugins; use HTTPS and test backups.

Cost

Beyond the server price

  • Budget for compute, database storage, course files, backups, email delivery, and any separate managed support.
  • Capacity and cost depend on concurrent learners, course activities, file retention, and reporting jobs; no fixed server size is implied.

Matching plans

Plans with published evidence

Hostinger

Hostinger KVM 8 VPS

8vCPU
32 GBRAM
400 GBStorage
32 TBTransfer
  • NVMe SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
OVHcloud

OVHcloud VPS-1 (US)

2vCPU
4 GBRAM
40 GBStorage
—Transfer
  • Virtual Core
  • NVMe SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
OVHcloud

OVHcloud VPS-2 (US)

4vCPU
8 GBRAM
75 GBStorage
—Transfer
  • Virtual Core
  • NVMe SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
OVHcloud

OVHcloud VPS-3 (US)

6vCPU
12 GBRAM
100 GBStorage
—Transfer
  • Virtual Core
  • NVMe SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
OVHcloud

OVHcloud VPS-4 (US)

8vCPU
24 GBRAM
200 GBStorage
—Transfer
  • Virtual Core
  • NVMe SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
Scaleway

Scaleway DEV1-S (Paris)

2vCPU
2 GBRAM
—Storage
—Transfer
  • Shared vCPU (AMD EPYC)
  • Dynamic Local SSD or Block (bi...
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
SiteGround

SiteGround Jump Start Managed Cloud VPS

4vCPU
8 GBRAM
40 GBStorage
5 TBTransfer
  • Dedicated CPU (Google Cloud)
  • SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
SiteGround

SiteGround StartUp Managed WordPress

—vCPU
—RAM
10 GBStorage
—Transfer
  • SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
Vultr

Vultr Cloud Compute · 1 vCPU / 0.5 GB

1vCPU
0.5 GBRAM
10 GBStorage
500 GBTransfer
  • Shared vCPU (previous-generati...
  • SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
Vultr

Vultr Cloud Compute · 1 vCPU / 1 GB

1vCPU
1 GBRAM
25 GBStorage
1 TBTransfer
  • Shared vCPU
  • Standard SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
Vultr

Vultr Cloud Compute · 1 vCPU / 2 GB

1vCPU
2 GBRAM
55 GBStorage
2 TBTransfer
  • Shared vCPU (previous-generati...
  • SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.
Vultr

Vultr Cloud Compute · 16 vCPU / 64 GB

16vCPU
64 GBRAM
1,280 GBStorage
10 TBTransfer
  • Shared vCPU (previous-generati...
  • SSD
Compatibility unclear from published plan data

Meeting documented runtime prerequisites does not prove production capacity. Traffic, workloads, software configuration, and shared host limits are not measured here.

  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • 64-bit PHP 8.3 or 8.4, with Sodium enabledThe plan does not publish this runtime or configuration detail.
  • A database supported by Moodle 5.2The plan does not publish enough database or runtime details to confirm a supported option.
  • PHP max_input_vars set to at least 5000The plan does not publish this runtime or configuration detail.

Want the full monthly bill? Use the hosting cost calculator. It keeps unknown charges visible.