{"id":1008,"date":"2013-04-22T16:42:42","date_gmt":"2013-04-22T20:42:42","guid":{"rendered":"https:\/\/stagingps.paradisosolutions.com\/blog\/?p=1008"},"modified":"2026-04-08T01:55:35","modified_gmt":"2026-04-08T06:55:35","slug":"upgrading-moodle-to-2-4","status":"publish","type":"post","link":"https:\/\/stagingps.paradisosolutions.com\/blog\/upgrading-moodle-to-2-4\/","title":{"rendered":"How to Upgrade Moodle to 2.4"},"content":{"rendered":"<p>[vc_row row_type=&#8221;row&#8221; use_row_as_full_screen_section=&#8221;no&#8221; type=&#8221;full_width&#8221; angled_section=&#8221;no&#8221; text_align=&#8221;left&#8221; background_image_as_pattern=&#8221;without_pattern&#8221; css_animation=&#8221;&#8221;][vc_column][vc_column_text]<\/p>\n<h1><a href=\"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-content\/uploads\/2013\/04\/moodle-2.4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-1049\" title=\"moodle 2.4\" src=\"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-content\/uploads\/2013\/04\/moodle-2.4-300x169.jpg\" alt=\"\" width=\"300\" height=\"169\" \/><\/a>Upgrading Moodle to version\u00a02.4<\/h1>\n<p>&nbsp;<\/p>\n<h2>Check the requirements<\/h2>\n<p>Check that your server meets all requirements for 2.4 in\u00a0<em>Settings &gt; Site administration &gt; Server &gt;\u00a0Environment<\/em>.<\/p>\n<p>Note: You can only upgrade to <a title=\"Moodle Upgrade\" href=\"http:\/\/www.paradisosolutions.com\/moodle\/upgrade\/index.html\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\">Moodle 2.4<\/a> from <a title=\"Moodle upgrade\" href=\"http:\/\/www.paradisosolutions.com\/moodle\/upgrade\/index.html\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\">Moodle 2.2<\/a> or later. If upgrading from earlier versions, you must\u00a0upgrade to 2.2\u00a0as a first step.<\/p>\n<h2><\/h2>\n<h2>Check for plugin updates<\/h2>\n<p>Check in the\u00a0Moodle Plugins directory\u00a0whether there is a 2.4 version available for any contributed\/custom plugins (including themes) that you have previously installed on your site. If so, download the plugin code and copy it to the appropriate location in your Moodle code.<\/p>\n<p>The upgrade of the plugin will then happen as part of the Moodle upgrade process.<\/p>\n<p>If an out-of-date plugin causes <span class=\"GINGER_SOFATWARE_correct\">your<\/span> upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.<\/p>\n<p>Note: If you have any contributed blocks installed, please see below for info about block capabilities undefined.<\/p>\n<p>&nbsp;<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<h2>Before you upgrade your site for real<\/h2>\n<p><strong>We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.<\/strong><\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>&nbsp;<\/p>\n<h2>Backup important data<\/h2>\n<p>There are three areas that should be backed up before any upgrade:<\/p>\n<ol>\n<li>Moodle software (For example, everything in server\/htdocs\/<span class=\"GINGER_SOFATWARE_correct\">moodle<\/span>)<\/li>\n<li>Moodle uploaded files (For example, server\/<span class=\"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct\">moodledata<\/span>)<\/li>\n<li>Moodle database (For example, the SQL or Postgres database)<\/li>\n<\/ol>\n<p>See\u00a0Site backup\u00a0for more specific information.<\/p>\n<p>&nbsp;<\/p>\n<h2>Put your site into maintenance mode<\/h2>\n<p>Before you begin upgrading your site, you should put it into\u00a0maintenance mode\u00a0to stop any non-admin users from logging in.<\/p>\n<h2><\/h2>\n<h2>Install the new Moodle software<\/h2>\n<h3><span class=\"GINGER_SOFATWARE_correct\">Standard install<\/span> package<\/h3>\n<ol>\n<li>Move your old Moodle software program files to another location.\u00a0<em>Do NOT copy new files over the old files.<\/em><\/li>\n<li>Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and <span class=\"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct\">moodledata<\/span> if it needs to in the upgrade.<\/li>\n<li>Copy your old\u00a0config.php file\u00a0back to the new Moodle directory.<\/li>\n<li>As mentioned above, if you had installed any custom plugins on your site you should add them to the new code. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of <a title=\"Moodle\" href=\"http:\/\/www.paradisosolutions.com\/moodle\/index.html\" target=\"_blank\" rel=\"noopener\" class=\"broken_link\">Moodle<\/a>.<\/li>\n<\/ol>\n<h4>Linux<\/h4>\n<pre><code><span class=\"GINGER_SOFATWARE_correct\">mv<\/span> <span class=\"GINGER_SOFATWARE_correct\">moodle<\/span> <span class=\"GINGER_SOFATWARE_correct\">moodle<\/span><span class=\"GINGER_SOFATWARE_correct\">.<\/span>backup\r\ntar xvzf moodle-2.4.tgz<\/code><\/pre>\n<p>Next, copy across your config.php, any custom plugins, and <span class=\"GINGER_SOFATWARE_correct\">your<\/span> .<span class=\"GINGER_SOFATWARE_correct\">htaccess<\/span> file if you created one (<strong>check that custom plugins are the correct version for your new Moodle first<\/strong>):<\/p>\n<pre><span class=\"GINGER_SOFATWARE_correct\">cp<\/span> <span class=\"GINGER_SOFATWARE_correct\">moodle<\/span><span class=\"GINGER_SOFATWARE_correct\">.<\/span>backup\/config.php <span class=\"GINGER_SOFATWARE_correct\">moodle<\/span>\r\ncp -pr moodle.backup\/theme\/mytheme moodle\/theme\/mytheme\r\ncp -pr moodle.backup\/mod\/mymod moodle\/mod\/mymod<\/pre>\n<p>Don&#8217;t forget to make <span class=\"GINGER_SOFATWARE_correct\">moodle<\/span>\/config.php (and the rest of the source code) readable by your www server. Ideally the files should not be <span class=\"GINGER_SOFATWARE_correct\">writeable<\/span> by your server.<\/p>\n<p>If you use <span class=\"GINGER_SOFATWARE_correct\">cron<\/span>, take care that cron.php is <span class=\"GINGER_SOFATWARE_correct\">executeable<\/span> and uses the correct <span class=\"GINGER_SOFATWARE_correct\">php<\/span> command:<\/p>\n<pre><span class=\"GINGER_SOFATWARE_correct\">chmod<\/span> 740 admin\/<span class=\"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct\">cli<\/span>\/cron.php (some configurations need chmod 750 or chmod 755)\r\n<span class=\"GINGER_SOFATWARE_correct\">copy<\/span> the first line from cron.php (if it looks like '#<span class=\"GINGER_SOFATWARE_correct\">!<\/span>\/usr\/local\/bin\/<span class=\"GINGER_SOFATWARE_correct\">php<\/span>' or '#<span class=\"GINGER_SOFATWARE_correct\">!<\/span>\/usr\/local\/bin\/php5<span class=\"GINGER_SOFATWARE_correct\">.<\/span>3', no need to copy '&lt;?<span class=\"GINGER_SOFATWARE_correct\">php<\/span>')<\/pre>\n<p><span class=\"GINGER_SOFATWARE_correct\">if<\/span> necessary.<\/p>\n<h3><\/h3>\n<h3>Using Git<\/h3>\n<p>You can use Git for updating or upgrading your Moodle. See\u00a0Git for Administrators\u00a0for details.<\/p>\n<h3>Command line <span class=\"GINGER_SOFATWARE_correct\">upgrade<\/span><\/h3>\n<p>On Linux servers, Moodle 2.4 supports running the\u00a0upgrade from the command line, rather than through a web browser. This is likely to be more reliable, particularly for large sites.<\/p>\n<h2><\/h2>\n<h2>Finishing the upgrade<\/h2>\n<p>The last step is to trigger the upgrade processes within Moodle.<\/p>\n<p>To do this just go to\u00a0<em>Settings &gt; Site administration &gt; Notifications<\/em>.<\/p>\n<p>Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can&#8217;t do <span class=\"GINGER_SOFATWARE_correct\">itself<\/span> (very rare) then you will see messages telling you what you need to do.<\/p>\n<p>Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!<\/p>\n<p>Note: If you are running multiple servers then you should purge all caches manually (via\u00a0<em><span class=\"GINGER_SOFATWARE_correct\">Settings &gt; Site administration &gt; Development<\/span> &gt; Purge all caches<\/em>) after completing the upgrade on all servers.<\/p>\n<h2><\/h2>\n<h2>After upgrading Moogle<\/h2>\n<p>The config.php file from your 2.2 or 2.3 installation should work fine but if you take a look at config-<span class=\"GINGER_SOFATWARE_correct\">dist<\/span><span class=\"GINGER_SOFATWARE_correct\">.<\/span><span class=\"GINGER_SOFATWARE_correct\">php<\/span> that came with Moodle 2.4 there are more\/different options available (e.g. <span class=\"GINGER_SOFATWARE_correct\">database<\/span> drivers and settings). It&#8217;s a good idea to map your old config.php settings to a new one based on the 2.4 config-<span class=\"GINGER_SOFATWARE_correct\">dist<\/span><span class=\"GINGER_SOFATWARE_correct\">.<\/span><span class=\"GINGER_SOFATWARE_correct\">php<\/span>.<\/p>\n<h2><\/h2>\n<h2>Possible issues that may affect you in Moodle 2.4<\/h2>\n<h3>Block capabilities undefined<\/h3>\n<p>If you have any contributed\/custom blocks installed, after upgrading you may get a debugging message warning you that a block capability has not been defined. For example<\/p>\n<pre>The block &lt;<span class=\"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct\">blockname<\/span>&gt; does not define the standard capability block\/&lt;<span class=\"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct\">blockname<\/span>&gt;<span class=\"GINGER_SOFATWARE_correct\">:<\/span><span class=\"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct\">myaddinstance<\/span><\/pre>\n<p>In Moodle 2.4,\u00a0<em><span class=\"GINGER_SOFATWARE_correct\">addinstance<\/span><\/em>\u00a0and\u00a0<em><span class=\"GINGER_SOFATWARE_noSuggestion GINGER_SOFATWARE_correct\">myaddinstance<\/span><\/em>\u00a0capabilities were added for\u00a0controlling the use of blocks. See the section &#8216;Ready, Set, Go!&#8217; in the\u00a0Blocks dev docs\u00a0for information on defining these capabilities for any contributed blocks.<\/p>\n<h3>Moodle 2.3 improvements<\/h3>\n<p>If you are upgrading to Moodle 2.4 from 2.2, please see the section &#8216;Possible issues that may affect you in Moodle 2.3&#8217; in the\u00a0Upgrading to Moodle 2.3 documentation.[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>[vc_row row_type=&#8221;row&#8221; use_row_as_full_screen_section=&#8221;no&#8221; type=&#8221;full_width&#8221; angled_section=&#8221;no&#8221; text_align=&#8221;left&#8221; background_image_as_pattern=&#8221;without_pattern&#8221; css_animation=&#8221;&#8221;][vc_column][vc_column_text] Upgrading Moodle to version\u00a02.4 &nbsp; Check the requirements&#8230;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1230,"featured_media":8357,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[683],"class_list":["post-1008","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-moodle","tag-upgrade-moodle"],"contentshake_article_id":"","yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Upgrading your Moodle to Moodle 2.4<\/title>\n<meta name=\"description\" content=\"Read the process we have to develop for upgrading Moodle to Moodle 2.4\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Upgrading your Moodle to Moodle 2.4\" \/>\n<meta property=\"og:description\" content=\"Read the process we have to develop for upgrading Moodle to Moodle 2.4\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stagingps.paradisosolutions.com\/blog\/upgrading-moodle-to-2-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Paradiso eLearning Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-04-22T20:42:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-08T06:55:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-content\/uploads\/2013\/04\/How-to-Upgrade-Moodle-to-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"844\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"4 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/#website\",\"url\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/\",\"name\":\"Paradiso eLearning Blog\",\"description\":\"The e-learning solution you need is that we can offer you.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/upgrading-moodle-to-2-4\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-content\/uploads\/2013\/04\/How-to-Upgrade-Moodle-to-2.jpg\",\"width\":844,\"height\":300},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/upgrading-moodle-to-2-4\/#webpage\",\"url\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/upgrading-moodle-to-2-4\/\",\"name\":\"Upgrading your Moodle to Moodle 2.4\",\"isPartOf\":{\"@id\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/upgrading-moodle-to-2-4\/#primaryimage\"},\"datePublished\":\"2013-04-22T20:42:42+00:00\",\"dateModified\":\"2026-04-08T06:55:35+00:00\",\"author\":{\"@id\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/#\/schema\/person\/f7030da0a02b28f44b65cf82b30fee57\"},\"description\":\"Read the process we have to develop for upgrading Moodle to Moodle 2.4\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/stagingps.paradisosolutions.com\/blog\/upgrading-moodle-to-2-4\/\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/#\/schema\/person\/f7030da0a02b28f44b65cf82b30fee57\",\"name\":\"Daniel Parr\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/stagingps.paradisosolutions.com\/blog\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cb16fdf7dab103ceb01ee20fb73fff8e?s=96&d=mm&r=g\",\"caption\":\"Daniel Parr\"},\"description\":\"Daniel Parr is a passionate eLearning and technology writer, dedicated to guiding readers through the evolving landscape of LMS, Open-Source ERP, CRM, and other cutting-edge learning technologies. With an ability to break down complex concepts into engaging narratives, he crafts insightful blogs that empower businesses and professionals to stay ahead of industry trends.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/daniel-par-197584363\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","amp_validity":null,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1008","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/users\/1230"}],"replies":[{"embeddable":true,"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=1008"}],"version-history":[{"count":1,"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1008\/revisions"}],"predecessor-version":[{"id":22336,"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1008\/revisions\/22336"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/media\/8357"}],"wp:attachment":[{"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=1008"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=1008"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stagingps.paradisosolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=1008"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}