<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/37/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tmuras</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/37/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tmuras"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/Special:Contributions/Tmuras"/>
	<updated>2026-04-22T22:46:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=LDAP_authentication&amp;diff=135841</id>
		<title>LDAP authentication</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=LDAP_authentication&amp;diff=135841"/>
		<updated>2019-11-09T08:51:12Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Authentication}}&lt;br /&gt;
This document describes how to set up Lightweight Directory Access Protocol (LDAP) authentication in Moodle.  We cover the basic, advanced and some trouble shooting sections to assist the user in the installation and administrating LDAP in Moodle.  &lt;br /&gt;
&lt;br /&gt;
==Basic Scenario==&lt;br /&gt;
The simple and straightforward approach  for most installations.&lt;br /&gt;
&lt;br /&gt;
===Assumptions===&lt;br /&gt;
Moodle supports several types of LDAP servers which have different directory structures, special configuration settings, etc. Even if using the same LDAP server type (e.g., MS Active Directory), each site could use a completely different directory structure to hold its user accounts, groups, etc. In order to be able to show example configuration settings in the sections below, we are going to assume a &#039;&#039;&#039;hypothetical&#039;&#039;&#039; Moodle site and LDAP server with the characteristics listed below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANTE NOTICE&#039;&#039;&#039;: be sure to check &#039;&#039;&#039;&#039;&#039;your&#039;&#039;&#039;&#039;&#039; Moodle site and LDAP server details (including its directory structure,) and adjust the settings to reflect your own setup.&lt;br /&gt;
&lt;br /&gt;
# Your Moodle site is located at &#039;&#039;&#039;http://your.moodle.site/&#039;&#039;&#039;&lt;br /&gt;
# You have configured your PHP installation with the LDAP extension. It is loaded and activated, and it shows when you go to &#039;&#039;&#039;http://your.moodle.site/admin/phpinfo.php&#039;&#039;&#039; (logged in as user &#039;admin&#039;).&lt;br /&gt;
# Your LDAP server has &#039;&#039;&#039;192.168.1.100&#039;&#039;&#039; as its IP address.&lt;br /&gt;
# You are not using LDAP with SSL (also known as LDAPS) in your settings. This might prevent certain operations from working (e.g., you cannot update data if you are using MS Active Directory -- MS-AD from here on --), but should be OK if you just want to authenticate your users.&lt;br /&gt;
# You don&#039;t want your users to change their passwords the first time they log in into Moodle.&lt;br /&gt;
# You are using a single domain as the source of your authentication data in case you are using MS-AD (more on this in the Appendices).&lt;br /&gt;
# You are using a top level distinguished name (DN) of &#039;&#039;&#039;dc=my,dc=organization,dc=domain&#039;&#039;&#039; as the root of your LDAP tree. &lt;br /&gt;
# You have a non-privileged LDAP user account you will use to bind to the LDAP server. This is not necessary with certain LDAP servers, but MS-AD requires this and it won&#039;t hurt if you use it even if your LDAP server doesn&#039;t need it. Make sure &#039;&#039;&#039;this account and its password don&#039;t expire&#039;&#039;&#039;, and make this password as strong as possible. Remember you only need to type this password once, when configuring Moodle, so don&#039;t be afraid of making it as hard to guess as possible. Let&#039;s say this user account has a DN of &#039;&#039;&#039;cn=ldap-user,dc=my,dc=organization,dc=domain&#039;&#039;&#039;, and password &#039;&#039;&#039;hardtoguesspassword&#039;&#039;&#039;.&lt;br /&gt;
# All of your Moodle users are in an organizational unit (OU) called &#039;&#039;&#039;moodleusers&#039;&#039;&#039;, which is right under your LDAP root. That OU has a DN of &#039;&#039;&#039;ou=moodleusers,dc=my,dc=organization,dc=domain&#039;&#039;&#039;.&lt;br /&gt;
# You &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; want your LDAP users&#039; passwords to be stored in Moodle at all.&lt;br /&gt;
&lt;br /&gt;
===Enabling LDAP authentication===&lt;br /&gt;
&lt;br /&gt;
An administrator can enable LDAP authentication as follows:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and click the eye icon opposite LDAP Server. When enabled, it will no longer be greyed out.&lt;br /&gt;
# Click the settings link, configure as required (see information below), then click the &#039;Save changes&#039; button.&lt;br /&gt;
&lt;br /&gt;
[[Image:LDAPserversettings.png|center]]&lt;br /&gt;
&lt;br /&gt;
Now, you just have to fill in the values. Let&#039;s go step by step.&lt;br /&gt;
&lt;br /&gt;
====LDAP Server Settings====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| Host URL&lt;br /&gt;
| As the IP of your LDAP server is 192.168.1.100, type &amp;quot;&#039;&#039;&#039;ldap://192.168.1.100&#039;&#039;&#039;&amp;quot; (without the quotes), or just &amp;quot;&#039;&#039;&#039;192.168.1.100&#039;&#039;&#039;&amp;quot; (some people have trouble connecting with the first syntax, specially on MS Windows servers).&lt;br /&gt;
|-&lt;br /&gt;
| Version&lt;br /&gt;
| Unless you are using a really old LDAP server, &#039;&#039;&#039;version 3&#039;&#039;&#039; is the one you should choose.&lt;br /&gt;
|-&lt;br /&gt;
| LDAP Encoding&lt;br /&gt;
| Specify encoding used by LDAP server. Most probably utf-8.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[LDAP_authentication#Table of Contents|Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
====Bind settings====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| Don&#039;t cache passwords&lt;br /&gt;
| As you &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; want to store the users&#039;s password in Moodle&#039;s database, choose &#039;&#039;&#039;Yes&#039;&#039;&#039; here.&lt;br /&gt;
|-&lt;br /&gt;
| Distinguished Name&lt;br /&gt;
| This is the distinguished name of the bind user defined above. Just type &amp;quot;&#039;&#039;&#039;cn=ldap-user,dc=my,dc=organization,dc=domain&#039;&#039;&#039;&amp;quot; (without the quotes).&lt;br /&gt;
|-&lt;br /&gt;
| Password&lt;br /&gt;
| This is the bind user password defined above. Type &amp;quot;&#039;&#039;&#039;hardtoguesspassword&#039;&#039;&#039;&amp;quot; (without the quotes).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[LDAP_authentication#Table of Contents|Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
====User lookup settings====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| User type&lt;br /&gt;
| Choose: &lt;br /&gt;
* &#039;&#039;&#039;Novel Edirectory&#039;&#039;&#039; if your LDAP server is running Novell&#039;s eDdirectory.&lt;br /&gt;
* &#039;&#039;&#039;posixAccount (rfc2307)&#039;&#039;&#039; if your LDAP server is running a RFC-2307 compatible LDAP server (choose this is your server is running OpenLDAP, including Mac OS X server).&lt;br /&gt;
* &#039;&#039;&#039;posixAccount (rfc2307bis)&#039;&#039;&#039; if your LDAP server is running a RFC-2307bis compatible LDAP server.&lt;br /&gt;
* &#039;&#039;&#039;sambaSamAccount (v.3.0.7)&#039;&#039;&#039; if your LDAP server is running with SAMBA&#039;s 3.x LDAP schema extension and you want to use it.&lt;br /&gt;
* &#039;&#039;&#039;MS ActiveDirectory&#039;&#039;&#039; if your LDAP server is running Microsoft&#039;s Active Directory (MS-AD)&lt;br /&gt;
|-&lt;br /&gt;
| Contexts&lt;br /&gt;
| The DN of the context (container) where all of your Moodle users are found. Type &#039;&#039;&#039;ou=moodleusers,dc=my,dc=organization,dc=domain&#039;&#039;&#039; here.  &lt;br /&gt;
&lt;br /&gt;
On a Mac OS X Server, this is usually &#039;&#039;&#039;cn=users,dc=my,dc=organization,dc=domain&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| Search subcontexts&lt;br /&gt;
| If you have any sub organizational units (subcontexts) hanging from &#039;&#039;&#039;ou=moodleusers,dc=my,dc=organization,dc=domain&#039;&#039;&#039; and you want Moodle to search there too, set this to &#039;&#039;&#039;yes&#039;&#039;&#039;. Otherwise, set this to &#039;&#039;&#039;no&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| Dereference aliases&lt;br /&gt;
| Sometimes your LDAP server will tell you that the real value you are searching for is in fact in another part of the LDAP tree (this is called an alias). If you want Moodle to &#039;dereference&#039; the alias and fetch the real value from the original location, set this to &#039;&#039;&#039;yes&#039;&#039;&#039;. If you don&#039;t want Moodle to dereference it, set this to &#039;&#039;&#039;no&#039;&#039;&#039;. If you are using MS-AD, set this to &#039;&#039;&#039;no&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| User attribute&lt;br /&gt;
| The attribute used to name/search users in your LDAP tree. This option takes a default value based on the &#039;&#039;User type&#039;&#039; value you chose above. &amp;lt;u&amp;gt;So unless you need something special, you don&#039;t need to fill this in&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
By the way, it&#039;s usually &#039;&#039;&#039;cn&#039;&#039;&#039; (Novell eDirectory and MS-AD) or &#039;&#039;&#039;uid&#039;&#039;&#039; (RFC-2037, RFC-2037bis and SAMBA 3.x LDAP extension), but if you are using MS-AD you could (and have to, if you intend to use NTLM SSO) use &#039;&#039;&#039;sAMAccountName&#039;&#039;&#039; (the pre-Windows 2000 logon account name) if you need too.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Correction&#039;&#039;&#039;: With MS-AD &#039;&#039;&#039;sAMAccountName&#039;&#039;&#039; should be used anyway. With default value (&#039;&#039;&#039;cn&#039;&#039;&#039;) AD users will have to login with full name / password (Username: &#039;&#039;&#039;John Doe&#039;&#039;&#039;, Password: &#039;&#039;&#039;john&#039;s_pass&#039;&#039;&#039;). If you want to enable your users to login with domain username instead (Username: &#039;&#039;&#039;johnd&#039;&#039;&#039; Password: &#039;&#039;&#039;john&#039;s_pass&#039;&#039;&#039;), you should use &#039;&#039;&#039;sAMAccountName&#039;&#039;&#039;. Sadly, but logging in with DOMAIN\user or user@domain.com will not work anyway.&lt;br /&gt;
&lt;br /&gt;
Note: You may wish to consider allowing extended characters in usernames in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Security &amp;gt; [[Site policies]]&#039;&#039;. &lt;br /&gt;
|-&lt;br /&gt;
| Member attribute&lt;br /&gt;
| The attribute used to list the members of a given group. This option takes a default value based on the &#039;&#039;User type&#039;&#039; value you choosed above. &amp;lt;u&amp;gt;So unless you need something special, you don&#039;t need to fill this in.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By the way, the usual values are &#039;&#039;&#039;member&#039;&#039;&#039; and &#039;&#039;&#039;memberUid&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| Member attribute uses dn&lt;br /&gt;
| Whether the member attribute contains distinguished names (1) or not (0).This option takes a default value based on the &#039;&#039;User type&#039;&#039; value you choosed above. &amp;lt;u&amp;gt;So unless you need something special, you don&#039;t need to fill this in.&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Object class&lt;br /&gt;
| The type of LDAP object used to search for users. This option takes a default value based on the &#039;&#039;User type&#039;&#039; value you chose above. &amp;lt;u&amp;gt;So unless you need something special, you don&#039;t need to fill this in.&amp;lt;/u&amp;gt;&lt;br /&gt;
* If you leave it blank, the default value based on the &#039;&#039;User type&#039;&#039; selected above will be used (see below)&lt;br /&gt;
* If you provide &amp;quot;objectClass=some-string&amp;quot;, then it will provide &amp;quot;(objectClass=some-string)&amp;quot; as the filter.&lt;br /&gt;
* If you provide a value that does not start with &amp;quot;(&amp;quot;, it is assumed to be a value that should be set to &amp;quot;objectClass&amp;quot;. So if you provide &amp;quot;some-string&amp;quot;, then it will provide &amp;quot;(objectClass=some-string)&amp;quot; as the filter.&lt;br /&gt;
* If you provide a string that starts with a &amp;quot;(&amp;quot;, then it will pass that as is. So if you provide &amp;quot;(&amp;amp;(objectClass=user)(enabledMoodleUser=1))&amp;quot;, then it will pass that as the filter.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: In the last case, that feature can be used on interactive logins,&lt;br /&gt;
&lt;br /&gt;
Here are the default values for each of the &#039;&#039;ldap_user_type&#039;&#039; values:&lt;br /&gt;
* &#039;&#039;&#039;(objectClass=user)&#039;&#039;&#039; for Novel eDirectory&lt;br /&gt;
* &#039;&#039;&#039;(objectClass=posixAccount)&#039;&#039;&#039; for RFC-2037 and RFC-2037bis&lt;br /&gt;
* &#039;&#039;&#039;(objectClass=sambaSamAccount)&#039;&#039;&#039; for SAMBA 3.0.x LDAP extension&lt;br /&gt;
* &#039;&#039;&#039;(objectClass=user)&#039;&#039;&#039; for MS-AD&lt;br /&gt;
* &#039;&#039;&#039;(objectClass=*)&#039;&#039;&#039; for Default&lt;br /&gt;
If you get an error about a problem with updating the ldap server (even if you have specified not to write changes back to the ldap server) try setting the ldap object class to * - see http://moodle.org/mod/forum/discuss.php?d=70566 for a discussion on this problem&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Force change password====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| Force change password&lt;br /&gt;
| &#039;&#039;&#039;NOTE: This setting is only used when creating your users with the LDAP sync users task. It&#039;s not used if your users are created as part of their first login to moodle&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Set this to &#039;&#039;Yes&#039;&#039; if you want to force your users to change their password on the first login into Moodle. Otherwise, set this to &#039;&#039;no&#039;&#039;. Bear in mind the password they are forced to change is the one stored in your LDAP server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;As you don&#039;t want your users to change their passwords in their first login, leave this set to &#039;&#039;No&#039;&#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Use standard Change Password Page&lt;br /&gt;
|&lt;br /&gt;
* Setting this to &#039;&#039;Yes&#039;&#039; makes Moodle use its own standard password change page, everytime users want to change their passwords.&lt;br /&gt;
* Setting this to &#039;&#039;No&#039;&#039; makes Moodle use the the page specified in the field called &amp;quot;Password change URL&amp;quot; (see below).&lt;br /&gt;
&lt;br /&gt;
Bear in mind that changing your LDAP passwords from Moodle might require a LDAPS connection (this is actually a requirement for MS-AD). In addition to that, the bind user specified above must have the rights needed to change other users&#039; passwords.&lt;br /&gt;
&lt;br /&gt;
Also, code for changing passwords from Moodle for anything but Novell eDirectory and Active Directory is almost not tested, so this may or may not work for other LDAP servers.&lt;br /&gt;
|-&lt;br /&gt;
| Password Format&lt;br /&gt;
| Specify how the new password is encrypted before sending it to the LDAP server: Plain text, MD5 hash or SHA-1 hash. MS-AD uses plain text, for example.&lt;br /&gt;
|-&lt;br /&gt;
| Password change URL&lt;br /&gt;
| Here you can specify a location at which your users can recover or change their username/password if they&#039;ve forgotten it. This will be provided to users as a button on the login page and their user page. if you leave this blank the button will not be printed.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====LDAP password expiration settings====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| Expiration&lt;br /&gt;
| &lt;br /&gt;
* Setting this to &#039;&#039;No&#039;&#039; will make Moodle not to check if the password of the user has expired or not.&lt;br /&gt;
* Setting this to &#039;&#039;LDAP&#039;&#039; will make Moodle check if the LDAP password of the user has expired or not, and warn them a number of days before the password expires. When the password has expired, a &amp;quot;Your password has expired&amp;quot; message is displayed, and if the user is able to change their password from Moodle, they are offered the option to do so.&lt;br /&gt;
&lt;br /&gt;
Current code only deals with Novell eDirectory LDAP server and MS-AD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;So unless you have Novell eDirectory server or MS-AD, choose &#039;&#039;No&#039;&#039; here.&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Expiration warning&lt;br /&gt;
| This value sets how many days in advance of password expiration the user is warned that her password is about to expire.&lt;br /&gt;
|-&lt;br /&gt;
| Expiration attribute.&lt;br /&gt;
| The LDAP user attribute used to check password expiration. This option takes a default value based on the &#039;&#039;User type&#039;&#039; value you chose above. &amp;lt;u&amp;gt;So unless you need something special, you don&#039;t need to fill this in.&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grace logins&lt;br /&gt;
| This setting is specific to Novell eDirectory. If set to &#039;&#039;Yes&#039;&#039;, enable LDAP gracelogin support. After password has expired the user can login until gracelogin count is 0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;So unless you have Novell eDirectory server and want to allow gracelogin support, choose &#039;&#039;No&#039;&#039; here.&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Grace login attribute&lt;br /&gt;
| This setting is currently not used in the code (and is specific to Novell eDirectory). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;So you don&#039;t need to fill this in.&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Enable user creation====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| Create users externally&lt;br /&gt;
| New (anonymous) users can self-create user accounts on the external LDAP server and confirm them via email. If you enable this, remember to also configure module-specific options for user creation and to fill in some instructions in &#039;&#039;auth_instructions&#039;&#039; field in &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039;. Otherwise the new users won&#039;t be able to self-create new accounts.&lt;br /&gt;
&lt;br /&gt;
Novell eDirectory and MS-AD can create users externally. You can also create users in RFC-2307 compliant servers. &lt;br /&gt;
|-&lt;br /&gt;
| Context for new users&lt;br /&gt;
| Specify the context where users are created. This context should be different from other users&#039; contexts to prevent security issues. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Assign system roles====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| System role mapping&lt;br /&gt;
| This section lists all roles that have can be assigned in the System context - by default this will be &amp;quot;Manager context&amp;quot; and &amp;quot;Course creator context&amp;quot;, but can be customisable in the [[Creating custom roles|role definitions]].&lt;br /&gt;
&lt;br /&gt;
To assign LDAP users to any of the roles, specify the DN containing all users who should be granted that role at the system level.&lt;br /&gt;
&lt;br /&gt;
Thie DN is typically a posixGroup with a &amp;quot;memberUid&amp;quot; attribute for each user you want to be a creator.  If your group is called &#039;&#039;creators&#039;&#039;, type &#039;&#039;&#039;cn=creators,ou=moodleusers,dc=my,dc=organization,dc=domain&#039;&#039;&#039; here.  Each memberUid attribute contains the CN of a user who is authorized to be a creator.  Do not use the user&#039;s full DN (e.g.,  not &#039;&#039;&#039;memberUid: cn=JoeTeacher,ou=moodleusers,dc-my,dc=organizations,dc=domain&#039;&#039;&#039;, but rather &#039;&#039;&#039;memberUid: JoeTeacher&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
In eDirectory, the objectClass for a group is (by default) not &#039;&#039;&#039;posixGroup&#039;&#039;&#039; but &#039;&#039;&#039;groupOfNames,&#039;&#039;&#039; whose member attribute is &#039;&#039;&#039;member,&#039;&#039;&#039; not &#039;&#039;&#039;memberUid,&#039;&#039;&#039; and whose value is the full DN of the user in question.  Although you can probably modify Moodle&#039;s code to use this field, a better solution is just to add a new &#039;&#039;&#039;objectClass&#039;&#039;&#039; attribute of &#039;&#039;&#039;posixGroup&#039;&#039;&#039; to your creators group and put the CNs for each creator in a &#039;&#039;&#039;memberUid&#039;&#039;&#039; attribute.&lt;br /&gt;
&lt;br /&gt;
In MS Active Directory, you will need to create a security group for your creators to be part of and then add them all. If your ldap context above is &#039;ou=staff,dc=my,dc=org&#039; then your group should then be &#039;cn=creators,ou=staff,dc=my,dc=org&#039;. If some of the users are from other contexts and have been added to the same security group, you&#039;ll have to add these as separate contexts after the first one using the same format.&lt;br /&gt;
&lt;br /&gt;
This section replaces the &amp;quot;Course creator&amp;quot; section found in Moodle 3.3. The upgrade process should migrate any DN specified to the new approach.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====User account synchronisation====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| Removed ext user&lt;br /&gt;
| Specify what to do with internal user account during mass synchronization when user was removed from external source. Only suspended users are automatically revived if they reappear in ext source.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====NTLM SSO====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| Enable&lt;br /&gt;
| If you want to use NTLM SSO (see details at [[NTLM_authentication]]), choose &#039;&#039;Yes&#039;&#039; here. Otherwise, choose &#039;&#039;No&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| Subnet&lt;br /&gt;
| Specify the subnets of the clients that will use NTLM SSO (see details at [[NTLM_authentication]]).&lt;br /&gt;
|-&lt;br /&gt;
| MS IE Fast Path?&lt;br /&gt;
| If all of you clients (or most of them) are using MS Internet Explorer, you can set this option to bypasses certain steps of the SSO login and speed up login times. This only works with MS Internet Explorer, but deals with other browsers in a sensible way (they are automatically sent to the plain login page).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Data Mapping====&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Field name&lt;br /&gt;
! Value to fill in&lt;br /&gt;
|-&lt;br /&gt;
| First name&lt;br /&gt;
| The name of the attribute that holds the first name of your users in your LDAP server. This is usually &#039;&#039;&#039;givenName&#039;&#039;&#039; or &#039;&#039;&#039;displayName&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Surname&lt;br /&gt;
| The name of the attribute that holds the surname of your users in your LDAP server. This is usually &#039;&#039;&#039;sn&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Email address&lt;br /&gt;
| The name of the attribute that holds the email address of your users in your LDAP server. This is usually &#039;&#039;&#039;mail&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| City/town&lt;br /&gt;
| The name of the attribute that holds the city/town of your users in your LDAP server. This is usully &#039;&#039;&#039;l&#039;&#039;&#039; (lowercase L) or &#039;&#039;&#039;localityName&#039;&#039;&#039; (not valid in MS-AD).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| Country&lt;br /&gt;
| The name of the attribute that holds the country of your users in your LDAP server. This is usully &#039;&#039;&#039;c&#039;&#039;&#039; or &#039;&#039;&#039;countryName&#039;&#039;&#039; (not valid in MS-AD).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Language&lt;br /&gt;
| &#039;&#039;&#039;preferredLanguage&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Description&lt;br /&gt;
| &#039;&#039;&#039;description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Webpage&lt;br /&gt;
| &amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| ID Number&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Institution&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Department&lt;br /&gt;
| The name of the attribute that holds the department name of your users in your LDAP server. This is usully &#039;&#039;&#039;departmentNumber&#039;&#039;&#039; (for posixAccount and maybe eDirectory) or &#039;&#039;&#039;department&#039;&#039;&#039; (for MS-AD).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Phone 1&lt;br /&gt;
| The name of the attribute that holds the telephone number of your users in your LDAP server. This is usually &#039;&#039;&#039;telephoneNumber&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Phone 2&lt;br /&gt;
|  The name of the attribute that holds an additional telephone number of your users in your LDAP server. This can be &#039;&#039;&#039;homePhone&#039;&#039;&#039;, &#039;&#039;&#039;mobile&#039;&#039;&#039;, &#039;&#039;&#039;pager&#039;&#039;&#039;, &#039;&#039;&#039;facsimileTelephoneNumber&#039;&#039;&#039; or even others.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Address&lt;br /&gt;
| The name of the attribute that holds the street address of your users in your LDAP server. This is usully &#039;&#039;&#039;streetAddress&#039;&#039;&#039; or &#039;&#039;&#039;street&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;This setting is optional&amp;lt;/u&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Custom User profile fields=====&lt;br /&gt;
&lt;br /&gt;
Any user profile fields created in &#039;&#039;Site administration &amp;gt; Users &amp;gt; Accounts &amp;gt; User profile fields&#039;&#039; should now automatically show up at the end of the Data mapping field list after the &#039;&#039;&#039;Address&#039;&#039;&#039; field. See example: [[File:ldapcustomuserprofilefields.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Enabling the LDAP users sync job==&lt;br /&gt;
&lt;br /&gt;
The LDAP users sync job (&#039;&#039;\auth_ldap\task\sync_task&#039;&#039;) [[Scheduled tasks|scheduled task]] (new in Moodle 3.0; previously there was a CLI script, see MDL-51824 for more info)  is responsible for creating and updating user information, and suspending and deleting LDAP accounts. &lt;br /&gt;
&lt;br /&gt;
After enabling LDAP server authentication, an administrator needs to enable and configure the LDAP users sync job as follows:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Server &amp;gt; Scheduled tasks&#039;&#039; and click the gear icon opposite LDAP users sync job.&lt;br /&gt;
# Select the desired frequency of running and enable the task by un-ticking the disabled checkbox.&lt;br /&gt;
{{Warning|It is important to make sure that all LDAP settings are working properly before enabling the LDAP users sync job (as well as backing up your database and moodledata folders), since incorrect LDAP configuration can result in users being wrongly deleted!}}&lt;br /&gt;
&lt;br /&gt;
If you find that the script is not running through all of your users properly and you have over 1000 users in each LDAP container, this is because by default some LDAP stores such as MS AD only send back 1000 users at a time and PHP versions prior to 5.4 did not implement paged support for LDAP results. If you upgrade to PHP 5.4 or higher then Moodle will obtain all your users correctly. If you can&#039;t upgrade to PHP 5.4 you may be able to follow the instructions in http://support.microsoft.com/kb/315071 to set the Active Directory MaxPageSize setting to a number higher than your total number of users (both now and in future) to fix it. This is a forest-wide setting.&lt;br /&gt;
&lt;br /&gt;
==Active Directory help==&lt;br /&gt;
[[Active Directory]] is Microsoft&#039;s directory service. It is included in Windows 2000 Server and later versions of their operating system. For more information about subjects below, &#039;&#039;&#039;[[Active Directory|please go here]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*Warning: The PHP LDAP module does not seem to be present&lt;br /&gt;
*LDAP-module cannot connect any LDAP servers &lt;br /&gt;
*Getting correct CNs for Contexts and Creators&lt;br /&gt;
*Getting the right user_attribute&lt;br /&gt;
*Installing ldp.exe Server Tool&lt;br /&gt;
*Example Active Directory Configuration&lt;br /&gt;
*Child Domains and the Global Catalog in MS Active Directory&lt;br /&gt;
*Enabling the Global Catalog&lt;br /&gt;
*Active Directory with Moodle 1.8&lt;br /&gt;
*MS Active Directory + SSL&lt;br /&gt;
&lt;br /&gt;
==Advanced Scenarios - Multiple servers or locations==&lt;br /&gt;
For larger installations with  multiple LDAP servers, or multiple locations (contexts) in a LDAP tree.&lt;br /&gt;
&lt;br /&gt;
===Making your LDAP directory connection resilient===&lt;br /&gt;
* Entering more than one name in the ldap_host_url field can provide some sort of resilience to your system. Simply use the syntax:&lt;br /&gt;
&lt;br /&gt;
 ldap://my.first.server; ldap://my.second.server; ...&lt;br /&gt;
&lt;br /&gt;
Of course, this will only work if all the servers share the same directory information, if using eDirectory you would need to ensure your servers have viability of all relevant tree partitions, or if using Active Directory the servers are holding the same information you need though replication - see notes on a multi-domain environment if this applies.&lt;br /&gt;
&lt;br /&gt;
There is one drawback in Moodle 1.5 - 1.6 implementation of LDAP authentication : the auth_ldap_connect() function processes the servers sequentially, not in a round robin mode. Thus, if the primary server fails, you will have to wait for the connection to time out before switching to the following one.&lt;br /&gt;
&lt;br /&gt;
See also: [http://moodle.org/mod/forum/discuss.php?d=17198 Using multiple LDAP servers - Our students are on separate domain] forum discussion&lt;br /&gt;
&lt;br /&gt;
===Using a multi-domain AD environment===&lt;br /&gt;
* If you&#039;re running Active Directory with multiple domains and you have users in more then one domain you will want to configure Moodle to look at your Global Catalog server. Specifically your top level domain Global Catalog server. Here is a simple example of this kind of Active Directory layout:&lt;br /&gt;
&lt;br /&gt;
 my.domain.ca (Root AD Domain)&lt;br /&gt;
 | - dc1.my.domain.ca (Domain Controller)&lt;br /&gt;
 | - dc2.my.domain.ca (Domain Controller)&lt;br /&gt;
 |&lt;br /&gt;
 | - - students.my.domain.ca (Sub AD Domain)&lt;br /&gt;
 | - - - dc1.students.my.domain.ca (Domain Controller)&lt;br /&gt;
 | - - - dc2.students.my.domain.ca (Domain Controller)&lt;br /&gt;
 |&lt;br /&gt;
 | - - faculty.my.domain.ca (Sub AD Domain)&lt;br /&gt;
 | - - - dc1.faculty.my.domain.ca (Domain Controller)&lt;br /&gt;
 | - - - dc2.faculty.my.domain.ca (Domain Controller)&lt;br /&gt;
 &lt;br /&gt;
In this example we have our top level domain (my.domain.ca) and two sub-domains. One sub-domain is for faculty accounts (faculty.my.domain.ca) and the other is for student accounts (students.my.domain.ca). Listed under each of those are two domain controllers.&lt;br /&gt;
&lt;br /&gt;
Using the above example you&#039;ll want to use the following for accessing the Global Catalog over SSL:&lt;br /&gt;
&lt;br /&gt;
 ldaps://my.domain.ca:3269/&lt;br /&gt;
&lt;br /&gt;
If you prefer to access your global catalog over a non-SSL connection you&#039;ll want to use:&lt;br /&gt;
&lt;br /&gt;
 ldap://my.domain.ca:3268/&lt;br /&gt;
 &lt;br /&gt;
We found if you didn&#039;t configure things this way you&#039;d get errors like:&lt;br /&gt;
&lt;br /&gt;
  [Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Warning:  ldap_search() [&amp;lt;a href=&#039;function.ldap-search&#039;&amp;gt;function.ldap-search&amp;lt;/a&amp;gt;]: Search: Partial results and referral received in /xxx/xxx/moodle20/lib/ldaplib.php on line 241, referer: http://moodle.my.domain.ca/moodle20/login/index.php&lt;br /&gt;
  [Thu May 26 15:23:53 2011] [error] [client 192.168.xxx.xxx] PHP Warning:  ldap_first_entry(): supplied argument is not a valid ldap result resource in /xxx/xxx/moodle20/lib/ldaplib.php on line 248, referer: http://moodle.my.domain.ca/moodle20/login/index.php&lt;br /&gt;
&lt;br /&gt;
===Using multiple user locations (contexts) in your LDAP tree===&lt;br /&gt;
There is no need to use multiple user locations if your directory tree is flat, i.e. if all user accounts reside in a &#039;&#039;&#039;ou=people,dc=my,dc=organization,dc=domain&#039;&#039;&#039; or &#039;&#039;&#039;ou=people,o=myorg&#039;&#039;&#039; container. &lt;br /&gt;
&lt;br /&gt;
At the opposite, if you use the ACL mecanism to delegate user management, there are chances that your users will be stored in containers like &#039;&#039;&#039;ou=students,ou=dept1,o=myorg&#039;&#039;&#039; and &#039;&#039;&#039;ou=students,ou=dept2,o=myorg&#039;&#039;&#039; ...&lt;br /&gt;
&lt;br /&gt;
Then there is an alternative :&lt;br /&gt;
* Look at the &#039;&#039;&#039;o=myorg&#039;&#039;&#039; level with the ldap_search_sub attribute set to &#039;&#039;&#039;yes&#039;&#039;&#039;.&lt;br /&gt;
* Set the ldap_context to &#039;&#039;&#039;ou=students,ou=dept1,o=myorg ; ou=students,ou=dept2,o=myorg&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Choosing between these two solutions supposes some sort of benchmarking, as the result depends heavily on the structure of your directory tree &#039;&#039;&#039;and&#039;&#039;&#039; on your LDAP software indexing capabilities. Simply note that there is a probability in such deep trees that two users share the same &#039;&#039;common name&#039;&#039; (cn), while having different &#039;&#039;distinguished names&#039;&#039;. Then only the second solution will have a deterministic result (returning allways the same user).&lt;br /&gt;
&lt;br /&gt;
===Using LDAPS (LDAP over SSL)===&lt;br /&gt;
====Enabling LDAPS on your directory server====&lt;br /&gt;
&lt;br /&gt;
* [[Active_Directory#MS_Active_Directory_.2B_SSL|Enabling LDAPS on MS Active Directory ]]&lt;br /&gt;
&lt;br /&gt;
====Enabling LDAPS on your Moodle server====&lt;br /&gt;
Enabling LDAPS on your server can be tricky and often it is hard to pinpoint where things are going wrong. There are also differences between Windows and Linux and even different versions and distributions of Linux. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;If you have not done so already you will need to decide upon your approach to establishing an SSL connection to your directory server:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* SSL connection with unverified self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
You can generate your own SSL certificate, and then instruct your Moodle server to ignore the fact that it is not valid. This setup is not as secure as others since you cannot be sure the server you are connecting to is not fake.&lt;br /&gt;
&lt;br /&gt;
* SSL connection with trusted self-signed certificate.&lt;br /&gt;
&lt;br /&gt;
You can generate your own SSL certificate on your directory server, and then specifically trust this certificate by installing it on your Moodle server. &lt;br /&gt;
&lt;br /&gt;
* SSL connection with verified certificate from Internet-trusted certificate authority (CA)&lt;br /&gt;
&lt;br /&gt;
In this approach the LDAP server has an installed certificate from an Internet-based CA, this means that your directory server would have an Internet address &amp;amp; host name. Your Moodle server must be trusting the certificate authority and have Internet access. This approach is not often used as it usually incurs a cost for the certificate, and it requires your directory server and Moodle server to be exposed to the Internet.&lt;br /&gt;
&lt;br /&gt;
==Linux servers==&lt;br /&gt;
&#039;&#039;&#039;These instructions are for establishing a link using a trusted self-signed certificate.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: written for a Red Hat Enterprise Linux 6 server, other Linux distributions may differ, especially in the location of the SSL certificates and OpenLdap config files, but the core principals are the same.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To check that your directory server is online and accepting SSL connections on your LDAPS port (636), you can use try:&lt;br /&gt;
 openssl s_client –connect &amp;lt;ldap server ip address&amp;gt;:636&lt;br /&gt;
&lt;br /&gt;
Get your directory server’s certificate (.crt) and upload to Moodle server&#039;s ssl certificate directory, on RHEL6 this is at &#039;&#039;&#039;/etc/ssl/certs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Convert your ‘DER’ X509 certificate into a ‘PEM’ public key certificate.&lt;br /&gt;
 openssl x509 -in my_server_certificate.cer -inform DER -out my_server_certificate.pem -outform PEM&lt;br /&gt;
&lt;br /&gt;
Create certificate hashes using c_rehash&lt;br /&gt;
 c_rehash&lt;br /&gt;
&#039;&#039;If c_rehash is not installed install with: yum install /usr/bin/c_rehash&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ensure you are able to access your LDAPS server by a DNS name, this may mean adding an entry to your host file (/etc/hosts)&lt;br /&gt;
 &amp;lt;ldap server ip address&amp;gt;    my_server.mydomain.school&lt;br /&gt;
&lt;br /&gt;
Verify your certificate to check that it is installed correctly&lt;br /&gt;
 openssl verify -verbose -CApath /etc/ssl/certs /etc/ssl/certs/my_server_certificate.pem&lt;br /&gt;
 /etc/ssl/certs/my_server_certificate.pem: OK&lt;br /&gt;
&lt;br /&gt;
You should now be able to connect to your LDAPS server over SSL without any errors&lt;br /&gt;
 openssl s_client –connect &amp;lt;ldap server DNS name&amp;gt;:636&lt;br /&gt;
&lt;br /&gt;
Edit your OpenLDAP config, on RHEL6 this is located at &#039;&#039;&#039;/etc/openldap/ldap.conf&#039;&#039;&#039;&lt;br /&gt;
 # Define location of a CA Cert&lt;br /&gt;
 TLS_CACERT /etc/ssl/certs/my_server_certificate.pem&lt;br /&gt;
 TLS_CACERTDIR /etc/ssl/certs&lt;br /&gt;
&lt;br /&gt;
Finally, you may or may not need to restart Apache, before configuring Moodle to use ldaps://&amp;lt;server DNS name&amp;gt;&lt;br /&gt;
 httpd -k restart&lt;br /&gt;
&lt;br /&gt;
==Windows servers==&lt;br /&gt;
&#039;&#039;&#039;These instructions are for establishing a link using an unverified self-signed certificate.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can tell PHP&#039;s OpenLDAP extension to disable SSL server certificate checking to do this you must create a directory called &#039;&#039;&#039;&#039;C:\OpenLDAP\sysconf\&#039;&#039;&#039;&#039; In this directory, create a file called &#039;&#039;ldap.conf&#039;&#039; with the following content:&lt;br /&gt;
&lt;br /&gt;
 TLS_REQCERT never&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(If you are using certain versions of PHP 5.3.x you &#039;&#039;&#039;may need to place the file at other locations&#039;&#039;&#039;, [http://bugs.php.net/bug.php?id=48866 see PHP bug #48866])&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to use &#039;&#039;&#039;ldaps://&#039;&#039;&#039; when connecting to your LDAP server.&lt;br /&gt;
&lt;br /&gt;
==Appendices==&lt;br /&gt;
&lt;br /&gt;
=== Setting Resource Limits RedHat Directory Server ===&lt;br /&gt;
&lt;br /&gt;
Operational attributes can be set for the bind user DN using the command-line. &lt;br /&gt;
One can simply use ldapmodify to add the following attributes:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Attribute Name &lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| nsLookThroughLimit&lt;br /&gt;
| Specifies how many entries are examined for a search operation. Giving this attribute a value of -1 indicates that there is no limit.&lt;br /&gt;
|-&lt;br /&gt;
| nsSizeLimit &lt;br /&gt;
| Specifies the maximum number of entries the server returns to a client application in response to a search operation. Giving this attribute a value of -1 indicates that there is no limit.&lt;br /&gt;
|-&lt;br /&gt;
| nsTimeLimit &lt;br /&gt;
| Specifies the maximum time the server spends processing a search operation. Giving this attribute a value of -1 indicates that there is no time limit.&lt;br /&gt;
|-&lt;br /&gt;
| nsIdleTimeout 	        &lt;br /&gt;
| Specifies the time a connection to the server can be idle before the connection is dropped. The value is given in seconds. Giving this attribute a value of -1 indicates that there is no limit.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt; LDAP Console Command-Line&lt;br /&gt;
&lt;br /&gt;
 ldapmodify -h redhat_dir_server -p 389 -D &amp;quot;cn=directory manager&amp;quot; -w secretpwd&lt;br /&gt;
&lt;br /&gt;
 dn: uid=MoodleAdmin,ou=system,dc=myschool,dc=edu&lt;br /&gt;
 changetype: modify&lt;br /&gt;
 add:nsSizeLimit&lt;br /&gt;
 nsSizeLimit: 1000&lt;br /&gt;
 &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==Any questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?id=42 Authentication forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[NTLM_authentication]]&lt;br /&gt;
* [[Active_Directory]]&lt;br /&gt;
* [[LDAP enrolment]]&lt;br /&gt;
* [http://download.moodle.org/download.php/docs/en/how-to_guides/ldap_auth_and_enrolment_set-up.pdf LDAP auth and enrolment set-up guide] (PDF 227KB)&lt;br /&gt;
&lt;br /&gt;
Forum discussions:&lt;br /&gt;
* [http://moodle.org/mod/forum/view.php?id=42 User authentication forum]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=32168 PHP LDAP module does not seem to be present] forum discussion&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=140901 Syncronisation with AUTH_LDAP_SYNC_USERS.PHP produces fewer accounts than it should] forum discussion&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=17198 Using multiple LDAP servers] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[es:LDAP_authentication]]&lt;br /&gt;
[[fr:Utiliser un serveur LDAP]]&lt;br /&gt;
[[ja:LDAP認証]]&lt;br /&gt;
[[de:LDAP-Server]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Talk:Redis_cache_store&amp;diff=135473</id>
		<title>Talk:Redis cache store</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Talk:Redis_cache_store&amp;diff=135473"/>
		<updated>2019-09-16T14:09:25Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;If you are configuring a cluster of Moodle servers/nodes, the [[Redis]] service (daemon) should be installed on an external server and all Moodle nodes (servers/instances) should point to that external Redis. so all user&#039;s data is available when the user is using (connected to) any of the Moodle nodes, &#039;&#039;&#039;in case the user&#039;s connection is not persistent (sticky) to a specific node for the entire Moodle session&#039;&#039;&#039;.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This bit is not really correct, unless you meant only session cache:&lt;br /&gt;
in case the user&#039;s connection is not persistent (sticky) to a specific node for the entire Moodle session&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Talk:Redis_cache_store&amp;diff=135472</id>
		<title>Talk:Redis cache store</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Talk:Redis_cache_store&amp;diff=135472"/>
		<updated>2019-09-16T14:07:49Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;If you are configuring a cluster of Moodle servers/nodes, the [[Redis]] service (daemon) should be installed on an external server and all Moodle nodes (servers/instances) should point to that external Redis. so all user&#039;s data is available when the user is using (connected to) any of the Moodle nodes, in case the user&#039;s connection is not persistent (sticky) to a specific node for the entire Moodle session.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This bit is not really correct, unless you meant only session cache:&lt;br /&gt;
in case the user&#039;s connection is not persistent (sticky) to a specific node for the entire Moodle session&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Redis_cache_store&amp;diff=135471</id>
		<title>Redis cache store</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Redis_cache_store&amp;diff=135471"/>
		<updated>2019-09-16T14:07:33Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
The Redis cache store is one of the best options to handle session and application cache as it supports: data guarantee, locking, key awareness. (and also can be used for [[Session_handling#Redis_session_driver|user&#039;s sessions caching]] in the config.php file)&lt;br /&gt;
&lt;br /&gt;
Before Redis is available as a cache store, you will need to install [[Redis]] service (daemon) on your Moodle server, locally in case of a single Moodle app node architecture or externally if you are using a cluster of Moodle nodes. only then, you can configure Redis as an application or session level cache store.&lt;br /&gt;
&lt;br /&gt;
If you are configuring a cluster of Moodle servers/nodes, the [[Redis]] service (daemon) should be installed on an external server and all Moodle nodes (servers/instances) should point to that external Redis. So all user&#039;s data is available when the user is using (connected to) any of the Moodle nodes. An external Redis (NoSQL) service can be installed on the main SQL server alongside the MySQL/MariaDB service, just make sure you have enough memory allocated on that server for both services. &lt;br /&gt;
&lt;br /&gt;
A good practice is to give the [[Redis]] cache store prefix a proper short name and not leave it empty, as later on, it might conflict with user&#039;s session Redis cache you might choose to use, or other Moodle instances that will be installed on the same server. for example &amp;quot;my-school-name_cs_&amp;quot;, where you replace &amp;quot;my-school-name&amp;quot; with your short school name. (and if you are also using a user&#039;s session store on the config.php file, you might like to prefix it with &amp;quot;my-school-name_us_&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
When using a cluster setup with several Moodle instances on each node that belong to different Schools/Institutes/clients, make sure that you use the same Prefix for all Moodle instances that are on different nodes and are of the same School/Institute/Client.&lt;br /&gt;
&lt;br /&gt;
==Installing Redis server==&lt;br /&gt;
* [https://www.linode.com/docs/databases/redis/install-and-configure-redis-on-centos-7 install and configure redis on centos 7]&lt;br /&gt;
* [https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04 install and configure redis on Ubuntu 18.04]&lt;br /&gt;
* [[Session_handling#Redis_session_driver]] and [https://www.digitalocean.com/community/tutorials/how-to-set-up-a-redis-server-as-a-session-handler-for-php-on-ubuntu-14-04 How to Set Up a Redis Server as a Session Handler for PHP]&lt;br /&gt;
* Install [https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/repoview/redis5.html Redis 5] via IUS CentOS 7 repository.&lt;br /&gt;
&lt;br /&gt;
==Installing Redis php driver==&lt;br /&gt;
* For CentOS, you can use either [https://rpms.remirepo.net/ Remi] or [https://ius.io/ IUS] repositories, and install the [https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/repoview/php71u-pecl-redis.html php71u-pecl-redis] driver.&lt;br /&gt;
* [https://gist.github.com/hollodotme/418e9b7c6ebc358e7fda Redis php-fpm 7 driver on Ubuntu 14.04]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://gist.github.com/kabel/10023961 Monitor Redis stats (a php one page app)]&lt;br /&gt;
* MDL-48468 : Add a Redis cache store to Moodle core&lt;br /&gt;
&lt;br /&gt;
[[de:Redis Cache]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Talk:Redis_cache_store&amp;diff=135470</id>
		<title>Talk:Redis cache store</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Talk:Redis_cache_store&amp;diff=135470"/>
		<updated>2019-09-16T14:06:36Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: Created page with &amp;quot;If you are configuring a cluster of Moodle servers/nodes, the Redis service (daemon) should be installed on an external server and all Moodle nodes (servers/instances) sho...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you are configuring a cluster of Moodle servers/nodes, the [[Redis]] service (daemon) should be installed on an external server and all Moodle nodes (servers/instances) should point to that external Redis. so all user&#039;s data is available when the user is using (connected to) any of the Moodle nodes, in case the user&#039;s connection is not persistent (sticky) to a specific node for the entire Moodle session.&lt;br /&gt;
&lt;br /&gt;
This bit is not really correct, unless you meant only session cache:&lt;br /&gt;
in case the user&#039;s connection is not persistent (sticky) to a specific node for the entire Moodle session&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Restrict_access_FAQ&amp;diff=133321</id>
		<title>Restrict access FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Restrict_access_FAQ&amp;diff=133321"/>
		<updated>2019-03-10T09:44:20Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: /* Can I make access to a course conditional upon completing another course? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Restrict access}}&lt;br /&gt;
==What IS restrict access?==&lt;br /&gt;
&lt;br /&gt;
Restrict access is a feature that enables a teacher to release resources and activities for their students based on certain criteria such as date, grade received or participation.&lt;br /&gt;
&lt;br /&gt;
==Where are the restrict access settings?==&lt;br /&gt;
&lt;br /&gt;
&#039;Conditional access&#039; needs to be enabled by an administrator in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Advanced features&#039;&#039; and a teacher will then see &amp;quot;restrict access&amp;quot; options in the set-up screen of each activity.&lt;br /&gt;
&lt;br /&gt;
==Can I make access to a course conditional upon completing another course?==&lt;br /&gt;
&lt;br /&gt;
Not currently, no. It is not possible to restrict access to course B until a student has completed course A. There are workarounds though such as setting a final page at the end of course A which  is only revealed once the student has completed course A. In this page you can include the enrolment key for course B. However - this relies on trusting students not to pass the key onto others.&lt;br /&gt;
&lt;br /&gt;
There is one [https://moodle.org/plugins/enrol_coursecompleted  additional plugin for Moodle 3.3 and newer] - With this plugin it is possible to create a chain of courses. After completion of a course, the student is automatically enrolled in one or more other courses. But it is also possible to give a user another role in the same course when he/she completes the course.&lt;br /&gt;
&lt;br /&gt;
==Can I restrict access to a whole section, not just individual activities?==&lt;br /&gt;
&lt;br /&gt;
Yes you can. The settings are within each course section when you click the &amp;quot;edit&amp;quot; icon.&lt;br /&gt;
&lt;br /&gt;
==Can I hide an item, reveal it, and then hide it again?==&lt;br /&gt;
&lt;br /&gt;
Yes you can. See this forum post on [https://moodle.org/mod/forum/discuss.php?d=263547 using restrict access to make labels visible and then invisible].&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Voraussetzungen FAQ]]&lt;br /&gt;
[[es:Restringir acceso FAQ]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Groupings&amp;diff=106848</id>
		<title>Groupings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Groupings&amp;diff=106848"/>
		<updated>2013-10-12T11:22:29Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: /* Examples of groupings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Grouping users}}&lt;br /&gt;
&lt;br /&gt;
If you want to make an activity (such as an assignment or a quiz) visible to only one set of users within a course, you need first to put the users into a [[Groups|group]] and then put them into a grouping.  A single grouping can house one group or several groups.&lt;br /&gt;
&lt;br /&gt;
If you assign an activity to a grouping then only the group/grouping that is selected will be able to see and do the activity. It will be invisible to other groups or groupings.&lt;br /&gt;
&lt;br /&gt;
NOTE: if you want to show resources (such as a folder or webpage) to  just to one group and not another, see [[Available for group members only]].&lt;br /&gt;
&lt;br /&gt;
==Adding groups to a grouping==&lt;br /&gt;
To add groups to a grouping: &lt;br /&gt;
*In your course, click &#039;&#039;Settings &amp;gt; Course administration &amp;gt; Users &amp;gt; Groups&#039;&#039;.&lt;br /&gt;
*Click the groupings tab:&lt;br /&gt;
&lt;br /&gt;
[[File:Groupingstabs.png]]&lt;br /&gt;
*If necessary, create a new grouping by clicking the create grouping button on the groupings page.&lt;br /&gt;
&lt;br /&gt;
An optional grouping ID number (an advanced setting) may be added for matching the grouping against external systems. Grouping ID numbers are not displayed anywhere on the site. Within a course, all grouping ID numbers must be unique. Thus it&#039;s not possible to create a grouping with a duplicate grouping ID number. &lt;br /&gt;
&lt;br /&gt;
*Click the &amp;quot;Show groups in grouping&amp;quot; people icon in the edit column:&lt;br /&gt;
&lt;br /&gt;
[[File:Showgroupsingroupings2.png]]&lt;br /&gt;
&lt;br /&gt;
*On the add/remove groups page, select the group(s) you want to add to the grouping from the &amp;quot;Potential members&amp;quot; list.&lt;br /&gt;
*Click the arrow button that points towards the &amp;quot;Existing members&amp;quot; list.&lt;br /&gt;
&lt;br /&gt;
[[File:Addremovegroupings.png]]&lt;br /&gt;
*Click the &amp;quot;Back to groupings&amp;quot; button. The group(s) you added to the grouping will now be listed in the table on the groupings page.&lt;br /&gt;
&lt;br /&gt;
Existing groupings can be edited and/or deleted using the appropriate icons in the edit column of the table on the groupings page.&lt;br /&gt;
&lt;br /&gt;
==Setting the default grouping==&lt;br /&gt;
&lt;br /&gt;
Once some groupings have been created, a default grouping for course activities and resources may be set.&lt;br /&gt;
&lt;br /&gt;
#Follow the settings link in the course administration block.&lt;br /&gt;
#In the groups section in the course settings, select the default grouping.&lt;br /&gt;
&lt;br /&gt;
The default grouping is used on the Participants page.&lt;br /&gt;
&lt;br /&gt;
==Selecting grouping in activity==&lt;br /&gt;
To use a particular grouping in an activity:&lt;br /&gt;
*In the &amp;quot;edit settings&amp;quot; link of the Settings block for the activity, click the &amp;quot;Show advanced&amp;quot; button in the common module settings section.&lt;br /&gt;
*Ensure that the group mode is set to separate or visible groups.&lt;br /&gt;
*Select the grouping from the grouping dropdown menu.&lt;br /&gt;
*Check the &amp;quot;Available for group members only&amp;quot; box.&lt;br /&gt;
&lt;br /&gt;
[[File:Setyourgrouping.png]]&lt;br /&gt;
&lt;br /&gt;
*Click the &amp;quot;Save changes&amp;quot; button at the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
Students will only see the activities they have been assigned to. Teachers will see the name of the grouping in brackets after the activity name on the course page. A count of activities assigned to each grouping is kept on the groupings page.&lt;br /&gt;
&lt;br /&gt;
Please note that the grouping option appears by default only in activities that support group modes.  If you enable &#039;&#039;Available for group members only&#039;&#039; you will be able to assign resources to specific groups also.&lt;br /&gt;
&lt;br /&gt;
==Restricting a whole topic to a grouping== &lt;br /&gt;
&lt;br /&gt;
There is a dropdown setting in each topic summary which allows you to select a particular grouping for that topic section. To enable this setting, you need to enable both [[Conditional activities]] and [[Available for group members only]]&lt;br /&gt;
&lt;br /&gt;
[[File:topicgrouping.gif]]&lt;br /&gt;
&lt;br /&gt;
==Examples of groupings==&lt;br /&gt;
&lt;br /&gt;
It sometimes helps to think of a grouping as a [http://en.memory-alpha.org/wiki/Cloaking_device| Romulan cloaking device] Those groups inside it know of their existence but other groups within the course cannot see them.&lt;br /&gt;
&lt;br /&gt;
===Example 1: Differentiation===&lt;br /&gt;
&lt;br /&gt;
*You have course on Macbeth shared by three teachers. The activities and resources are mostly the same and used by all three classes. &lt;br /&gt;
*However, Mr Brown’s class are a higher ability and so are set some extension assignments that must not be seen by Mrs Smith’s class who are of a lower ability. Mrs Smith’s class need some extra assistance and are set some activities which are too easy for Mr Brown&#039;s students. Ms Black’s class are middle ability and can cope with some of the higher tasks but also benefit from some of the supportive tasks Mrs Smith uses.&lt;br /&gt;
&lt;br /&gt;
Groupings would allow all three teachers to share the course and yet direct activities to specific classes:&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;3000 word in-depth assignment&#039;&#039;  - only for Class Brown. The class is added to the grouping “Class Brown” and the assignment is set to the “Class Brown” grouping. Only these students will see it.&lt;br /&gt;
#&#039;&#039;Basic Shakespeare vocabulary&#039;&#039; –a page only for Class Smith. The class is added to the grouping “Class Smith” and the page is set to the &amp;quot;Class Smith&amp;quot; grouping (See [[Available for group members only]] for resources) Only the students with special educational needs will see it.&lt;br /&gt;
#&#039;&#039;Quiz on the main protagonists&#039;&#039; –suitable for Class Brown (high ability) but offered to Class Black also to extend their learning. Both classes are added to a grouping “ClassBrownBlack” and the quiz is set to the &amp;quot;ClassBrownBlack&amp;quot; grouping. These two classes will see the quiz but Mrs Smiths’s will not.&lt;br /&gt;
&lt;br /&gt;
===Example 2: Mandatory and optional modules===&lt;br /&gt;
	&lt;br /&gt;
*A university has a  mandatory module of work &#039;&#039;FS32&#039;&#039; and two optional modules &#039;&#039;FS33&#039;&#039; and &#039;&#039;FS34&#039;&#039; within a single Moodle course. So all students must complete FS32 and then choose either one of the other two options. Once students have signed up to one of the optional modules they are not allowed to view the contents of the other module. &lt;br /&gt;
*Three groups may be made: group FS32 including all students on the course; group FS33 including only those who have signed up for this optional module, and group FS34 including only those who have signed up for the other optional module. &lt;br /&gt;
#Nothing needs to be done with the activities in the mandatory module FS32 as all students need to access them. The activities can be set to separate or visible groups but no grouping is necessary.&lt;br /&gt;
# In order for only those students who signed up for optional modules FS33 and FS34 to view them, &amp;quot;Group FS33&amp;quot; needs to be put into &amp;quot;Grouping FS33&amp;quot;. and &amp;quot;Group FS32&amp;quot; needs to be put into &amp;quot;Grouping FS34&amp;quot;&lt;br /&gt;
#. The activities in each of the two optional modules can then be assigned to the respective groupings. With Moodle 2.3 it is possible to allocate whole  course sections to groupings so it might be useful to add the activities to a particular course section to save administrative time.&lt;br /&gt;
&lt;br /&gt;
==One way to visualise groupings==&lt;br /&gt;
Olympic metaphor: at the Olympics, there are different sports (gymnastics, swimming, track) and many countries. There are two ways to think of an Olympian athlete: by the sport they compete in, and by their nationality. To be part of the United States Olympic Team, you must first be a swimmer, a gymnast, or a runner. You cannot be in the US Team without first being an athlete in a specific sport. The sport is your group. Your country is your grouping. You must belong to a group before joining a grouping.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Available for group members only]]&lt;br /&gt;
*[[Import groups |Importing users into groupings via CSV]]&lt;br /&gt;
*[[Groupings FAQ]]&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=131905 Moodle Groups vs. Groupings] forum discussion including youtube video showing how to set up groupings&lt;br /&gt;
&lt;br /&gt;
[[fr:Groupements]]&lt;br /&gt;
[[ja:グルーピング]]&lt;br /&gt;
[[de:Gruppierungen]]&lt;br /&gt;
[[ca:Agrupaments]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Theme_settings&amp;diff=104157</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Theme_settings&amp;diff=104157"/>
		<updated>2013-04-16T16:34:46Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: /* Change default  hierarchy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
An administrator can change theme settings in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Themesettings.png]]&lt;br /&gt;
&lt;br /&gt;
===Theme list===&lt;br /&gt;
This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
You can  preview the available themes in &#039;&#039;Settings &amp;gt; Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Themes selector.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Theme designer mode===&lt;br /&gt;
Turn this on if you are designing and testing themes as it will stop the themes being cached and enable you to see theme changes quickly. (You can also do this with the Clear theme cache button on the theme selector page.)&lt;br /&gt;
&lt;br /&gt;
===Allow user themes===&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the edit profile page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
===Allow course themes===&lt;br /&gt;
If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
===Allow category themes===&lt;br /&gt;
When enabled, themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance, as it will result in a few extra DB queries on each page, so only turn this on if you need it!&lt;br /&gt;
&lt;br /&gt;
===Allow theme changes in the URL===&lt;br /&gt;
*If this is checked then the theme may be changed by adding &amp;lt;code&amp;gt;?theme=theme_name&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;&amp;amp;theme=theme_name&amp;lt;/code&amp;gt; if there are other URL parameters) to the URL in the browser. Theme names should be in lower case with spaces replaced by underscores, for example the theme &amp;quot;Formal white&amp;quot; should be entered as &amp;lt;code&amp;gt;?theme=formal_white&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Allow users to hide blocks===&lt;br /&gt;
Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
===Allow blocks to use the docks===&lt;br /&gt;
*If the theme allows it, then checking this will allow the user to move blocks to the side dock.&lt;br /&gt;
&lt;br /&gt;
===Custom menu items===&lt;br /&gt;
The custommenuitems setting allows you to create a drop down menu that can be displayed by themes that support it. Currently all themes that are provided with Moodle 2.0 support this custom menu.&lt;br /&gt;
&lt;br /&gt;
You are able to create the custom menu by entering custom menu items one per line into the setting. Each item is preceded by a number of hyphens (-), the number of hyphens determines the depth of the item. So items that are &#039;&#039;&#039;NOT&#039;&#039;&#039; preceded by a hyphen appear on the top level of the menu (always visible), items with a single hyphen appear on a drop down menu below the previous top level item, and  items with two hyphens appear on a drop down menu below the previous first level item and so on.&lt;br /&gt;
&lt;br /&gt;
The content of each item is constructed of up to three bits, each separated by a &#039;&#039;&#039;|&#039;&#039;&#039; (Shift + \) character. The bits are &#039;&#039;&#039;label&#039;&#039;&#039; | &#039;&#039;&#039;url&#039;&#039;&#039; | &#039;&#039;&#039;tooltip&#039;&#039;&#039;.&lt;br /&gt;
; label : This is the text that will be shown within the menu item. You must specify a label for every item on the menu.&lt;br /&gt;
; url : This is the URL that the user will be taken to it they click the menu item. This is optional, if not provided then the item will not link anywhere.&lt;br /&gt;
; tooltip : If you provide a URL you can also choose to provide a tooltip for the link that is created with the URL. This is optional and if not set the label is used as the tooltip for the menu item.&lt;br /&gt;
&lt;br /&gt;
The following is an example of how you would create a custom menu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Moodle community|http://moodle.org&lt;br /&gt;
-Moodle free support|http://moodle.org/support&lt;br /&gt;
-Moodle development|http://moodle.org/development&lt;br /&gt;
--Moodle Tracker|http://tracker.moodle.org&lt;br /&gt;
--Moodle Docs|https://docs.moodle.org&lt;br /&gt;
-Moodle News|http://moodle.org/news&lt;br /&gt;
Moodle company&lt;br /&gt;
-Moodle commercial hosting|http://moodle.com/hosting&lt;br /&gt;
-Moodle commercial support|http://moodle.com/support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The custom menu does not escape characters within the label, if you want to use a special HTML character such as an ampersand you must escape it yourself within the label. e.g. use &amp;amp;amp; instead of &amp;amp;.&lt;br /&gt;
&lt;br /&gt;
For more information on this setting please see the &#039;&#039;Using Moodle&#039;&#039; forum discussion [http://moodle.org/mod/forum/discuss.php?d=149803 Moodle 2.0: Custom menu in core]&lt;br /&gt;
&lt;br /&gt;
==== Multilanguage support ====&lt;br /&gt;
&lt;br /&gt;
You can add a language code (or a comma separated list of codes) as the 4th item of the line. The line will be then printed if and only if the user has currently selected the listed language. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 English only|http://moodle.com|English only item|en&lt;br /&gt;
 German only|http://moodle.de|Deutsch|de,de_du,de_kids&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Adding other attributes to the HTML ====&lt;br /&gt;
Other attributes, such as &#039;&#039;&#039;target&#039;&#039;&#039; can be added with escaped quotes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 Moodle Homepage|http://moodle.org\&amp;quot; target=\&amp;quot;_blank&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first escaped quote closes the href attribute, allowing other attributes to be added. All quotes for the extra attributes must be escaped as well. Do not add the closing quotation mark on the final attribute, it is added automatically by Moodle.&lt;br /&gt;
&lt;br /&gt;
===Enable device detection===&lt;br /&gt;
Will detect mobile and tablets that identify themselves via the web browser at the time of login to Moodle.   These work with the theme selector.  When the theme selector has identified a default, mobile and tablet themes, this feature will use that theme.&lt;br /&gt;
&lt;br /&gt;
===Device detection regular expressions===&lt;br /&gt;
This will allow you to customize the theme selector options.   For example, you can add a custom theme for IE6 and another for Windows CE by entering the identifying expressions the browser sends and the &amp;quot;Return value&amp;quot; you want to display as the theme selectors &amp;quot;Device type&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Special themes==&lt;br /&gt;
&lt;br /&gt;
=== Session themes ===&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
=== Page theme ===&lt;br /&gt;
A page theme is for special page-only themes set by code, use &amp;lt;code&amp;gt;$PAGE-&amp;gt;force_theme()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Theme hierarchy ==&lt;br /&gt;
Here is the usual order that themes are considered by the Moodle interface.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
=== Change default  hierarchy===&lt;br /&gt;
The priority of themes can be set via the /moodle/config.php file. The order defines which theme wins when there are several set at different levels. You can set a variable called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Particular theme settings==&lt;br /&gt;
&lt;br /&gt;
Logo, tagline, link colour, column width, custom CSS and other settings for a particular theme may be set by an administrator in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;br /&gt;
[[ja:テーマ設定]]&lt;br /&gt;
[[de:Design-Einstellungen]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Theme_settings&amp;diff=104156</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Theme_settings&amp;diff=104156"/>
		<updated>2013-04-16T16:34:14Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Themes}}&lt;br /&gt;
== Theme settings ==&lt;br /&gt;
An administrator can change theme settings in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Themesettings.png]]&lt;br /&gt;
&lt;br /&gt;
===Theme list===&lt;br /&gt;
This lists the themes available for course and user themes. Leave this blank to allow any valid theme to be used. If you want to shorten the theme menu, you may specify a comma-separated list of names, though don&#039;t use spaces (e.g. standard,orangewhite).&lt;br /&gt;
&lt;br /&gt;
You can  preview the available themes in &#039;&#039;Settings &amp;gt; Site Administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Themes selector.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Theme designer mode===&lt;br /&gt;
Turn this on if you are designing and testing themes as it will stop the themes being cached and enable you to see theme changes quickly. (You can also do this with the Clear theme cache button on the theme selector page.)&lt;br /&gt;
&lt;br /&gt;
===Allow user themes===&lt;br /&gt;
If the option &#039;&#039;allowuserthemes&#039;&#039; is enabled, each user may select their preferred theme on the edit profile page. All Moodle pages will be displayed in the user&#039;s theme, apart from courses where a course theme has been set.&lt;br /&gt;
&lt;br /&gt;
===Allow course themes===&lt;br /&gt;
If you enable this, then teachers will be able to set their own course themes. Course themes override all other theme choices (site, user, or session themes).&lt;br /&gt;
&lt;br /&gt;
*If the option &#039;&#039;allowcoursethemes&#039;&#039; is enabled, each editing teacher may select their course theme via the Force theme option on the [[course/edit|Course settings]] page. The course will always be displayed in the theme specified in the course setting, with user and the site themes being overwritten.&lt;br /&gt;
&lt;br /&gt;
===Allow category themes===&lt;br /&gt;
When enabled, themes can be set at the category level. This will affect all child categories and courses unless they have specifically set their own theme. WARNING: Enabling category themes may affect performance, as it will result in a few extra DB queries on each page, so only turn this on if you need it!&lt;br /&gt;
&lt;br /&gt;
===Allow theme changes in the URL===&lt;br /&gt;
*If this is checked then the theme may be changed by adding &amp;lt;code&amp;gt;?theme=theme_name&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;&amp;amp;theme=theme_name&amp;lt;/code&amp;gt; if there are other URL parameters) to the URL in the browser. Theme names should be in lower case with spaces replaced by underscores, for example the theme &amp;quot;Formal white&amp;quot; should be entered as &amp;lt;code&amp;gt;?theme=formal_white&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Allow users to hide blocks===&lt;br /&gt;
Allows users to display and hide blocks&lt;br /&gt;
&lt;br /&gt;
===Allow blocks to use the docks===&lt;br /&gt;
*If the theme allows it, then checking this will allow the user to move blocks to the side dock.&lt;br /&gt;
&lt;br /&gt;
===Custom menu items===&lt;br /&gt;
The custommenuitems setting allows you to create a drop down menu that can be displayed by themes that support it. Currently all themes that are provided with Moodle 2.0 support this custom menu.&lt;br /&gt;
&lt;br /&gt;
You are able to create the custom menu by entering custom menu items one per line into the setting. Each item is preceded by a number of hyphens (-), the number of hyphens determines the depth of the item. So items that are &#039;&#039;&#039;NOT&#039;&#039;&#039; preceded by a hyphen appear on the top level of the menu (always visible), items with a single hyphen appear on a drop down menu below the previous top level item, and  items with two hyphens appear on a drop down menu below the previous first level item and so on.&lt;br /&gt;
&lt;br /&gt;
The content of each item is constructed of up to three bits, each separated by a &#039;&#039;&#039;|&#039;&#039;&#039; (Shift + \) character. The bits are &#039;&#039;&#039;label&#039;&#039;&#039; | &#039;&#039;&#039;url&#039;&#039;&#039; | &#039;&#039;&#039;tooltip&#039;&#039;&#039;.&lt;br /&gt;
; label : This is the text that will be shown within the menu item. You must specify a label for every item on the menu.&lt;br /&gt;
; url : This is the URL that the user will be taken to it they click the menu item. This is optional, if not provided then the item will not link anywhere.&lt;br /&gt;
; tooltip : If you provide a URL you can also choose to provide a tooltip for the link that is created with the URL. This is optional and if not set the label is used as the tooltip for the menu item.&lt;br /&gt;
&lt;br /&gt;
The following is an example of how you would create a custom menu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Moodle community|http://moodle.org&lt;br /&gt;
-Moodle free support|http://moodle.org/support&lt;br /&gt;
-Moodle development|http://moodle.org/development&lt;br /&gt;
--Moodle Tracker|http://tracker.moodle.org&lt;br /&gt;
--Moodle Docs|https://docs.moodle.org&lt;br /&gt;
-Moodle News|http://moodle.org/news&lt;br /&gt;
Moodle company&lt;br /&gt;
-Moodle commercial hosting|http://moodle.com/hosting&lt;br /&gt;
-Moodle commercial support|http://moodle.com/support&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: The custom menu does not escape characters within the label, if you want to use a special HTML character such as an ampersand you must escape it yourself within the label. e.g. use &amp;amp;amp; instead of &amp;amp;.&lt;br /&gt;
&lt;br /&gt;
For more information on this setting please see the &#039;&#039;Using Moodle&#039;&#039; forum discussion [http://moodle.org/mod/forum/discuss.php?d=149803 Moodle 2.0: Custom menu in core]&lt;br /&gt;
&lt;br /&gt;
==== Multilanguage support ====&lt;br /&gt;
&lt;br /&gt;
You can add a language code (or a comma separated list of codes) as the 4th item of the line. The line will be then printed if and only if the user has currently selected the listed language. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 English only|http://moodle.com|English only item|en&lt;br /&gt;
 German only|http://moodle.de|Deutsch|de,de_du,de_kids&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Adding other attributes to the HTML ====&lt;br /&gt;
Other attributes, such as &#039;&#039;&#039;target&#039;&#039;&#039; can be added with escaped quotes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 Moodle Homepage|http://moodle.org\&amp;quot; target=\&amp;quot;_blank&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
The first escaped quote closes the href attribute, allowing other attributes to be added. All quotes for the extra attributes must be escaped as well. Do not add the closing quotation mark on the final attribute, it is added automatically by Moodle.&lt;br /&gt;
&lt;br /&gt;
===Enable device detection===&lt;br /&gt;
Will detect mobile and tablets that identify themselves via the web browser at the time of login to Moodle.   These work with the theme selector.  When the theme selector has identified a default, mobile and tablet themes, this feature will use that theme.&lt;br /&gt;
&lt;br /&gt;
===Device detection regular expressions===&lt;br /&gt;
This will allow you to customize the theme selector options.   For example, you can add a custom theme for IE6 and another for Windows CE by entering the identifying expressions the browser sends and the &amp;quot;Return value&amp;quot; you want to display as the theme selectors &amp;quot;Device type&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Special themes==&lt;br /&gt;
&lt;br /&gt;
=== Session themes ===&lt;br /&gt;
Moodle offers an additional way to set a theme - the &#039;&#039;&#039;session theme&#039;&#039;&#039;. This is set with the URL and lasts until you log out. When you next login, the site/course/user themes are active again. This option is great for theme testing and works perfectly when you want to enable different themes for different situations.&lt;br /&gt;
&lt;br /&gt;
For example you can offer a special link for PDA users and integrate the session theme &#039;&#039;orangewhitepda&#039;&#039; in that link. Nobody needs to change any settings, you just click on that link. The session theme is called by the URL parameter &amp;lt;code&amp;gt;&amp;amp;theme=orangewhitepda&amp;lt;/code&amp;gt;. The whole URL  without the session theme could look like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://mymoodlesite.org/course/view.php?id=18&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and with the parameter for the PDA theme like &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;http://mymoodlesite.org/course/view.php?id=18&amp;amp;theme=orangewhitepda&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In a standard Moodle installation, session themes are not active. To activate them the administrator must add the parameter &amp;lt;code&amp;gt;$CFG-&amp;gt;allowthemechangeonurl = true;&amp;lt;/code&amp;gt; to the Moodle &#039;&#039;config.php&#039;&#039; file in the Moodle base directory.&lt;br /&gt;
&lt;br /&gt;
=== Page theme ===&lt;br /&gt;
A page theme is for special page-only themes set by code, use &amp;lt;code&amp;gt;$PAGE-&amp;gt;force_theme()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Theme hierarchy ==&lt;br /&gt;
Here is the usual order that themes are considered by the Moodle interface.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px dashed #ddd&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;text-align:left&amp;quot;&lt;br /&gt;
!Theme type&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Overwrites&lt;br /&gt;
!Display&lt;br /&gt;
! style=&amp;quot;background:#eee&amp;quot;|Setting type&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Site&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;| - &lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in theme profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|User&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site theme&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in user profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site, user and session themes&lt;br /&gt;
|one course&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|saved in course profile&lt;br /&gt;
|- style=&amp;quot;vertical-align:top&amp;quot;&lt;br /&gt;
|Session&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|Site and user themes&lt;br /&gt;
|all pages*&lt;br /&gt;
|style=&amp;quot;background:#eee&amp;quot;|temporary until logout&lt;br /&gt;
|}&lt;br /&gt;
(* except courses with the course theme set)&lt;br /&gt;
&lt;br /&gt;
=== Change default  hierarchy===&lt;br /&gt;
The priority of themes can be set via the /moodle/config.php file. The order defines which theme wins when there are several set at different levels. You can set a variable called $CFG-&amp;gt;themeorder (see config-dist.php for more details). By default it is set to: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;$CFG-&amp;gt;themeorder = array(&#039;page&#039;, &#039;course&#039;, &#039;category&#039;, &#039;session&#039;, &#039;user&#039;, &#039;site&#039;);&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Particular theme settings==&lt;br /&gt;
&lt;br /&gt;
Logo, tagline, link colour, column width, custom CSS and other settings for a particular theme may be set by an administrator in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Appearance &amp;gt; Themes &amp;gt; Theme name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[http://www.youtube.com/watch?v=mCVsJ3Wsoj8 Video demonstrating how to set a category theme in Moodle 1.9]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración de temas]]&lt;br /&gt;
[[fr:Configuration des thèmes]]&lt;br /&gt;
[[ja:テーマ設定]]&lt;br /&gt;
[[de:Design-Einstellungen]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Blogs_FAQ&amp;diff=103879</id>
		<title>Blogs FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Blogs_FAQ&amp;diff=103879"/>
		<updated>2013-04-07T08:04:19Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Blogs}}&lt;br /&gt;
==How can I limit blogging to specific users only?==&lt;br /&gt;
&lt;br /&gt;
See the [[Blogger role]].&lt;br /&gt;
&lt;br /&gt;
==How can I change the &#039;Publish to&#039; default setting?==&lt;br /&gt;
&lt;br /&gt;
By default, all blog entries are published to &#039;Anyone on this site&#039;. To change the default setting to &#039;Yourself (draft)&#039;, see the Using Moodle discussion [http://moodle.org/mod/forum/discuss.php?d=110983 Changing the Publish to Default Setting].&lt;br /&gt;
&lt;br /&gt;
==How can blogs be disabled completely?==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Appearance &amp;gt; [[Blog]]&#039;&#039; set &#039;&#039;bloglevel&#039;&#039; to &#039;Disable blogs completely&#039;.&lt;br /&gt;
&lt;br /&gt;
==How can I backup &amp;amp; restore blogs?==&lt;br /&gt;
&lt;br /&gt;
In 1.9 blogs were backed up &amp;amp; restored while doing a site backups. This has not been reimplemented for Moodle 2, so there is currently (Moodle 2.5) no way to backup blogs: [https://tracker.moodle.org/browse/MDL-22136 tracker issue].&lt;br /&gt;
&lt;br /&gt;
==Viewing blogs==&lt;br /&gt;
&lt;br /&gt;
===How can I see the blog of a particular person? (ie all the entries by a person)===&lt;br /&gt;
*In the course, Click Participants &amp;gt; Student Name &amp;gt; [a new item appears in the nav block - you need to notice it] &amp;gt; Blogs &amp;gt; you will see &amp;quot;View all entries by Student Name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===How can I see all the blog entries for associated with a particular course?===&lt;br /&gt;
#In the blogs block &amp;gt; &amp;quot;View all entries from this course&amp;quot;&lt;br /&gt;
#In the course, click Participants &amp;gt; Blogs.  Note: The term &#039;blog&#039; here could be misleading.  What you get is &amp;quot;Blog Posts attatched with a course&amp;quot;, not &#039;blogs&#039;.&lt;br /&gt;
&lt;br /&gt;
===How can I see all the posts associated with a particular person associated with a particular course?===&lt;br /&gt;
*It&#039;s not currently possible to do this.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Blog FAQ]]&lt;br /&gt;
[[eu:FAQ_Blogak]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=ThreeSixty_module&amp;diff=102882</id>
		<title>ThreeSixty module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=ThreeSixty_module&amp;diff=102882"/>
		<updated>2013-01-25T10:40:17Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: Created page with &amp;quot;{{Activities}} {{Infobox plugin |type = Activity module |entry = ...  |tracker = ... |discussion = ... |maintainer = Enovation Solutions }}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Activities}}&lt;br /&gt;
{{Infobox plugin&lt;br /&gt;
|type = Activity module&lt;br /&gt;
|entry = ... &lt;br /&gt;
|tracker = ...&lt;br /&gt;
|discussion = ...&lt;br /&gt;
|maintainer = Enovation Solutions&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Outcomes&amp;diff=97405</id>
		<title>Outcomes</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Outcomes&amp;diff=97405"/>
		<updated>2012-05-02T07:10:48Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Grades}}&lt;br /&gt;
Outcomes are specific descriptions of what a student has demonstrated and understood at the completion of an activity or course. Each outcome is rated by some sort of [[Scales|scale]]. Other terms for outcomes are &#039;&#039;Competencies&#039;&#039; and &#039;&#039;Goals&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
In simple terms outcomes are similar to sub components of a grade.  A grade is an assessment of overall performance that may include tests, participation, attendance and projects. Outcomes assess specific levels of knowledge through a series of statements, that maybe coded with numbers or letters.   Thus an overall grade can be given for a course, along with statements about specific competencies in the form of outcomes.  &lt;br /&gt;
&lt;br /&gt;
==Enabling outcomes==&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Advanced features&#039;&#039; and ensure that &#039;&#039;Enable outcomes&#039;&#039; is checked (by default, it isn&#039;t).&lt;br /&gt;
&lt;br /&gt;
==Using outcomes==&lt;br /&gt;
&lt;br /&gt;
# Choose or define some outcomes for your course (see below).&lt;br /&gt;
# For each activity, choose which of these outcomes apply using the tickbox in the activity&#039;s settings page.&lt;br /&gt;
# When grading that activity, grade each student using the Outcome scales. Note: You can also edit the grades in the [[Grader report]] (useful for modules that don&#039;t feature inbuilt grading).&lt;br /&gt;
# Use the outcomes as part of the assessment for students, or look at the Outcomes report for some useful feedback on how students in the class in general are performing.&lt;br /&gt;
&lt;br /&gt;
==Outcomes report==&lt;br /&gt;
&lt;br /&gt;
The outcomes report in &#039;&#039;Settings &amp;gt; Course administration &amp;gt; Grades &amp;gt; Outcomes report&#039;&#039; helps teachers monitor their students&#039; progress using outcomes.  It lists site-wide outcomes and custom outcomes used in the current course, their overall average (each outcome can be measured through many [[Grade items|grade items]]).  It will show the name, course and site wide average, the activity, the average values and the number of &amp;quot;grades&amp;quot; given.&lt;br /&gt;
&lt;br /&gt;
The outcomes report is a table with 6 columns:&lt;br /&gt;
&lt;br /&gt;
*Short name - the short name of the outcome used in this course.&lt;br /&gt;
*Course average -shows two values representing the average scores given to students for each outcome used in this course.&lt;br /&gt;
*Site-wide - Whether the outcome is a site-wide outcome or not.&lt;br /&gt;
*Activities - This lists the activities that use this outcome in this course. A new row is created for each activity, and the activity name is linked to the activity&#039;s page.&lt;br /&gt;
*Average - the average score for each activity using the outcome in this course.&lt;br /&gt;
*Number of Grades - The number of grades given to students for each activity using the outcome.&lt;br /&gt;
&lt;br /&gt;
==Outcomes used in course==&lt;br /&gt;
&lt;br /&gt;
Outcomes may be set at site and/or course level. To choose outcomes for use in your course:&lt;br /&gt;
&lt;br /&gt;
# View available standard outcomes in &#039;&#039;Settings &amp;gt; Course administration &amp;gt; Outcomes&#039;&#039; or via the gradebook Outcomes tab&lt;br /&gt;
# Add outcomes from the standard available list (right side), and use the left-facing arrow button to add them to outcomes used list (left side). Multiple outcomes may be selected by holding down the Apple or Ctrl key whilst clicking on the individual outcomes.&lt;br /&gt;
&lt;br /&gt;
==Adding course-level outcomes==&lt;br /&gt;
&lt;br /&gt;
[[Image:Adding an outcome.png|thumb|Adding an outcome]]To add a course-level outcome:&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;Edit outcomes&#039; link in &#039;&#039;Settings &amp;gt; Course administration &amp;gt; Outcomes&#039;&#039;&lt;br /&gt;
# Click the &#039;Add a new outcome&#039; button.&lt;br /&gt;
# Complete the form then click the &#039;Save changes&#039; button. &lt;br /&gt;
&lt;br /&gt;
==Adding standard outcomes==&lt;br /&gt;
&lt;br /&gt;
An administrator can add standard outcomes, which are available site-wide, in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Grades &amp;gt; Outcomes&#039;&#039;. Multiple standard outcomes can be added using the import outcomes functionality (see below).&lt;br /&gt;
&lt;br /&gt;
==Exporting outcomes==&lt;br /&gt;
&lt;br /&gt;
Outcomes (and their associated scales) can be exported by clicking the &amp;quot;Export all outcomes&amp;quot; button.  This will send a file (in .csv format) that can be read by Excel, OpenOffice.org or by any text editor.&lt;br /&gt;
&lt;br /&gt;
==Importing outcomes==&lt;br /&gt;
&lt;br /&gt;
Outcomes (and associated scales) may be imported by submitting a csv file. The format should be as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Field name&lt;br /&gt;
! Description&lt;br /&gt;
! Required&lt;br /&gt;
! Format&lt;br /&gt;
|-&lt;br /&gt;
| outcome_name&lt;br /&gt;
| The full name of the outcome&lt;br /&gt;
| Yes&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| outcome_shortname&lt;br /&gt;
| The short name of the outcome&lt;br /&gt;
| Yes&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| outcome_description&lt;br /&gt;
| The description of the outcome&lt;br /&gt;
| No&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| scale_name&lt;br /&gt;
| The name of the scale used&lt;br /&gt;
| Yes&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| scale_items&lt;br /&gt;
| A comma-separated list of scale items&lt;br /&gt;
| Yes&lt;br /&gt;
| String&lt;br /&gt;
|-&lt;br /&gt;
| scale_description&lt;br /&gt;
| The description of the scale&lt;br /&gt;
| No&lt;br /&gt;
| String&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is an example:&lt;br /&gt;
&lt;br /&gt;
 outcome_name;outcome_shortname;outcome_description;scale_name;scale_items;scale_description&lt;br /&gt;
 Participation;participation;;Participation scale;&amp;quot;Little or no participation, Satisfactory participation, Full participation&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
To import outcomes:&lt;br /&gt;
&lt;br /&gt;
# Click the &#039;Import outcomes&#039; link in &#039;&#039;Settings &amp;gt; Course administration &amp;gt; Outcomes&#039;&#039;&lt;br /&gt;
# Choose &#039;Import as custom outcomes (only this course)&#039; or &#039;Import as standard outcomes&#039; as required&lt;br /&gt;
# Upload the csv file&lt;br /&gt;
&lt;br /&gt;
Note that while importing: &lt;br /&gt;
*Existing outcomes and scale will be used if available (no overwriting is done by the script)&lt;br /&gt;
*The script will stop if it detects that the file contains invalid data&lt;br /&gt;
&lt;br /&gt;
==Removing selected outcomes for activities==&lt;br /&gt;
&lt;br /&gt;
Previously selected outcomes are greyed out on the update activity page, however they can be removed via the gradebook on the categories and items page. They will appear in the list either below or above the activity they have been enabled in and will have the same icon as that activity. Note that if you have renamed the outcome since you assigned it to the activity, the orginal name will be displayed. Deleting the outcomes from this list will result in the outcomes being deselected on the update activity page.&lt;br /&gt;
&lt;br /&gt;
==Outcomes capabilities==&lt;br /&gt;
&lt;br /&gt;
* [[Capabilities/gradereport/outcomes:view|View the outcomes report]]&lt;br /&gt;
* [[Capabilities/moodle/grade:manageoutcomes|Manage grade outcomes]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
	&lt;br /&gt;
*[http://www.slideshare.net/mariamoodle/outcomes-2724350 Moodle 1.9 Outcomes] External link to slide show demonstration&lt;br /&gt;
*[[Outcome examples]] - An example use of Outcomes&lt;br /&gt;
*[http://www.youtube.com/watch?v=PmkEGfvjj9U Video on how to use outcomes in Moodle]&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=78074 Outcomes in 1.9] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Report]]&lt;br /&gt;
&lt;br /&gt;
[[es:Resultados]]&lt;br /&gt;
[[fr:Objectifs]]&lt;br /&gt;
[[ja:アウトカム]]&lt;br /&gt;
[[de:Lernziele]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Flashcard_module&amp;diff=97023</id>
		<title>Flashcard module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Flashcard_module&amp;diff=97023"/>
		<updated>2012-04-17T20:58:24Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;flashcard module&#039;&#039;&#039; may be downloaded from https://github.com/tmuras/Moodle-Flashcard/zipball/master .&lt;br /&gt;
&lt;br /&gt;
The flashcard module allows editing and playing flashcards. Flashcards are a &amp;quot;memory training&amp;quot; device that uses the concept of repetition. Checking a flashcard deck will present the student the couples of relationships to be memorized. More often the associations are reviewed, deeper the memorization will be engraved into our memorial circuits.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* Getting cards from a &amp;quot;matching question&amp;quot;&lt;br /&gt;
* Editing cards&lt;br /&gt;
* Multimedia cards: text, image, sound and image + sound together&lt;br /&gt;
* Automated backpropagation of cards (can be disabled)&lt;br /&gt;
* Customizable decks&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Configuration Parameters]]&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Capabilities]]&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
===Adding new cards===&lt;br /&gt;
# Add new &amp;quot;Flash Card Set&amp;quot; into the course&lt;br /&gt;
# Enter required field &amp;quot;Name&amp;quot; and click &amp;quot;Save and display&amp;quot; button&lt;br /&gt;
# Click &amp;quot;Edit the cards&amp;quot; tabs - you will be brought to screen like below&lt;br /&gt;
[[File:flashcard1.jpg]]&lt;br /&gt;
# Click &amp;quot;Add three new questions&amp;quot; button&lt;br /&gt;
# Add text for questions and answers&lt;br /&gt;
# Click &amp;quot;Update&amp;quot; button&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
===Student Screens=== &lt;br /&gt;
&lt;br /&gt;
*[[Flashcard module: Freeplay Screen|Freeplay Screen]]&lt;br /&gt;
* Leitner Play Screens&lt;br /&gt;
** [[Flashcard module: Leitner Choose A Deck|Choose a deck to play with]]&lt;br /&gt;
** [[Flashcard module: Leitner Use A Deck|Use a deck]]&lt;br /&gt;
&lt;br /&gt;
===Teacher Screens===&lt;br /&gt;
&lt;br /&gt;
* Summary Screens&lt;br /&gt;
**[[Flashcard module: By User Summary|By User Summary]]&lt;br /&gt;
**[[Flashcard module: By Card Summary|By Card Summary]]&lt;br /&gt;
*[[Flashcard module: Edit Screen|Edit Screen]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Lesson_module#The_Flash_card_lesson|Flash card presentation]] in the [[Lesson module]] is an alternative to this module.&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=7180 Flashcard module forum]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
[[fr: Flashcard]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=File:flashcard1.jpg&amp;diff=97022</id>
		<title>File:flashcard1.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=File:flashcard1.jpg&amp;diff=97022"/>
		<updated>2012-04-17T20:56:58Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Flashcard_module&amp;diff=97021</id>
		<title>Flashcard module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Flashcard_module&amp;diff=97021"/>
		<updated>2012-04-17T20:56:46Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;flashcard module&#039;&#039;&#039; may be downloaded from https://github.com/tmuras/Moodle-Flashcard/zipball/master .&lt;br /&gt;
&lt;br /&gt;
The flashcard module allows editing and playing flashcards. Flashcards are a &amp;quot;memory training&amp;quot; device that uses the concept of repetition. Checking a flashcard deck will present the student the couples of relationships to be memorized. More often the associations are reviewed, deeper the memorization will be engraved into our memorial circuits.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* Getting cards from a &amp;quot;matching question&amp;quot;&lt;br /&gt;
* Editing cards&lt;br /&gt;
* Multimedia cards: text, image, sound and image + sound together&lt;br /&gt;
* Automated backpropagation of cards (can be disabled)&lt;br /&gt;
* Customizable decks&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Configuration Parameters]]&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Capabilities]]&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
===Adding new cards===&lt;br /&gt;
# Add new &amp;quot;Flash Card Set&amp;quot; into the course&lt;br /&gt;
# Enter required field &amp;quot;Name&amp;quot; and click &amp;quot;Save and display&amp;quot; button&lt;br /&gt;
# Click &amp;quot;Edit the cards&amp;quot; tabs - you will be brought to screen like below&lt;br /&gt;
[[File:flashcard1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
===Student Screens=== &lt;br /&gt;
&lt;br /&gt;
*[[Flashcard module: Freeplay Screen|Freeplay Screen]]&lt;br /&gt;
* Leitner Play Screens&lt;br /&gt;
** [[Flashcard module: Leitner Choose A Deck|Choose a deck to play with]]&lt;br /&gt;
** [[Flashcard module: Leitner Use A Deck|Use a deck]]&lt;br /&gt;
&lt;br /&gt;
===Teacher Screens===&lt;br /&gt;
&lt;br /&gt;
* Summary Screens&lt;br /&gt;
**[[Flashcard module: By User Summary|By User Summary]]&lt;br /&gt;
**[[Flashcard module: By Card Summary|By Card Summary]]&lt;br /&gt;
*[[Flashcard module: Edit Screen|Edit Screen]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Lesson_module#The_Flash_card_lesson|Flash card presentation]] in the [[Lesson module]] is an alternative to this module.&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=7180 Flashcard module forum]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
[[fr: Flashcard]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Upgrading&amp;diff=96757</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Upgrading&amp;diff=96757"/>
		<updated>2012-04-02T09:11:44Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: /* Using CVS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}	&lt;br /&gt;
&#039;&#039;&#039;Before you do anything else, read [[Upgrading to Moodle 2.2]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Moodle is designed to upgrade itself from one version to the next. The procedure is&lt;br /&gt;
# [[Site backup|Back up everything]].&lt;br /&gt;
# Replace the old version of the code with the new one.&lt;br /&gt;
# Visit the [[Site_administration_block#Notifications|administrator notifications]] link, which triggers Moodle to self-update.&lt;br /&gt;
These steps are explained in more detail below.&lt;br /&gt;
&lt;br /&gt;
Sometimes there are specific considerations when upgrading to a particular version.  See the [[dev:Releases|Releases page]] for more information on this.  You also have to be more careful if you have installed additional plug-ins or customised the code.&lt;br /&gt;
&lt;br /&gt;
See this tutorial if you are [http://ic.eflclasses.org/tutorials/howtoupgrademoodlewithcpanel.swf upgrading Moodle on cpanel]. It is a bit rough around the edges and is a little dated, but you should get the idea.&lt;br /&gt;
&lt;br /&gt;
There is also a separate page about [[Ubuntu_Debian_Upgrades|upgrading Moodle if you installed it using the Ubuntu/Kubuntu/Debian package manager]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
When upgrading a Moodle installation you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
==Before you upgrade your site for real==&lt;br /&gt;
&lt;br /&gt;
You are strongly advised to make a copy of your entire Moodle site onto another computer (see [[Moodle migration]]) and run the upgrade there to verify it will work. If you decide not to do this, make sure you have good backups. If the upgrade fails you will need the backups to go back.&lt;br /&gt;
&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
Spend some time re-reading the [[Installing Moodle | installation documentation]] and documentation for the new version. Check the system requirements for the target version you want to upgrade-to in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Put your Site into Maintenance Mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | Maintenance Mode]] to stop any non-admin users from logging in.&lt;br /&gt;
&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, the SQL or Postgres database)&lt;br /&gt;
&lt;br /&gt;
Experienced site administrators know that it is a best practice (a very good idea) to make a backup of any production system before a major upgrade. In fact, it is a good idea to automate your server to backup your Moodle installation daily.  Most upgrades on sites that have used the standard Moodle packages (no contributed code and no little tweaks to the php files), will not have any major issues with the upgrade process.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; One more time, &amp;quot;do not risk what you can not afford to lose&amp;quot;: do regular backups, make sure it is really backed up and know how to restore a backup!&lt;br /&gt;
&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
Upgrading can be a simple process or a more complicated process.  Sites that have not used contributed code and are migrating from say Moodle 2.x.1 to 2.x.3 &#039;&#039;&#039;should&#039;&#039;&#039; not have a problem.  However, we still recommend that with any production server that you have made a successful backup of the MySQL database, the moodledata directory and the moodle program folders and files.  &lt;br /&gt;
&lt;br /&gt;
*Do not overwrite an old installation unless you know what you are doing ... sometimes old files can cause problems in new installations. Review the backup section above.&lt;br /&gt;
&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
Having read the cautions about backups, download a copy of the standard install package. Here is a set of simple instructions for an average site.&lt;br /&gt;
*It is probably a good idea to use the [[Site administration block]]&amp;gt;Server&amp;gt;Maintenance mode to prevent user activity as the site upgrades. &lt;br /&gt;
*Having moved your old Moodle software program files to another location, unzip or unpack the upgrade file so that all new the Moodle software program files are in the location the old files used to be in on the server.  Moodle will adjust SQL and [[Moodledata directory|moodledata]] if it needs to in the upgrade.&lt;br /&gt;
*Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. If you&#039;ve defined individual blocks for new courses you have to delete &#039;admin&#039; block definition and replace by &#039;settings&#039; for the new block.&lt;br /&gt;
*If you had added any custom plugins or themes into your Moodle you can add them to the new code. It is important to check that you get the correct version for your new version of Moodle. You should check in the optional plugins database. Be particularly careful that you do not overwrite any code in the new version of Moodle. If you are upgrading to Moodle 2.0 or newer, note that all optional plugins and themes required a significant rewrite and most do not have 2.0 versions (yet). &lt;br /&gt;
*Use the notification link in the site administration to start the upgrade process. You will see a series of lines or screens indicating progress.  &lt;br /&gt;
*After a successful upgrade, turn off the maintenance mode, so your users can get into the site.&lt;br /&gt;
&lt;br /&gt;
=== Using a downloaded archive ===&lt;br /&gt;
In some installs, the site administrator may overwrite the Moodle code with a backup copy.  Or create a new clean install copy of Moodle, then restore an archive (via a compressed file or parts of a saved set of Moodle code files and folders). &lt;br /&gt;
&lt;br /&gt;
*Do not overwrite an old installation unless you know what you are doing ... sometimes old files can cause problems in new or &amp;quot;cleaned&amp;quot; installations. The best way is to rename the current Moodle code directory (for example rename &amp;quot;moodle&amp;quot; to &amp;quot;moodleold&amp;quot;), then unpack the new Moodle archive into the old location (for example, a new directory called &amp;quot;moodle&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-1.1.tgz&lt;br /&gt;
&lt;br /&gt;
Next, copy across your config.php, any other plugins such as custom themes, and your .htaccess file if you created one (&#039;&#039;&#039;check that optional/custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. Ideally the files should not be writable by your server.&lt;br /&gt;
&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if necessary.&lt;br /&gt;
&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
&lt;br /&gt;
You can use [[Git]] for updating or upgrading your Moodle. New sites are recommended to use this rather than CVS since all Moodle development has moved to Git.&lt;br /&gt;
&lt;br /&gt;
See [[Git for Administrators]] for further details.&lt;br /&gt;
&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
To do this just visit the [[Site administration block]] admin page (or &#039;&#039;&amp;lt;nowiki&amp;gt;http://example.com/moodle/admin&amp;lt;/nowiki&amp;gt;&#039;&#039;) and the &amp;quot;Notifications&amp;quot; link.&lt;br /&gt;
&lt;br /&gt;
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&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Use the site administration block&amp;gt;Server&amp;gt;Maintenance mode to prevent users from changing data during the upgrade.&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; If you are running a large scale Moodle site (e.g. have more tha 10,000+ courses and 40,000+ users), make sure that you do your own performance profiling testing.  Post a thread or check the [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] and check [[Tracker]] for potential issues.&lt;br /&gt;
&lt;br /&gt;
== Verify the upgrade (optional) ==&lt;br /&gt;
&lt;br /&gt;
If you wish to confirm that the database definitions in the upgraded database match the definitions of a new, clean install (which they should) you might like to look at [[Verify Database Schema]].&lt;br /&gt;
&lt;br /&gt;
==Upgrading more than one version==&lt;br /&gt;
&lt;br /&gt;
Normally you can upgrade directly from any Moodle version to any later version. So, for example you could upgrade from 2.0 to 2.1, or from 1.9 to 2.2.&lt;br /&gt;
&lt;br /&gt;
However, every so often, this general rule gets broken, because supporting really large jumps (for example Moodle 1.6 to 2.2 in one step) would be impossible. Recent break points have been:&lt;br /&gt;
* You must have upgraded to version 1.9.x before you can upgrade to a later 2.x version.&lt;br /&gt;
* You must have upgraded to version 2.2.x before you can upgrade to 2.3 or later.&lt;br /&gt;
&lt;br /&gt;
If you are upgrading from a pre-1.6 version it is recommended that you upgrade first to the latest 1.6.x, then to the latest 1.9.x and finally to the latest 2.x. See Petr&#039;s forum post [http://moodle.org/mod/forum/discuss.php?d=197602#p861964 Re: Continuing on Upgrade docs] for further information.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Environment]]&lt;br /&gt;
*[[Git]] Version control and upgrading&lt;br /&gt;
*[[How to fix just one bug without upgrading]]&lt;br /&gt;
*Moodle.org [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] &lt;br /&gt;
*[http://ic.eflclasses.org/tutorials/howtoupgrademoodlewithcpanel.swf How to upgrade Moodle with cpanel tutorial] - screencasts of older Moodle/Cpanel install but useful (also, a very large file that will take some time to load).&lt;br /&gt;
&lt;br /&gt;
Documentation on upgrading to particular versions:&lt;br /&gt;
*[[Upgrading to Moodle 2.2]]&lt;br /&gt;
*[https://docs.moodle.org/21/en/Upgrading_to_Moodle_2.1 Upgrading to Moodle 2.1]&lt;br /&gt;
*[https://docs.moodle.org/20/en/Upgrading_to_Moodle_2.0 Upgrading to Moodle 2.0]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.9 Upgrading to Moodle 1.9]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.8 Upgrading to Moodle 1.8]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.7 Upgrading to Moodle 1.7]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.6 Upgrading to Moodle 1.6]&lt;br /&gt;
&lt;br /&gt;
Using Moodle.org forum discussions:&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=104887 Best practices for QA]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=198123 Language customizations lost on upgrade]&lt;br /&gt;
*[[Beginning_Moodle_2.0_Administration|Beginning Moodle 2.0 Administration]]&lt;br /&gt;
&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Upgrading&amp;diff=96756</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Upgrading&amp;diff=96756"/>
		<updated>2012-04-02T09:07:27Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}	&lt;br /&gt;
&#039;&#039;&#039;Before you do anything else, read [[Upgrading to Moodle 2.2]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Moodle is designed to upgrade itself from one version to the next. The procedure is&lt;br /&gt;
# [[Site backup|Back up everything]].&lt;br /&gt;
# Replace the old version of the code with the new one.&lt;br /&gt;
# Visit the [[Site_administration_block#Notifications|administrator notifications]] link, which triggers Moodle to self-update.&lt;br /&gt;
These steps are explained in more detail below.&lt;br /&gt;
&lt;br /&gt;
Sometimes there are specific considerations when upgrading to a particular version.  See the [[dev:Releases|Releases page]] for more information on this.  You also have to be more careful if you have installed additional plug-ins or customised the code.&lt;br /&gt;
&lt;br /&gt;
See this tutorial if you are [http://ic.eflclasses.org/tutorials/howtoupgrademoodlewithcpanel.swf upgrading Moodle on cpanel]. It is a bit rough around the edges and is a little dated, but you should get the idea.&lt;br /&gt;
&lt;br /&gt;
There is also a separate page about [[Ubuntu_Debian_Upgrades|upgrading Moodle if you installed it using the Ubuntu/Kubuntu/Debian package manager]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
When upgrading a Moodle installation you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
==Before you upgrade your site for real==&lt;br /&gt;
&lt;br /&gt;
You are strongly advised to make a copy of your entire Moodle site onto another computer (see [[Moodle migration]]) and run the upgrade there to verify it will work. If you decide not to do this, make sure you have good backups. If the upgrade fails you will need the backups to go back.&lt;br /&gt;
&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
Spend some time re-reading the [[Installing Moodle | installation documentation]] and documentation for the new version. Check the system requirements for the target version you want to upgrade-to in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Put your Site into Maintenance Mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | Maintenance Mode]] to stop any non-admin users from logging in.&lt;br /&gt;
&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, the SQL or Postgres database)&lt;br /&gt;
&lt;br /&gt;
Experienced site administrators know that it is a best practice (a very good idea) to make a backup of any production system before a major upgrade. In fact, it is a good idea to automate your server to backup your Moodle installation daily.  Most upgrades on sites that have used the standard Moodle packages (no contributed code and no little tweaks to the php files), will not have any major issues with the upgrade process.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; One more time, &amp;quot;do not risk what you can not afford to lose&amp;quot;: do regular backups, make sure it is really backed up and know how to restore a backup!&lt;br /&gt;
&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
Upgrading can be a simple process or a more complicated process.  Sites that have not used contributed code and are migrating from say Moodle 2.x.1 to 2.x.3 &#039;&#039;&#039;should&#039;&#039;&#039; not have a problem.  However, we still recommend that with any production server that you have made a successful backup of the MySQL database, the moodledata directory and the moodle program folders and files.  &lt;br /&gt;
&lt;br /&gt;
*Do not overwrite an old installation unless you know what you are doing ... sometimes old files can cause problems in new installations. Review the backup section above.&lt;br /&gt;
&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
Having read the cautions about backups, download a copy of the standard install package. Here is a set of simple instructions for an average site.&lt;br /&gt;
*It is probably a good idea to use the [[Site administration block]]&amp;gt;Server&amp;gt;Maintenance mode to prevent user activity as the site upgrades. &lt;br /&gt;
*Having moved your old Moodle software program files to another location, unzip or unpack the upgrade file so that all new the Moodle software program files are in the location the old files used to be in on the server.  Moodle will adjust SQL and [[Moodledata directory|moodledata]] if it needs to in the upgrade.&lt;br /&gt;
*Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. If you&#039;ve defined individual blocks for new courses you have to delete &#039;admin&#039; block definition and replace by &#039;settings&#039; for the new block.&lt;br /&gt;
*If you had added any custom plugins or themes into your Moodle you can add them to the new code. It is important to check that you get the correct version for your new version of Moodle. You should check in the optional plugins database. Be particularly careful that you do not overwrite any code in the new version of Moodle. If you are upgrading to Moodle 2.0 or newer, note that all optional plugins and themes required a significant rewrite and most do not have 2.0 versions (yet). &lt;br /&gt;
*Use the notification link in the site administration to start the upgrade process. You will see a series of lines or screens indicating progress.  &lt;br /&gt;
*After a successful upgrade, turn off the maintenance mode, so your users can get into the site.&lt;br /&gt;
&lt;br /&gt;
=== Using a downloaded archive ===&lt;br /&gt;
In some installs, the site administrator may overwrite the Moodle code with a backup copy.  Or create a new clean install copy of Moodle, then restore an archive (via a compressed file or parts of a saved set of Moodle code files and folders). &lt;br /&gt;
&lt;br /&gt;
*Do not overwrite an old installation unless you know what you are doing ... sometimes old files can cause problems in new or &amp;quot;cleaned&amp;quot; installations. The best way is to rename the current Moodle code directory (for example rename &amp;quot;moodle&amp;quot; to &amp;quot;moodleold&amp;quot;), then unpack the new Moodle archive into the old location (for example, a new directory called &amp;quot;moodle&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-1.1.tgz&lt;br /&gt;
&lt;br /&gt;
Next, copy across your config.php, any other plugins such as custom themes, and your .htaccess file if you created one (&#039;&#039;&#039;check that optional/custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. Ideally the files should not be writable by your server.&lt;br /&gt;
&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if necessary.&lt;br /&gt;
&lt;br /&gt;
=== Using CVS ===&lt;br /&gt;
&lt;br /&gt;
New sites should now use Git rather than CVS (see next section). If your site already uses CVS, to update, just go into the Moodle root directory and update to the new files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ cvs update -dP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To update from an older version type in the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ cvs -Q update -dP -r MOODLE_18_STABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you use the &amp;quot;d&amp;quot; parameter to create new directories if necessary, and the &amp;quot;P&amp;quot; parameter to prune empty directories.&lt;br /&gt;
&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
&lt;br /&gt;
You can use [[Git]] for updating or upgrading your Moodle. New sites are recommended to use this rather than CVS since all Moodle development has moved to Git.&lt;br /&gt;
&lt;br /&gt;
See [[Git for Administrators]] for further details.&lt;br /&gt;
&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
To do this just visit the [[Site administration block]] admin page (or &#039;&#039;&amp;lt;nowiki&amp;gt;http://example.com/moodle/admin&amp;lt;/nowiki&amp;gt;&#039;&#039;) and the &amp;quot;Notifications&amp;quot; link.&lt;br /&gt;
&lt;br /&gt;
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&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Use the site administration block&amp;gt;Server&amp;gt;Maintenance mode to prevent users from changing data during the upgrade.&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; If you are running a large scale Moodle site (e.g. have more tha 10,000+ courses and 40,000+ users), make sure that you do your own performance profiling testing.  Post a thread or check the [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] and check [[Tracker]] for potential issues.&lt;br /&gt;
&lt;br /&gt;
== Verify the upgrade (optional) ==&lt;br /&gt;
&lt;br /&gt;
If you wish to confirm that the database definitions in the upgraded database match the definitions of a new, clean install (which they should) you might like to look at [[Verify Database Schema]].&lt;br /&gt;
&lt;br /&gt;
==Upgrading more than one version==&lt;br /&gt;
&lt;br /&gt;
Normally you can upgrade directly from any Moodle version to any later version. So, for example you could upgrade from 2.0 to 2.1, or from 1.9 to 2.2.&lt;br /&gt;
&lt;br /&gt;
However, every so often, this general rule gets broken, because supporting really large jumps (for example Moodle 1.6 to 2.2 in one step) would be impossible. Recent break points have been:&lt;br /&gt;
* You must have upgraded to version 1.9.x before you can upgrade to a later 2.x version.&lt;br /&gt;
* You must have upgraded to version 2.2.x before you can upgrade to 2.3 or later.&lt;br /&gt;
&lt;br /&gt;
If you are upgrading from a pre-1.6 version it is recommended that you upgrade first to the latest 1.6.x, then to the latest 1.9.x and finally to the latest 2.x. See Petr&#039;s forum post [http://moodle.org/mod/forum/discuss.php?d=197602#p861964 Re: Continuing on Upgrade docs] for further information.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Environment]]&lt;br /&gt;
*[[Git]] Version control and upgrading&lt;br /&gt;
*[[How to fix just one bug without upgrading]]&lt;br /&gt;
*Moodle.org [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] &lt;br /&gt;
*[http://ic.eflclasses.org/tutorials/howtoupgrademoodlewithcpanel.swf How to upgrade Moodle with cpanel tutorial] - screencasts of older Moodle/Cpanel install but useful (also, a very large file that will take some time to load).&lt;br /&gt;
&lt;br /&gt;
Documentation on upgrading to particular versions:&lt;br /&gt;
*[[Upgrading to Moodle 2.2]]&lt;br /&gt;
*[https://docs.moodle.org/21/en/Upgrading_to_Moodle_2.1 Upgrading to Moodle 2.1]&lt;br /&gt;
*[https://docs.moodle.org/20/en/Upgrading_to_Moodle_2.0 Upgrading to Moodle 2.0]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.9 Upgrading to Moodle 1.9]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.8 Upgrading to Moodle 1.8]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.7 Upgrading to Moodle 1.7]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.6 Upgrading to Moodle 1.6]&lt;br /&gt;
&lt;br /&gt;
Using Moodle.org forum discussions:&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=104887 Best practices for QA]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=198123 Language customizations lost on upgrade]&lt;br /&gt;
*[[Beginning_Moodle_2.0_Administration|Beginning Moodle 2.0 Administration]]&lt;br /&gt;
&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Upgrading&amp;diff=96755</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Upgrading&amp;diff=96755"/>
		<updated>2012-04-02T09:05:07Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}	&lt;br /&gt;
&#039;&#039;&#039;Before you do anything else, read [[Upgrading to Moodle 2.2]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Moodle is designed to upgrade itself from one version to the next. The procedure is&lt;br /&gt;
# [[Site backup|Back up everything]].&lt;br /&gt;
# Replace the old version of the code with the new one.&lt;br /&gt;
# Visit the [[Site_administration_block#Notifications|administrator notifications]] link, which triggers Moodle to self-update.&lt;br /&gt;
These steps are explained in more detail below.&lt;br /&gt;
&lt;br /&gt;
Sometimes there are specific considerations when upgrading to a particular version.  See the [[dev:Releases|Releases page]] for more information on this.  You also have to be more careful if you have installed additional plug-ins or customised the code.&lt;br /&gt;
&lt;br /&gt;
See this tutorial if you are [http://ic.eflclasses.org/tutorials/howtoupgrademoodlewithcpanel.swf upgrading Moodle on cpanel]. It is a bit rough around the edges and is a little dated, but you should get the idea.&lt;br /&gt;
&lt;br /&gt;
There is also a separate page about [[Ubuntu_Debian_Upgrades|upgrading Moodle if you installed it using the Ubuntu/Kubuntu/Debian package manager]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
When upgrading a Moodle installation you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
==Before you upgrade your site for real==&lt;br /&gt;
&lt;br /&gt;
You are strongly advised to make a copy of your entire Moodle site onto another computer (see [[Moodle migration]]) and run the upgrade there to verify it will work. If you decide not to do this, make sure you have good backups. If the upgrade fails you will need the backups to go back.&lt;br /&gt;
&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
Spend some time re-reading the [[Installing Moodle | installation documentation]] and documentation for the new version. Check the system requirements for the target version you want to upgrade-to in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Put your Site into Maintenance Mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | Maintenance Mode]] to stop any non-admin users from logging in.&lt;br /&gt;
&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, the SQL or Postgres database)&lt;br /&gt;
&lt;br /&gt;
Experienced site administrators know that it is a best practice (a very good idea) to make a backup of any production system before a major upgrade. In fact, it is a good idea to automate your server to backup your Moodle installation daily.  Most upgrades on sites that have used the standard Moodle packages (no contributed code and no little tweaks to the php files), will not have any major issues with the upgrade process.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; One more time, &amp;quot;do not risk what you can not afford to lose&amp;quot;: do regular backups, make sure it is really backed up and know how to restore a backup!&lt;br /&gt;
&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
Upgrading can be a simple process or a more complicated process.  Sites that have not used contributed code and are migrating from say Moodle 2.x.1 to 2.x.3 &#039;&#039;&#039;should&#039;&#039;&#039; not have a problem.  However, we still recommend that with any production server that you have made a successful backup of the MySQL database, the moodledata directory and the moodle program folders and files.  &lt;br /&gt;
&lt;br /&gt;
*Do not overwrite an old installation unless you know what you are doing ... sometimes old files can cause problems in new installations. Review the backup section above.&lt;br /&gt;
&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
Having read the cautions about backups, download a copy of the standard install package. Here is a set of simple instructions for an average site.&lt;br /&gt;
*It is probably a good idea to use the [[Site administration block]]&amp;gt;Server&amp;gt;Maintenance mode to prevent user activity as the site upgrades. &lt;br /&gt;
*Having moved your old Moodle software program files to another location, unzip or unpack the upgrade file so that all new the Moodle software program files are in the location the old files used to be in on the server.  Moodle will adjust SQL and [[Moodledata directory|moodledata]] if it needs to in the upgrade.&lt;br /&gt;
*Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. If you&#039;ve defined individual blocks for new courses you have to delete &#039;admin&#039; block definition and replace by &#039;settings&#039; for the new block.&lt;br /&gt;
*If you had added any custom plugins or themes into your Moodle you can add them to the new code. It is important to check that you get the correct version for your new version of Moodle. You should check in the optional plugins database. Be particularly careful that you do not overwrite any code in the new version of Moodle. If you are upgrading to Moodle 2.0 or newer, note that all optional plugins and themes required a significant rewrite and most do not have 2.0 versions (yet). &lt;br /&gt;
*Use the notification link in the site administration to start the upgrade process. You will see a series of lines or screens indicating progress.  &lt;br /&gt;
*After a successful upgrade, turn off the maintenance mode, so your users can get into the site.&lt;br /&gt;
&lt;br /&gt;
=== Using a downloaded archive ===&lt;br /&gt;
In some installs, the site administrator may overwrite the Moodle code with a backup copy.  Or create a new clean install copy of Moodle, then restore an archive (via a compressed file or parts of a saved set of Moodle code files and folders). &lt;br /&gt;
&lt;br /&gt;
*Do not overwrite an old installation unless you know what you are doing ... sometimes old files can cause problems in new or &amp;quot;cleaned&amp;quot; installations. The best way is to rename the current Moodle code directory (for example rename &amp;quot;moodle&amp;quot; to &amp;quot;moodleold&amp;quot;), then unpack the new Moodle archive into the old location (for example, a new directory called &amp;quot;moodle&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-1.1.tgz&lt;br /&gt;
&lt;br /&gt;
Next, copy across your config.php, any other plugins such as custom themes, and your .htaccess file if you created one (&#039;&#039;&#039;check that optional/custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to make moodle/config.php readable by your www server.&lt;br /&gt;
&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if necessary.&lt;br /&gt;
&lt;br /&gt;
=== Using CVS ===&lt;br /&gt;
&lt;br /&gt;
New sites should now use Git rather than CVS (see next section). If your site already uses CVS, to update, just go into the Moodle root directory and update to the new files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ cvs update -dP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To update from an older version type in the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ cvs -Q update -dP -r MOODLE_18_STABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you use the &amp;quot;d&amp;quot; parameter to create new directories if necessary, and the &amp;quot;P&amp;quot; parameter to prune empty directories.&lt;br /&gt;
&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
&lt;br /&gt;
You can use [[Git]] for updating or upgrading your Moodle. New sites are recommended to use this rather than CVS since all Moodle development has moved to Git.&lt;br /&gt;
&lt;br /&gt;
See [[Git for Administrators]] for further details.&lt;br /&gt;
&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
To do this just visit the [[Site administration block]] admin page (or &#039;&#039;&amp;lt;nowiki&amp;gt;http://example.com/moodle/admin&amp;lt;/nowiki&amp;gt;&#039;&#039;) and the &amp;quot;Notifications&amp;quot; link.&lt;br /&gt;
&lt;br /&gt;
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&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Use the site administration block&amp;gt;Server&amp;gt;Maintenance mode to prevent users from changing data during the upgrade.&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; If you are running a large scale Moodle site (e.g. have more tha 10,000+ courses and 40,000+ users), make sure that you do your own performance profiling testing.  Post a thread or check the [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] and check [[Tracker]] for potential issues.&lt;br /&gt;
&lt;br /&gt;
== Verify the upgrade (optional) ==&lt;br /&gt;
&lt;br /&gt;
If you wish to confirm that the database definitions in the upgraded database match the definitions of a new, clean install (which they should) you might like to look at [[Verify Database Schema]].&lt;br /&gt;
&lt;br /&gt;
==Upgrading more than one version==&lt;br /&gt;
&lt;br /&gt;
Normally you can upgrade directly from any Moodle version to any later version. So, for example you could upgrade from 2.0 to 2.1, or from 1.9 to 2.2.&lt;br /&gt;
&lt;br /&gt;
However, every so often, this general rule gets broken, because supporting really large jumps (for example Moodle 1.6 to 2.2 in one step) would be impossible. Recent break points have been:&lt;br /&gt;
* You must have upgraded to version 1.9.x before you can upgrade to a later 2.x version.&lt;br /&gt;
* You must have upgraded to version 2.2.x before you can upgrade to 2.3 or later.&lt;br /&gt;
&lt;br /&gt;
If you are upgrading from a pre-1.6 version it is recommended that you upgrade first to the latest 1.6.x, then to the latest 1.9.x and finally to the latest 2.x. See Petr&#039;s forum post [http://moodle.org/mod/forum/discuss.php?d=197602#p861964 Re: Continuing on Upgrade docs] for further information.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Environment]]&lt;br /&gt;
*[[Git]] Version control and upgrading&lt;br /&gt;
*[[How to fix just one bug without upgrading]]&lt;br /&gt;
*Moodle.org [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] &lt;br /&gt;
*[http://ic.eflclasses.org/tutorials/howtoupgrademoodlewithcpanel.swf How to upgrade Moodle with cpanel tutorial] - screencasts of older Moodle/Cpanel install but useful (also, a very large file that will take some time to load).&lt;br /&gt;
&lt;br /&gt;
Documentation on upgrading to particular versions:&lt;br /&gt;
*[[Upgrading to Moodle 2.2]]&lt;br /&gt;
*[https://docs.moodle.org/21/en/Upgrading_to_Moodle_2.1 Upgrading to Moodle 2.1]&lt;br /&gt;
*[https://docs.moodle.org/20/en/Upgrading_to_Moodle_2.0 Upgrading to Moodle 2.0]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.9 Upgrading to Moodle 1.9]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.8 Upgrading to Moodle 1.8]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.7 Upgrading to Moodle 1.7]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.6 Upgrading to Moodle 1.6]&lt;br /&gt;
&lt;br /&gt;
Using Moodle.org forum discussions:&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=104887 Best practices for QA]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=198123 Language customizations lost on upgrade]&lt;br /&gt;
*[[Beginning_Moodle_2.0_Administration|Beginning Moodle 2.0 Administration]]&lt;br /&gt;
&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Upgrading&amp;diff=96754</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Upgrading&amp;diff=96754"/>
		<updated>2012-04-02T09:03:45Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}	&lt;br /&gt;
&#039;&#039;&#039;Before you do anything else, read [[Upgrading to Moodle 2.2]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Moodle is designed to upgrade itself from one version to the next. The procedure is&lt;br /&gt;
# [[Site backup|Back up everything]].&lt;br /&gt;
# Replace the old version of the code with the new one.&lt;br /&gt;
# Visit the [[Site_administration_block#Notifications|administrator notifications]] link, which triggers Moodle to self-update.&lt;br /&gt;
These steps are explained in more detail below.&lt;br /&gt;
&lt;br /&gt;
Sometimes there are specific considerations when upgrading to a particular version.  See the [[dev:Releases|Releases page]] for more information on this.  You also have to be more careful if you have installed additional plug-ins or customised the code.&lt;br /&gt;
&lt;br /&gt;
See this tutorial if you are [http://ic.eflclasses.org/tutorials/howtoupgrademoodlewithcpanel.swf upgrading Moodle on cpanel]. It is a bit rough around the edges and is a little dated, but you should get the idea.&lt;br /&gt;
&lt;br /&gt;
There is also a separate page about [[Ubuntu_Debian_Upgrades|upgrading Moodle if you installed it using the Ubuntu/Kubuntu/Debian package manager]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
When upgrading a Moodle installation you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
==Before you upgrade your site for real==&lt;br /&gt;
&lt;br /&gt;
You are strongly advised to make a copy of your entire Moodle site onto another computer (see [[Moodle migration]]) and run the upgrade there to verify it will work. If you decide not to do this, make sure you have good backups. If the upgrade fails you will need the backups to go back.&lt;br /&gt;
&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
Spend some time re-reading the [[Installing Moodle | installation documentation]] and documentation for the new version. Check the system requirements for the target version you want to upgrade-to in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Put your Site into Maintenance Mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | Maintenance Mode]] to stop any non-admin users from logging in.&lt;br /&gt;
&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, the SQL or Postgres database)&lt;br /&gt;
&lt;br /&gt;
Experienced site administrators know that it is a best practice (a very good idea) to make a backup of any production system before a major upgrade. In fact, it is a good idea to automate your server to backup your Moodle installation daily.  Most upgrades on sites that have used the standard Moodle packages (no contributed code and no little tweaks to the php files), will not have any major issues with the upgrade process.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; One more time, &amp;quot;do not risk what you can not afford to lose&amp;quot;: do regular backups, make sure it is really backed up and know how to restore a backup!&lt;br /&gt;
&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
Upgrading can be a simple process or a more complicated process.  Sites that have not used contributed code and are migrating from say Moodle 2.x.1 to 2.x.3 &#039;&#039;&#039;should&#039;&#039;&#039; not have a problem.  However, we still recommend that with any production server that you have made a successful backup of the MySQL database, the moodledata directory and the moodle program folders and files.  &lt;br /&gt;
&lt;br /&gt;
*Do not overwrite an old installation unless you know what you are doing ... sometimes old files can cause problems in new installations. Review the backup section above.&lt;br /&gt;
&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
Having read the cautions about backups, download a copy of the standard install package. Here is a set of simple instructions for an average site.&lt;br /&gt;
*It is probably a good idea to use the [[Site administration block]]&amp;gt;Server&amp;gt;Maintenance mode to prevent user activity as the site upgrades. &lt;br /&gt;
*Having moved your old Moodle software program files to another location, unzip or unpack the upgrade file so that all new the Moodle software program files are in the location the old files used to be in on the server.  Moodle will adjust SQL and [[Moodledata directory|moodledata]] if it needs to in the upgrade.&lt;br /&gt;
*Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. If you&#039;ve defined individual blocks for new courses you have to delete &#039;admin&#039; block definition and replace by &#039;settings&#039; for the new block.&lt;br /&gt;
*If you had added any custom plugins or themes into your Moodle you can add them to the new code. It is important to check that you get the correct version for your new version of Moodle. You should check in the optional plugins database. Be particularly careful that you do not overwrite any code in the new version of Moodle. If you are upgrading to Moodle 2.0 or newer, note that all optional plugins and themes required a significant rewrite and most do not have 2.0 versions (yet). &lt;br /&gt;
*Use the notification link in the site administration to start the upgrade process. You will see a series of lines or screens indicating progress.  &lt;br /&gt;
*After a successful upgrade, turn off the maintenance mode, so your users can get into the site.&lt;br /&gt;
&lt;br /&gt;
=== Using a downloaded archive ===&lt;br /&gt;
In some installs, the site administrator may overwrite the Moodle code with a backup copy.  Or create a new clean install copy of Moodle, then restore an archive (via a compressed file or parts of a saved set of Moodle code files and folders). &lt;br /&gt;
&lt;br /&gt;
*Do not overwrite an old installation unless you know what you are doing ... sometimes old files can cause problems in new or &amp;quot;cleaned&amp;quot; installations. The best way is to rename the current Moodle code directory (for example rename &amp;quot;moodle&amp;quot; to &amp;quot;moodleold&amp;quot;), then unpack the new Moodle archive into the old location (for example, a new directory called &amp;quot;moodle&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-1.1.tgz&lt;br /&gt;
&lt;br /&gt;
Next, copy across your config.php, any other plugins such as custom themes, and your .htaccess file if you created one (&#039;&#039;&#039;check that optional/custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to make moodle/config.php readable by your www server.&lt;br /&gt;
&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if necessary.&lt;br /&gt;
&lt;br /&gt;
where www-data is whatever user the Apache user is on your system. This is often &#039;apache&#039; or &#039;www&#039;.&lt;br /&gt;
You can find out by doing &#039;ls -l&#039; in your /var/www/moodle folder (or wherever your moodle site is)&lt;br /&gt;
and then looking at the owner and group.&lt;br /&gt;
&lt;br /&gt;
so you may see something like&lt;br /&gt;
&lt;br /&gt;
 ls -l&lt;br /&gt;
 ...lots of lines...&lt;br /&gt;
 -rw-r--r--   1 apache system     784 Jun 28  2007 config.php &lt;br /&gt;
 ...lots more lines...&lt;br /&gt;
&lt;br /&gt;
so the owner is apache and the group is system. &lt;br /&gt;
&lt;br /&gt;
To replicate this on your new system you can do  &#039;chown apache:system config.php&#039; &lt;br /&gt;
&lt;br /&gt;
or to do a whole group do&lt;br /&gt;
&lt;br /&gt;
 chown apache:system ./*&lt;br /&gt;
&lt;br /&gt;
and recursively&lt;br /&gt;
&lt;br /&gt;
 chown -R apache:system ./*&lt;br /&gt;
&lt;br /&gt;
=== Using CVS ===&lt;br /&gt;
&lt;br /&gt;
New sites should now use Git rather than CVS (see next section). If your site already uses CVS, to update, just go into the Moodle root directory and update to the new files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ cvs update -dP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To update from an older version type in the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ cvs -Q update -dP -r MOODLE_18_STABLE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you use the &amp;quot;d&amp;quot; parameter to create new directories if necessary, and the &amp;quot;P&amp;quot; parameter to prune empty directories.&lt;br /&gt;
&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
&lt;br /&gt;
You can use [[Git]] for updating or upgrading your Moodle. New sites are recommended to use this rather than CVS since all Moodle development has moved to Git.&lt;br /&gt;
&lt;br /&gt;
See [[Git for Administrators]] for further details.&lt;br /&gt;
&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
To do this just visit the [[Site administration block]] admin page (or &#039;&#039;&amp;lt;nowiki&amp;gt;http://example.com/moodle/admin&amp;lt;/nowiki&amp;gt;&#039;&#039;) and the &amp;quot;Notifications&amp;quot; link.&lt;br /&gt;
&lt;br /&gt;
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&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Use the site administration block&amp;gt;Server&amp;gt;Maintenance mode to prevent users from changing data during the upgrade.&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; If you are running a large scale Moodle site (e.g. have more tha 10,000+ courses and 40,000+ users), make sure that you do your own performance profiling testing.  Post a thread or check the [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] and check [[Tracker]] for potential issues.&lt;br /&gt;
&lt;br /&gt;
== Verify the upgrade (optional) ==&lt;br /&gt;
&lt;br /&gt;
If you wish to confirm that the database definitions in the upgraded database match the definitions of a new, clean install (which they should) you might like to look at [[Verify Database Schema]].&lt;br /&gt;
&lt;br /&gt;
==Upgrading more than one version==&lt;br /&gt;
&lt;br /&gt;
Normally you can upgrade directly from any Moodle version to any later version. So, for example you could upgrade from 2.0 to 2.1, or from 1.9 to 2.2.&lt;br /&gt;
&lt;br /&gt;
However, every so often, this general rule gets broken, because supporting really large jumps (for example Moodle 1.6 to 2.2 in one step) would be impossible. Recent break points have been:&lt;br /&gt;
* You must have upgraded to version 1.9.x before you can upgrade to a later 2.x version.&lt;br /&gt;
* You must have upgraded to version 2.2.x before you can upgrade to 2.3 or later.&lt;br /&gt;
&lt;br /&gt;
If you are upgrading from a pre-1.6 version it is recommended that you upgrade first to the latest 1.6.x, then to the latest 1.9.x and finally to the latest 2.x. See Petr&#039;s forum post [http://moodle.org/mod/forum/discuss.php?d=197602#p861964 Re: Continuing on Upgrade docs] for further information.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Environment]]&lt;br /&gt;
*[[Git]] Version control and upgrading&lt;br /&gt;
*[[How to fix just one bug without upgrading]]&lt;br /&gt;
*Moodle.org [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum] &lt;br /&gt;
*[http://ic.eflclasses.org/tutorials/howtoupgrademoodlewithcpanel.swf How to upgrade Moodle with cpanel tutorial] - screencasts of older Moodle/Cpanel install but useful (also, a very large file that will take some time to load).&lt;br /&gt;
&lt;br /&gt;
Documentation on upgrading to particular versions:&lt;br /&gt;
*[[Upgrading to Moodle 2.2]]&lt;br /&gt;
*[https://docs.moodle.org/21/en/Upgrading_to_Moodle_2.1 Upgrading to Moodle 2.1]&lt;br /&gt;
*[https://docs.moodle.org/20/en/Upgrading_to_Moodle_2.0 Upgrading to Moodle 2.0]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.9 Upgrading to Moodle 1.9]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.8 Upgrading to Moodle 1.8]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.7 Upgrading to Moodle 1.7]&lt;br /&gt;
*[https://docs.moodle.org/19/en/Upgrading_to_Moodle_1.6 Upgrading to Moodle 1.6]&lt;br /&gt;
&lt;br /&gt;
Using Moodle.org forum discussions:&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=104887 Best practices for QA]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=198123 Language customizations lost on upgrade]&lt;br /&gt;
*[[Beginning_Moodle_2.0_Administration|Beginning Moodle 2.0 Administration]]&lt;br /&gt;
&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Flashcard_module&amp;diff=84935</id>
		<title>Flashcard module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Flashcard_module&amp;diff=84935"/>
		<updated>2011-06-12T10:18:02Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;flashcard module&#039;&#039;&#039; may be downloaded from https://github.com/tmuras/Moodle-Flashcard/zipball/master .&lt;br /&gt;
&lt;br /&gt;
The flashcard module allows editing and playing flashcards. Flashcards are a &amp;quot;memory training&amp;quot; device that uses the concept of repetition. Checking a flashcard deck will present the student the couples of relationships to be memorized. More often the associations are reviewed, deeper the memorization will be engraved into our memorial circuits.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* Getting cards from a &amp;quot;matching question&amp;quot;&lt;br /&gt;
* Editing cards&lt;br /&gt;
* Multimedia cards: text, image, sound and image + sound together&lt;br /&gt;
* Automated backpropagation of cards (can be disabled)&lt;br /&gt;
* Customizable decks&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Configuration Parameters]]&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Capabilities]]&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
===Student Screens=== &lt;br /&gt;
&lt;br /&gt;
*[[Flashcard module: Freeplay Screen|Freeplay Screen]]&lt;br /&gt;
* Leitner Play Screens&lt;br /&gt;
** [[Flashcard module: Leitner Choose A Deck|Choose a deck to play with]]&lt;br /&gt;
** [[Flashcard module: Leitner Use A Deck|Use a deck]]&lt;br /&gt;
&lt;br /&gt;
===Teacher Screens===&lt;br /&gt;
&lt;br /&gt;
* Summary Screens&lt;br /&gt;
**[[Flashcard module: By User Summary|By User Summary]]&lt;br /&gt;
**[[Flashcard module: By Card Summary|By Card Summary]]&lt;br /&gt;
*[[Flashcard module: Edit Screen|Edit Screen]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Lesson_module#The_Flash_card_lesson|Flash card presentation]] in the [[Lesson module]] is an alternative to this module.&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=7180 Flashcard module forum]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
[[fr: Flashcard]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=Flashcard_module&amp;diff=82498</id>
		<title>Flashcard module</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=Flashcard_module&amp;diff=82498"/>
		<updated>2011-04-02T09:06:09Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;flashcard module&#039;&#039;&#039; may be downloaded (for Moodle 2.0) from https://github.com/tmuras/Moodle-Flashcard/zipball/master (updated on 2 Apr 2011) .&lt;br /&gt;
&lt;br /&gt;
Actual stable version is at http://download.moodle.org/plugins19/mod/flashcard.zip .&lt;br /&gt;
&lt;br /&gt;
The flashcard module allows editing and playing flashcards. Flashcards are a &amp;quot;memory training&amp;quot; device that uses the concept of repetition. Checking a flashcard deck will present the student the couples of relationships to be memorized. More often the associations are reviewed, deeper the memorization will be engraved into our memorial circuits.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
* Getting cards from a &amp;quot;matching question&amp;quot;&lt;br /&gt;
* Editing cards&lt;br /&gt;
* Multimedia cards: text, image, sound and image + sound together&lt;br /&gt;
* Automated backpropagation of cards (can be disabled)&lt;br /&gt;
* Customizable decks&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Configuration Parameters]]&lt;br /&gt;
&lt;br /&gt;
[[Flashcard module: Capabilities]]&lt;br /&gt;
&lt;br /&gt;
==Screens==&lt;br /&gt;
&lt;br /&gt;
===Student Screens=== &lt;br /&gt;
&lt;br /&gt;
*[[Flashcard module: Freeplay Screen|Freeplay Screen]]&lt;br /&gt;
* Leitner Play Screens&lt;br /&gt;
** [[Flashcard module: Leitner Choose A Deck|Choose a deck to play with]]&lt;br /&gt;
** [[Flashcard module: Leitner Use A Deck|Use a deck]]&lt;br /&gt;
&lt;br /&gt;
===Teacher Screens===&lt;br /&gt;
&lt;br /&gt;
* Summary Screens&lt;br /&gt;
**[[Flashcard module: By User Summary|By User Summary]]&lt;br /&gt;
**[[Flashcard module: By Card Summary|By Card Summary]]&lt;br /&gt;
*[[Flashcard module: Edit Screen|Edit Screen]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Lesson_module#The_Flash_card_lesson|Flash card presentation]] in the [[Lesson module]] is an alternative to this module.&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=7180 Flashcard module forum]&lt;br /&gt;
&lt;br /&gt;
[[Category:Contributed code]]&lt;br /&gt;
[[fr: Flashcard]]&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=File:timetrack_reportscreen.jpg&amp;diff=80586</id>
		<title>File:timetrack reportscreen.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=File:timetrack_reportscreen.jpg&amp;diff=80586"/>
		<updated>2011-01-18T10:25:56Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=File:timetrack_entryscreenerror.jpg&amp;diff=80585</id>
		<title>File:timetrack entryscreenerror.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=File:timetrack_entryscreenerror.jpg&amp;diff=80585"/>
		<updated>2011-01-18T10:25:29Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/37/en/index.php?title=File:timetrackblock.jpg&amp;diff=80584</id>
		<title>File:timetrackblock.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/37/en/index.php?title=File:timetrackblock.jpg&amp;diff=80584"/>
		<updated>2011-01-18T10:24:15Z</updated>

		<summary type="html">&lt;p&gt;Tmuras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tmuras</name></author>
	</entry>
</feed>