Skip to main content

Moodle 5.1

Release date: 6 October 2025

Here is the full list of fixed issues in 5.1.0.

Important 5.1 upgrade notice

After upgrading to Moodle 5.1, some administrators may find that their site no longer loads correctly and instead shows directory listings or error messages.

This usually occurs because Moodle 5.1 introduces a new "/public" directory. Your web server now needs to be configured so that its document root points to this /public directory, rather than the main Moodle folder.

Moodle 5.1 also includes a new Routing Engine, which improves how requests are handled and enables cleaner URLs. While routing is strongly recommended, it is not compulsory. A compatibility layer is included to maintain backwards compatibility.

Important note about plugins:

After the upgrade, plugins previously installed will still be in their original locations above the /public folder. To have them function correctly, they will need to be manually moved into the appropriate location within the /public directory.

For detailed instructions and configuration examples, please refer to our upgrading guide for configuring your webserver, and our routing page. These pages contain all of the information about these topics.

If you are upgrading from a previous version, please see Upgrading in the user docs.

Server requirements

These are just the minimum supported versions. We recommend keeping all of your software and operating systems up-to-date.

  • Moodle upgrade: Moodle 4.2.3 or later.
  • PHP version: minimum PHP 8.2.0 Note: minimum PHP version was increased in Moodle 5.0. PHP 8.3.x and 8.4.x are supported too. See PHP for details.
  • PHP extension sodium is required. See Environment - PHP extension sodium.
  • PHP setting max_input_vars must be >= 5000. For further details, see Environment - max input vars.
  • PHP variants: Only 64-bit versions of PHP are supported.

Database requirements

Moodle supports the following database servers. Again, version numbers are just the minimum supported version. We recommend running the latest stable version of any software.

DatabaseMinimum versionRecommended
PostgreSQL15 (increased in this Moodle version)Latest
MySQL8.4 (last increased in Moodle 5.0)Latest
MariaDB10.11.0 (last increased in Moodle 5.0)Latest
Aurora MySQL8.0Latest
Microsoft SQL Server2017Latest

Please note that Oracle Database is no longer supported from Moodle LMS 5.0.

Database prefixes

Since Moodle 4.3, the maximum length for the database prefix ($CFG->prefix) is 10 characters. Installation or upgrade won't be possible with longer prefixes.

Important

For all requirements it is recommended to use the latest point release of that version as a minimum.

In some cases earlier versions of a requirement may be noted, but may be pre-release versions.

Aurora MySQL compatibility version

This system requires configuration using standard MySQL version numbers (for example, 8.0) rather than Aurora's internal versioning (for example, 3.x) to maintain compatibility with MySQL client tools, version-dependent features, and database detection methods.

Client requirements

Browser support

Moodle is compatible with any standards compliant web browser. We regularly test Moodle with the following browsers:

Desktop:

  • Chrome
  • Firefox
  • Safari
  • Edge

Mobile:

  • MobileSafari
  • Google Chrome

For the best experience and optimum security, we recommend that you keep your browser up to date.

Major features

Directory restructure

  • MDL-83424 - Restructure Moodle code directories
  • MDL-85816 - Throw errors when wwwroot ends in /public

AI new features and improvements

  • MDL-85738 - Add user access controls at course and activity level
  • MDL-83147 - Improve error messages in placements
  • MDL-84345 - New provider plugin - Deepseek
  • MDL-84779 - Recall action settings when changing models

Activity chooser user experience improvements

  • MDL-85654 - Replace the activity chooser categories with purpose categories
  • MDL-85598 - Add related activities to the activity chooser categories
  • MDL-85597 - Change the way an activity is selected in the activity chooser
  • MDL-86036 - Add gradable information to the activity chooser panel
  • MDL-85651 - Add a details panel to the activity chooser information

New centralised course overview page

  • MDL-84641 - Use human date format in all due date overview items
  • MDL-86133 - Standardise alignment in course activities overview page
  • MDL-86020 - Add "View" action button for Individual wikis in Activities overview page
  • MDL-84762 - Unify and improve activity overview buttons styles
  • MDL-83900 - Migrate wiki activity index to course overview integration
  • MDL-83899 - Migrate SCORM activity index to course overview integration
  • MDL-83898 - Migrate quiz activity index to course overview integration
  • MDL-83896 - Migrate lesson activity index to course overview integration
  • MDL-83895 - Migrate H5P activity index to course overview integration
  • MDL-83894 - Migrate glossary activity index to course overview integration
  • MDL-83893 - Migrate forum activity index to course overview integration
  • MDL-83891 - Migrate database activity index to course overview integration
  • MDL-83890 - Migrate choice index to course overview integration
  • MDL-83889 - Migrate BigBlueButton index to course overview integration

TinyMCE text editor

  • MDL-85726 - TinyMCE Premium on-premise: Add HTTP API support (Premium on-premise plugin processing)
  • MDL-85727 - TinyMCE Premium on-premise: Add single complete zip file support (on-premise editor)
  • MDL-82943 - Image & Media adding - styling uplift

Report builder

  • MDL-86066 - Allow report builder schedule types to be easily extended
  • MDL-85120 - Allow for selection of time when filtering report date ranges
  • MDL-85462 - User report entity filter for "Never accessed"
  • MDL-84792 - Course category report filter on course count
  • MDL-85707 - Custom report source for forum discussions
  • MDL-85706 - Custom report source for site messages
  • MDL-86142 - Course URL available in report builder
  • MDL-85996 - Add default "Any value" state to report category filter
  • MDL-85399 - Addition of hourly recurrence option in report builder schedules
  • MDL-85344 - Report source groups add filter component
  • MDL-85286 - Filter on schedule listing tab for enabled/disabled state
  • MDL-85196 - Custom report filter by badge language
  • MDL-82381 - Allow group filtering in Activity completion report even when course group mode is not set

Assignment

  • MDL-71749 - Allow dragging and resizing of grading and PDF panels in the assignment grader
  • MDL-85153 - Provide direct link to grading page(s) from gradebook for the assignment module
  • MDL-84965 - Modernise the HTML in assignment messages
  • MDL-80056 - Remove bulk options that don't make sense when no submission types are set
  • MDL-86308 - Log download of feedback files in assignment
  • MDL-85162 - Support sorting by Identifier column

Usability improvements

  • MDL-79918 - Improve the "Hidden sections" setting so it is easier to understand
  • MDL-83985 - Increase activity name field length to allow for multi-language content
  • MDL-76022 - Allow the choice of a group when manually enrolling a user
  • MDL-84399 - Search function in NextCloud repository
  • MDL-71147 - Manual enrolment should be able to set a start date
  • MDL-85777 - Improve messaging experience for users who do not have permission to reply
  • MDL-85497 - Add a confirmation prompt before resetting the dashboard to default
  • MDL-84781 - Single activity format: Sort activity types by name
  • MDL-83519 - Implement a basic URL shortener and add short URLs to assignment SMS notifications

Other Highlights

Functional changes

  • MDL-85520 - Configurable numerical username prefix in communication providers
  • MDL-85003 - Add more information in course request notification email
  • MDL-85378 - Add option to export badge recipients list
  • MDL-86210 - Add permalink to the activity dropdown menu
  • MDL-85772 - Configurable maximum file size default for announcement forums
  • MDL-85660 - Disable Social course format by default
  • MDL-85433 - Support Site menu activities block in Single Activity format
  • MDL-84634 - Course welcome message for manual enrolments - Course Start Date placeholder
  • MDL-80556 - Simplify the blocks by removing Section links
  • MDL-80283 - Display of resource of type URL should not be in a wide page, but in standard width, when not "Open", "In pop-up", or "Embed"
  • MDL-84954 - Add colours to activity icons in the Upcoming events and Timeline block

For administrators

  • MDL-85518 - Admin search improvements: Improved results listing order
  • MDL-78437 - Extend Clean up ad-hoc task metadata logging and run it more frequently
  • MDL-86065 - Create mechanism for defining and re-using shared custom field categories
  • MDL-86023 - Task failures should always log a stack trace
  • MDL-85392 - Site main menu block: Enable custom title and add course support
  • MDL-85263 - CLI: show actual command in process name

Performance

  • MDL-85846 - Make AJAX call for VideoJS cacheable
  • MDL-77593 - Improve performance of adding or removing members to communication room

Security improvements

  • MDL-65027 - Add CAPTCHA to forgot_password.php page

For developers

  • MDL-79319 - Theme layouts should inherit from parent theme
  • MDL-85825 - Allow header elements to use hideIf()
  • MDL-84948 - Require language strings for plugin types be defined
  • MDL-84071 - Replace YUI with native JavaScript in gradebook single view report

Web service additions and updates

  • MDL-86215 - Create a web service to log course_module_instance_list_viewed
  • MDL-85937 - Add a web service to log course overview viewed for the mobile app
  • MDL-85509 - Add a web service to get the activity overview information for the mobile app

Deprecations

  • MDL-31071 - Deprecate file_encode_url function
  • MDL-80455 - Remove render_badge_collection() and render_badge_recipients()
  • MDL-80327 - Remove deprecated class callbacks from mod_quiz
  • MDL-78375 - Final deprecation of device related theme functions
  • MDL-78091 - Moodle 5.1 quiz final deprecations
  • MDL-76612 - Additional Moodle 5.1 quiz final deprecations
  • MDL-77307 - Final deprecation grader report and grade functions deprecated in Moodle 4.2 or earlier
  • MDL-85284 - Deprecate course/changenumsections.php
  • MDL-84291 - Deprecate course max sections setting
  • MDL-85436 - Deprecate unused pix icons

Component API updates