Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

To run Moodle 5.3 in 2026, plan for 64-bit PHP 8.3 or 8.4, the sodium extension, max_input_vars of at least 5000, and a supported current database: PostgreSQL 17, MySQL 8.4, MariaDB 11.4.0, Aurora MySQL 8.0, or Microsoft SQL Server 2019. Moodle’s published hardware figures—512 MB RAM, 1 GHz CPU, 200 MB for code and about 5 GB for content—are installation baselines, not a promise that a busy production site will perform well. A practical production design also needs fast storage, correctly protected moodledata, scheduled cron, backups, monitoring and enough capacity for simultaneous users.

Moodle 5.3 software requirements

Moodle’s download page identifies Moodle 5.3 as the current release, updated 3 October 2026. The 5.3 line raises the software floor substantially compared with older installation guides. Check the versions below before ordering a server or attempting an upgrade.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

PHP version and build

  • Minimum PHP: 8.3.0.
  • Supported newer release: PHP 8.4.
  • Architecture: 64-bit PHP only.
  • Required extension: sodium.
  • Required setting: max_input_vars must be 5000 or higher.

Confirm the command-line PHP used by cron is the same supported version as the PHP used by the web server. A server can appear compliant in a browser while cron invokes an older binary, causing scheduled tasks or upgrades to fail.

Supported database versions

Database Moodle 5.3 minimum Important qualification
PostgreSQL 17 Use a current supported PostgreSQL release and keep its extensions and operating system patched.
MySQL 8.4 Configure the database with a Unicode-capable collation and adequate connection limits.
MariaDB 11.4.0 Older MariaDB versions that worked with earlier Moodle releases are below the 5.3 floor.
Aurora MySQL 8.0 This is the stated Aurora MySQL compatibility minimum, not the same number as standard MySQL 8.4.
Microsoft SQL Server 2019 The detailed Moodle 5.3 release table states SQL Server 2019 as the minimum.

The Moodle download page displays “Microsoft SQL Server 2030,” while the detailed 5.3 release notes specify SQL Server 2019. Because 2030 is not a currently installable server release, treat that label as a documentation error or forward-looking text and use SQL Server 2019 as the documented minimum until Moodle corrects the page.

Oracle is no longer supported by Moodle LMS from version 5.0 onward, so it is not an option for a new Moodle 5.3 deployment.

Upgrade prerequisite

An existing site must be on Moodle 4.4 or later to upgrade directly to 5.3. Sites on older branches need a staged upgrade through supported intermediate versions, with a tested backup and rollback plan at every stage.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Web server, operating system and document root

Moodle is most commonly deployed on Linux with Apache, PHP and PostgreSQL, MySQL or MariaDB—the traditional LAMP pattern. Nginx, OpenLiteSpeed and Microsoft IIS can also serve Moodle when their PHP integration, URL routing, permissions and release-specific requirements are correctly configured.

Moodle 5.1 and later use a public directory for web-accessible files. Set the virtual host’s document root to Moodle’s public directory, or route requests so that only that directory is served. Do not expose the project’s private directories, configuration files or data directory through the web server.

Typical Linux layout

  • Moodle program code in a directory owned by an administrator or deployment account.
  • The web server allowed to read the code, but not to modify it in production.
  • moodledata on a separate path outside the document root.
  • The database on the same host for a small site, or on a separate server or managed service as demand grows.

Windows and IIS can be valid choices where your team already operates that stack, but verify every PHP extension, scheduled-task configuration, path permission and rewrite rule rather than assuming a Linux tutorial applies unchanged.

Hardware: baseline versus real capacity

Moodle’s installation guide lists 200 MB for the application code, 5 GB as a realistic minimum for content storage, a 1 GHz processor minimum, a 2 GHz dual-core processor or better as a recommendation, 512 MB RAM minimum and 1 GB or more as a recommendation. It also notes that a large production server is likely to need at least 8 GB RAM.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Resource Published starting point How to interpret it
Moodle code storage 200 MB Space for the application itself; plugins, language packs, logs and upgrade backups require more.
Content storage 5 GB realistic minimum A small starting allowance. Courses, user uploads, backups and media can consume it quickly.
CPU 1 GHz minimum Enough to start installation, not a performance target.
CPU recommendation 2 GHz dual-core or better A more sensible starting point for a small active site.
RAM 512 MB minimum Installation baseline; leaves little room for PHP workers, database cache and background tasks.
RAM recommendation 1 GB or more More workable for a small site, depending on concurrency and enabled plugins.
Large production server 8 GB or more likely A planning signal, not a universal sizing rule.

There is no single “Moodle server size.” Concurrent users, quiz activity, assignment uploads, reporting, video delivery, search indexing, gradebook complexity, installed plugins, course count, backup frequency and database workload all change the requirement. A site with 30 occasional users and a site with 300 people submitting quizzes simultaneously can need very different infrastructure even when they have the same total enrollment.

How to size beyond the minimum

  1. Estimate peak concurrency. Count people active during the busiest class, assessment window or registration period, not just total accounts.
  2. Describe the heaviest actions. Timed quizzes, large file uploads, report generation and live dashboards create more load than reading text pages.
  3. Reserve operating headroom. Leave CPU, memory and disk space for cron, database maintenance, caches, logs and upgrades.
  4. Load-test a realistic copy. Use representative courses, enrolments, plugins and authentication flows before committing to a production size.
  5. Measure after launch. Review response time, PHP worker saturation, database latency, I/O wait, memory pressure and failed cron tasks during actual peak periods.

For a larger installation, separating web front ends from the database makes tuning and scaling easier. Additional web nodes can handle more requests, while a dedicated database server can receive independent CPU, memory and storage resources. Add a shared or carefully designed file strategy only after testing it; slow network storage can harm Moodle rather than improve it.

Storage, moodledata and database configuration

Keep moodledata private

moodledata stores uploaded files, caches, sessions and temporary data. Put it outside every web-accessible directory and grant the web server read/write access to it. Never solve a permissions problem by placing it under the public document root.

Moodle specifically warns that slow storage, including poorly performing NFS arrangements, can cause serious performance problems for moodledata. Prefer fast local SSD or a storage service whose latency and locking behavior have been validated for Moodle’s workload. Monitor available capacity because uploaded assignments, automated backups and temporary files can grow faster than the original 5 GB allowance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Protect program files

In production, Moodle’s PHP files and configuration should be readable by the web server but not writable by that account. Keep deployment and upgrade access restricted to administrators, and remove old upgrade archives and test files after confirming that a release completed successfully.

Create a restricted database account

  • Create a dedicated database for the Moodle site.
  • Use a non-root database user.
  • Grant only the privileges Moodle requires for normal operation and upgrades.
  • Use an appropriate Unicode collation, such as utf8mb4_unicode_ci where supported by your selected database.
  • Set connection, memory and backup policies for the expected workload rather than copying defaults blindly.

Required operational services

A technically compatible server can still fail in production if routine operations are missing.

  • Cron: Run Moodle’s scheduled task runner at the documented interval so mail, enrolments, backups, cleanup and other background work do not accumulate.
  • Backups: Keep automated database and file backups, retain more than one recovery point, and test restoring both components.
  • Monitoring: Alert on disk capacity, failed cron runs, database errors, PHP worker exhaustion, high load and certificate expiration.
  • Security updates: Patch the operating system, PHP, web server, database and Moodle promptly after testing compatibility.
  • Time and mail: Use reliable system time and a properly configured outbound mail service for password resets, notifications and assignment messages.

Can Moodle run on shared hosting?

It can, but “shared hosting” is suitable only when the provider exposes the exact PHP and database versions Moodle 5.3 requires and gives you the control needed for cron, file permissions, scheduled backups and configuration changes. Many low-cost plans lock customers to older PHP or database releases, restrict max_input_vars, disable required extensions or offer slow shared storage.

Check these items before choosing a shared plan

  • PHP 8.3 or 8.4, 64-bit build, and the sodium extension.
  • max_input_vars set to at least 5000.
  • PostgreSQL 17, MySQL 8.4, MariaDB 11.4.0, Aurora MySQL 8.0 or SQL Server 2019, as applicable.
  • A document-root or routing option that serves only Moodle’s public directory.
  • A writable moodledata path outside the web root.
  • Real cron access rather than a browser-based workaround.
  • Enough file storage, database space, I/O performance and process limits for peak use.
  • Provider backups that you can independently download and restore.

If any item is “not available” or “we can enable it only on request,” obtain the answer in writing and test a staging installation before paying for a long term. A small virtual machine often provides more predictable control than an aggressively constrained shared account.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Self-hosted infrastructure or managed Moodle hosting?

Self-hosting may be a desktop test machine, a single virtual machine, dedicated hardware or a clustered cloud design. Managed Moodle hosting or a Moodle Certified Service Provider can remove much of the systems work, but it does not remove the need to verify technical and contractual details.

Decision area Self-hosted VM or dedicated infrastructure Managed Moodle hosting
PHP and database patching Your team schedules, tests and applies patches. Provider may handle them; confirm timing, notice and supported versions.
Upgrades and backups You own upgrade testing, rollback and restore procedures. Often included, but verify retention, restore testing and who approves upgrades.
Tuning Full control over PHP workers, database settings, Redis or Memcached and web-server configuration. Convenient defaults, with tuning rights varying by plan.
Storage and I/O You select disks, redundancy and the moodledata location. Ask about storage type, latency, quotas and backup impact.
Scaling You design larger instances, additional web nodes and database changes. Scaling may be simpler, but capacity and migration limits differ by provider.
Residency and support You choose region and support coverage. Confirm data location, support hours, escalation and service-level commitments.
Total cost Infrastructure and staff time are explicit responsibilities. Fees may include operations; compare the complete cost at your expected workload.

Before signing with a managed provider, verify current certification, the region where data is stored, the service-level agreement, backup policy, PHP and database versions, upgrade responsibilities, plugin support and the process for exporting your data.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Pre-installation checklist for Moodle 5.3

  1. Confirm the host is 64-bit and supports PHP 8.3 or 8.4.
  2. Check that the sodium extension is loaded in both web and command-line PHP.
  3. Set and verify max_input_vars at 5000 or higher.
  4. Select one supported database and confirm its exact version.
  5. Create the database and least-privilege user with a Unicode-capable collation.
  6. Place Moodle code so only public is served by the web server.
  7. Create moodledata outside the web root and test web-server write access.
  8. Choose storage with sufficient capacity and low latency; do not assume slow NFS is acceptable.
  9. Configure HTTPS, cron, outbound mail, backups and monitoring.
  10. Run a staging installation, test plugins and perform a restore drill before production.

Common failure symptoms and fixes

Installer rejects PHP or the database

Check the actual version returned by the web server, not only the shell command. Hosting panels sometimes assign different PHP versions to the command line and virtual host. Upgrade to the required floor or move to a host that offers it.

Large forms fail or lose fields

Raise max_input_vars to at least 5000, restart the relevant PHP service and verify the effective value in Moodle’s environment check. Also check web-server request limits if uploads or large forms remain problematic.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Files cannot be uploaded or cached

Check ownership and permissions on moodledata, confirm that it is outside the document root, and verify free disk space. Do not make the entire server writable as a shortcut.

Pages become slow during quizzes or reports

Inspect database latency, CPU saturation, PHP worker limits, memory pressure and disk I/O during the event. Increase resources or separate web and database roles based on measurements, then retest the same workload.

Cron shows overdue tasks

Run the supported CLI cron under the same PHP version used by Moodle, inspect its error output and confirm the scheduler is invoked regularly by the operating system. A browser request is not a reliable substitute for server cron.

Choosing a sensible 2026 starting point

For a small pilot, a 64-bit Linux virtual machine with at least a 2 GHz dual-core CPU, 1 GB or more of RAM, fast storage, the required PHP stack and a supported database can be a reasonable starting point. Treat it as a test or lightly used deployment, not a guaranteed size for a busy school or organization.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For production, size from peak concurrency and workload, reserve storage for course files and backups, and plan how you will add memory, CPU, faster storage, a separate database server or additional web front ends. Pilot the exact Moodle 5.3 release and plugins, measure under representative load, and keep a tested recovery path. Moodle’s minimums tell you whether a server is eligible; your measurements determine whether it is adequate.

Frequently Asked Questions

Does Moodle 5.3 support PHP 8.2?

No. Moodle 5.3 requires PHP 8.3.0 or newer; PHP 8.4 is supported.

What is the minimum RAM for Moodle 5.3?

The installation guide lists 512 MB as a minimum and 1 GB or more as a recommendation. Busy production sites may need substantially more; large deployments are likely to need at least 8 GB.

Can I use MySQL 8.0 with Moodle 5.3?

Standard MySQL support for Moodle 5.3 starts at MySQL 8.4. Aurora MySQL has a separately stated 8.0 minimum.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Where should Moodle’s moodledata directory go?

Place it outside the web-accessible document root and make it writable by the web server. It stores uploads, caches, sessions and temporary data.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.