Skip to main content

Moodle 3.3

Unsupported Moodle Version
This version of Moodle is no longer supported and will not receive fixes for security risks.
You are encouraged to upgrade to a supported version of Moodle.

Release date: 15 May 2017

Here is the full list of fixed issues in 3.3.

See our New Features page for a more user-friendly introduction to Moodle 3.3 with screenshots.

If you are upgrading from previous version, make sure you read the Upgrading documentation.

Server requirements

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

  • Moodle upgrade: Moodle 2.7 or later (if upgrading from earlier versions, you must upgrade to 2.7.14 as a first step)
  • PHP version: minimum PHP 5.6.5. Note: minimum PHP version has increased since Moodle 3.1. PHP 7.0.x and 7.1.x are supported but have some engine limitations.
  • PHP extensions openssl and fileinfo are now required in Moodle 3.3 (they were recommended in 3.2)
  • If you use PostgreSQL the minimum supported version is now 9.3 (was 9.1 in Moodle 3.2)
  • (Recommendation only) If you use MySQL or MariaDB, make sure your database supports full UTF-8 (utf8mb4) if you install a new instance of Moodle. CLI script may be used to convert to utf8mb4 if you're upgrading. You may choose to keep using 'utf8_*', but then a warning will show that the database isn't using full UTF-8 support and suggest moving to 'utf8mb4_unicode_ci'. See MySQL full unicode support for details.

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
Microsoft SQL Server2008Latest
Oracle Database10.2Latest

Client requirements

Browser support

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


  • Chrome
  • Firefox
  • Safari
  • Edge
  • Internet Explorer


  • MobileSafari
  • Google Chrome

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

Note: Legacy browsers with known compatibility issues with Moodle 3.3:

  • Internet Explorer 10 and below
  • Safari 7 and below

Major features


For teachers

Backup and restore

  • MDL-34859 - Add site defaults for all restore settings, improve UI around "Overwrite course configuration" select
  • MDL-40838 - Allow to restore non-default enrollment methods without restoring users
  • MDL-57769 - When restoring/importing big courses in Weeks and Topics formats into small existing courses ajust the number of sections automatically

For administrators

Please read carefully: Possible issues that may affect you in Moodle 3.3

  • MDL-46375 - Support for storing files not on the local drive (there are no open-source solutions at the moment, developer's help is required to implement custom cloud storage)
  • MDL-55528, MDL-58280 - New document converter plugin type allows alternatives to unoconv, such as the Google Drive converter
  • MDL-55980 - Run individual scheduled tasks from web interface
  • MDL-57896 - CLI wrapper for get_config() and set_config() methods
  • MDL-57789 - Use Cache-Control: immutable when serving files
  • MDL-37765 - New capability to bypass access restrictions, separated from capability to view hidden activities
  • MDL-57913 - Convert external database authentication synchronisation to scheduled task

Plugins removal and deprecation

Mobile app support

  • MDL-57410 - Allow admins to add new external links to pages in the main menu of the Mobile app
  • MDL-57408 - Add new settings for allowing renaming strings in the Mobile app
  • MDL-49423 - Add new settings for disabling Mobile app functionalities
  • MDL-57759 - Allow offline attempts via the Mobile app in the lesson module
  • MDL-57162 - Support Native App install banners for Android as well as iOS for the mobile app

Other improvements

  • MDL-33483 - Google Docs repository: Save Doc files in different formats to RTF
  • MDL-42266 - Improve the list of maximum file size options for file uploads
  • MDL-51853 - Calendar subscriptions from imported files should be editable
  • MDL-41729 - Add ability to change passwords for users using Shibboleth
  • MDL-57572, MDL-57570, MDL-57355 - Redis and static caches performance improvements if igbinary library is installed
  • MDL-56808 - SCORM module: Performance improvements when running SCORM 1.2 packages
  • MDL-57686 - Add support for PDO databases in external database authentication
  • MDL-57638 - RSS Block: RSS feeds are more heavily cached and correctly respect skip values

For developers

  • MDL-55528 - New plugin type 'fileconverter' for file conversions, unoconv is now a plugin that can be replaced with scalable commercial solutions (see File Converters)
  • MDL-40759 - Font Awesome icon font is used for all icons in Moodle (see Moodle icons)
  • MDL-46375 - Support for storing files not on the local drive is implemented by allowing to override functionality of file_storage and stored_file classes (see File System API)
  • MDL-12689 - Convert all authentication plugins to use settings.php (see upgrade.txt)
  • MDL-53978 - Add extra plugin callbacks for every major stage of page render (see commit)
  • MDL-58138 - Course modules may provide additional callbacks to participate in bulk editing of activities completion rules in a course
  • MDL-58220 - Better office integration
  • MDL-45584 - Multiple caches can be instantiated with the same definition but with different identifiers
  • MDL-57769 - Course formats: Attribute 'numsections' was removed from topics and weeks, other course formats may want to implement similar changes
  • MDL-55956 - Priority field for the calendar events allowing to specify the priority of overrides
  • MDL-58566 - New methods for retrieving calendar events
  • MDL-55941 - New element to select first name of first/last names is implemented in tablelib or can be used by developers elsewhere (template)
  • MDL-56519 - Lint behat .feature files
  • MDL-57273 - New classes (core\persistent, core\form\persistent, core\external\exporter, \core\external\persistent_exporter) used to represent a data-model and export that data in a standard format for webservices (previously was used in competencies) (see Persistent form, Persistent, Exporter)
  • MDL-57490 - Removed several legacy JS functions from javascript-static.js
  • MDL-57690 - mcore YUI rollup is no longer included on every single Moodle page (see // forum post)

Upgrading plugins

1. Check for changes in core APIs

Read lib/upgrade.txt to check for the deprecations and core API changes, make sure you applied them to your plugin. Note that entries there are not sorted by priority but rather by integration time. Below is the list of upgrade.txt files that contain information about upgrading from Moodle 3.2 to Moodle 3.3 (note that if you upgrade from earlier versions there may be more files):

For the next releases we are thinking about improving the format of upgrade.txt notes, please have your say on policy issue MDL-58879

2. Check for changes in the API of your plugin type

Below is the list of plugin types that had API changes between Moodle 3.2 and 3.3:

3. Check for changes in the depended plugins

If your plugin depends on another plugin or calls methods from another plugin, read upgrade.txt in this plugin directory (if it exists). Below is the list of standard plugins that had changes between Moodle 3.2 and 3.3:

Due to changes in Authentication plugins settings all standard auth plugins were updated: auth_cas, auth_db, auth_email, auth_fc, auth_imap, auth_ldap, auth_manual, auth_mnet, auth_nntp, auth_none, auth_pam, auth_pop3, auth_shibboleth

Other standard plugins that were updated in 3.3: tool_lp, tool_mobile, enrol_ldap, mod_assign, mod_data, mod_feedback, mod_forum, mod_lesson

4. Do a smoke test of your plugin with developer debugging mode

5. Run all behat and phpunit tests