<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/501/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tsala</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/501/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tsala"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/Special:Contributions/Tsala"/>
	<updated>2026-05-12T16:29:23Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Overview&amp;diff=155337</id>
		<title>MoodleDocs:Overview</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Overview&amp;diff=155337"/>
		<updated>2026-04-21T19:44:04Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Redirected page to en:MoodleDocs:Overview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[:en:MoodleDocs:Overview]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Awards&amp;diff=155336</id>
		<title>Awards</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Awards&amp;diff=155336"/>
		<updated>2026-04-21T19:38:17Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Redirected page to en:Awards&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[:en:Awards]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Creating_SCORM_Content&amp;diff=155335</id>
		<title>Creating SCORM Content</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Creating_SCORM_Content&amp;diff=155335"/>
		<updated>2026-04-21T19:37:25Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Replaced content with &amp;quot;{{SCORM}} The up-to-date list of tools for creating SCORM content is available in the latest Moodle Docs wiki: :en:Creating SCORM Content  de:Autorenwerkzeuge es:Creando contenido SCORM&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SCORM}}&lt;br /&gt;
The up-to-date list of tools for creating SCORM content is available in the latest Moodle Docs wiki: [[:en:Creating SCORM Content]]&lt;br /&gt;
&lt;br /&gt;
[[de:Autorenwerkzeuge]]&lt;br /&gt;
[[es:Creando contenido SCORM]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MediaWiki:Noarticletext&amp;diff=155334</id>
		<title>MediaWiki:Noarticletext</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MediaWiki:Noarticletext&amp;diff=155334"/>
		<updated>2026-04-21T19:36:43Z</updated>

		<summary type="html">&lt;p&gt;Tsala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Main page}}&lt;br /&gt;
This page does not exist. You can [[:en:{{NAMESPACE}}:{{PAGENAME}}|check whether it exists in the documentation for the latest stable version of Moodle]] or [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages.&lt;br /&gt;
&lt;br /&gt;
You are also welcome to [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} create it] yourself :-)&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[MoodleDocs:Guidelines for contributors]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MediaWiki:MoodleDocsVersionLinks&amp;diff=155316</id>
		<title>MediaWiki:MoodleDocsVersionLinks</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MediaWiki:MoodleDocsVersionLinks&amp;diff=155316"/>
		<updated>2026-04-14T08:57:40Z</updated>

		<summary type="html">&lt;p&gt;Tsala: 5.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;5.1 docs: /501/en/{{FULLPAGENAMEE}}&lt;br /&gt;
5.2 docs: /502/en/{{FULLPAGENAMEE}}&lt;br /&gt;
5.0 docs: /500/en/{{FULLPAGENAMEE}}&lt;br /&gt;
4.5 docs: /405/en/{{FULLPAGENAMEE}}&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Overview&amp;diff=155315</id>
		<title>MoodleDocs:Overview</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Overview&amp;diff=155315"/>
		<updated>2026-04-14T08:56:23Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Deutsch (German) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==English==&lt;br /&gt;
[https://docs.moodle.org/502/en/ 5.2 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/501/en/ 5.1 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/500/en/ 5.0 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/405/en/ 4.5 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For earlier versions, see [[MoodleDocs: Docs for unsupported versions|Docs for unsupported versions]].&lt;br /&gt;
&lt;br /&gt;
Also:&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://moodledev.io/ Developer documentation]&lt;br /&gt;
&lt;br /&gt;
==Català (Catalan)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/2x/ca/ 2.x CA documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deutsch (German)==&lt;br /&gt;
[https://docs.moodle.org/502/de/ 5.2 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/501/de/ 5.1 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/500/de/ 5.0 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/405/de/ 4.5 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Español (Spanish)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/es/ ES documentation]&lt;br /&gt;
&lt;br /&gt;
==Euskara (Basque)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/eu/ EU documentation]&lt;br /&gt;
&lt;br /&gt;
==Français (French)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/4x/fr/ 4.x FR documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/3x/fr/ 3.x FR documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hrvatski (Croatian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/hr/ HR documentation]&lt;br /&gt;
&lt;br /&gt;
==Íslenska (Icelandic)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/is/ IS documentation]&lt;br /&gt;
&lt;br /&gt;
==Italiano (Italian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/35/it/ 3.5 IT documentation]&lt;br /&gt;
&lt;br /&gt;
==日本語 (Japanese)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/3x/ja/ 3.x JA documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Polski (Polish)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/2x/pl/ 2.x PL documentation]&lt;br /&gt;
&lt;br /&gt;
==Português Brasileiro (Brazilan Portuguese)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/pt_br PT_BR documentation]&lt;br /&gt;
&lt;br /&gt;
==Suomi (Finnish)==&lt;br /&gt;
[https://docs.moodle.org/4x/fi/ 4.x FI documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/3x/fi/ 3.x FI documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==中文 (Chinese)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/zh/ ZH documentation]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[MoodleDocs: Docs for unsupported versions|Docs for unsupported versions]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Docs_for_unsupported_versions&amp;diff=155314</id>
		<title>MoodleDocs:Docs for unsupported versions</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Docs_for_unsupported_versions&amp;diff=155314"/>
		<updated>2026-04-14T08:54:36Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Deutsch (German) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==العربية (Arabic)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/ar/ AR documentation]&lt;br /&gt;
&lt;br /&gt;
==Čeština (Czech)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/cs/ CS documentation]&lt;br /&gt;
&lt;br /&gt;
==Deutsch (German)==&lt;br /&gt;
[https://docs.moodle.org/404/de/ 4.4 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/403/de/ 4.3 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/28/de/ 2.8 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/26/de/ 2.6 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/25/de/ 2.5 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/24/de/ 2.4 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/23/de/ 2.3 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/22/de/ 2.2 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/21/de/ 2.1 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/20/de/ 2.0 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/19/de/ 1.9 DE documentation]&lt;br /&gt;
&lt;br /&gt;
==English==&lt;br /&gt;
[https://docs.moodle.org/404/en/ 4.4 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/403/en/ 4.3 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/402/en/ 4.2 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/401/en/ 4.1 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/400/en/ 4.0 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/311/en/ 3.11 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/310/en/ 3.10 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/39/en/ 3.9 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/38/en/ 3.8 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/37/en/ 3.7 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/36/en/ 3.6 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/35/en/ 3.5 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/34/en/ 3.4 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/33/en/ 3.3 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/32/en/ 3.2 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/31/en/ 3.1 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/30/en/ 3.0 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/29/en/ 2.9 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/28/en/ 2.8 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/26/en/ 2.6 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/25/en/ 2.5 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/24/en/ 2.4 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/23/en/ 2.3 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/22/en/ 2.2 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/21/en/ 2.1 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/20/en/ 2.0 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/19/en/ 1.9 EN documentation]&lt;br /&gt;
&lt;br /&gt;
==Français (French)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/19/fr/ 1.9 FR documentation]&lt;br /&gt;
&lt;br /&gt;
==Magyar (Hungarian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/hu/ HU documentation]&lt;br /&gt;
&lt;br /&gt;
==Italiano (Italian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/it/ IT documentation]&lt;br /&gt;
&lt;br /&gt;
==한국어 (Korean)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/ko/ KO documentation]&lt;br /&gt;
&lt;br /&gt;
==Nederlands (Dutch)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/nl/ NL documentation]&lt;br /&gt;
&lt;br /&gt;
==Norsk (Norwegian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/no/ NO documentation]&lt;br /&gt;
&lt;br /&gt;
==Polski (Polish)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/pl/ PL documentation]&lt;br /&gt;
&lt;br /&gt;
==Русский (Russian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/ru/ RU documentation]&lt;br /&gt;
&lt;br /&gt;
==Slovenčina (Slovak)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/sk/ SK documentation]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Docs_for_unsupported_versions&amp;diff=155313</id>
		<title>MoodleDocs:Docs for unsupported versions</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Docs_for_unsupported_versions&amp;diff=155313"/>
		<updated>2026-04-14T08:53:18Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* English */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==العربية (Arabic)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/ar/ AR documentation]&lt;br /&gt;
&lt;br /&gt;
==Čeština (Czech)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/cs/ CS documentation]&lt;br /&gt;
&lt;br /&gt;
==Deutsch (German)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/28/de/ 2.8 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/26/de/ 2.6 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/25/de/ 2.5 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/24/de/ 2.4 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/23/de/ 2.3 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/22/de/ 2.2 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/21/de/ 2.1 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/20/de/ 2.0 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/19/de/ 1.9 DE documentation]&lt;br /&gt;
&lt;br /&gt;
==English==&lt;br /&gt;
[https://docs.moodle.org/404/en/ 4.4 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/403/en/ 4.3 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/402/en/ 4.2 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/401/en/ 4.1 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/400/en/ 4.0 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/311/en/ 3.11 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/310/en/ 3.10 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/39/en/ 3.9 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/38/en/ 3.8 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/37/en/ 3.7 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/36/en/ 3.6 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/35/en/ 3.5 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/34/en/ 3.4 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/33/en/ 3.3 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/32/en/ 3.2 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/31/en/ 3.1 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/30/en/ 3.0 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/29/en/ 2.9 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/28/en/ 2.8 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/26/en/ 2.6 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/25/en/ 2.5 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/24/en/ 2.4 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/23/en/ 2.3 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/22/en/ 2.2 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/21/en/ 2.1 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/20/en/ 2.0 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/19/en/ 1.9 EN documentation]&lt;br /&gt;
&lt;br /&gt;
==Français (French)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/19/fr/ 1.9 FR documentation]&lt;br /&gt;
&lt;br /&gt;
==Magyar (Hungarian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/hu/ HU documentation]&lt;br /&gt;
&lt;br /&gt;
==Italiano (Italian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/it/ IT documentation]&lt;br /&gt;
&lt;br /&gt;
==한국어 (Korean)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/ko/ KO documentation]&lt;br /&gt;
&lt;br /&gt;
==Nederlands (Dutch)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/nl/ NL documentation]&lt;br /&gt;
&lt;br /&gt;
==Norsk (Norwegian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/no/ NO documentation]&lt;br /&gt;
&lt;br /&gt;
==Polski (Polish)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/pl/ PL documentation]&lt;br /&gt;
&lt;br /&gt;
==Русский (Russian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/ru/ RU documentation]&lt;br /&gt;
&lt;br /&gt;
==Slovenčina (Slovak)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/archive/sk/ SK documentation]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Overview&amp;diff=155312</id>
		<title>MoodleDocs:Overview</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=MoodleDocs:Overview&amp;diff=155312"/>
		<updated>2026-04-14T08:51:53Z</updated>

		<summary type="html">&lt;p&gt;Tsala: 5.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==English==&lt;br /&gt;
[https://docs.moodle.org/502/en/ 5.2 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/501/en/ 5.1 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/500/en/ 5.0 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/405/en/ 4.5 EN documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For earlier versions, see [[MoodleDocs: Docs for unsupported versions|Docs for unsupported versions]].&lt;br /&gt;
&lt;br /&gt;
Also:&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://moodledev.io/ Developer documentation]&lt;br /&gt;
&lt;br /&gt;
==Català (Catalan)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/2x/ca/ 2.x CA documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Deutsch (German)==&lt;br /&gt;
[https://docs.moodle.org/502/de/ 5.2 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/501/de/ 5.1 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/500/de/ 5.0 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/405/de/ 4.5 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/404/de/ 4.4 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/403/de/ 4.3 DE documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Español (Spanish)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/es/ ES documentation]&lt;br /&gt;
&lt;br /&gt;
==Euskara (Basque)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/eu/ EU documentation]&lt;br /&gt;
&lt;br /&gt;
==Français (French)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/4x/fr/ 4.x FR documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/3x/fr/ 3.x FR documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hrvatski (Croatian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/hr/ HR documentation]&lt;br /&gt;
&lt;br /&gt;
==Íslenska (Icelandic)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/is/ IS documentation]&lt;br /&gt;
&lt;br /&gt;
==Italiano (Italian)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/35/it/ 3.5 IT documentation]&lt;br /&gt;
&lt;br /&gt;
==日本語 (Japanese)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/3x/ja/ 3.x JA documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Polski (Polish)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/2x/pl/ 2.x PL documentation]&lt;br /&gt;
&lt;br /&gt;
==Português Brasileiro (Brazilan Portuguese)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/pt_br PT_BR documentation]&lt;br /&gt;
&lt;br /&gt;
==Suomi (Finnish)==&lt;br /&gt;
[https://docs.moodle.org/4x/fi/ 4.x FI documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://docs.moodle.org/3x/fi/ 3.x FI documentation]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==中文 (Chinese)==&lt;br /&gt;
&lt;br /&gt;
[https://docs.moodle.org/all/zh/ ZH documentation]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[MoodleDocs: Docs for unsupported versions|Docs for unsupported versions]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=How_to_let_teachers_share_questions_between_courses&amp;diff=155310</id>
		<title>How to let teachers share questions between courses</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=How_to_let_teachers_share_questions_between_courses&amp;diff=155310"/>
		<updated>2026-04-09T09:49:58Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Changed redirect target from Sharing question banks to Question banks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect [[Question banks]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Language_packs&amp;diff=155307</id>
		<title>Language packs</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Language_packs&amp;diff=155307"/>
		<updated>2026-04-07T13:27:25Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Inside a language pack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Language}}&lt;br /&gt;
==Installing a new language pack==&lt;br /&gt;
&lt;br /&gt;
To install a new language pack:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; General &amp;gt; Language packs&#039;&#039;.&lt;br /&gt;
# Select the languages you require from the list of available language packs. Multiple language packs may be selected for install by holding down the Apple or Ctrl key whilst clicking on the language packs.&lt;br /&gt;
# Click on the &amp;quot;Install selected language pack&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
==Parent language packs and child language packs==&lt;br /&gt;
Certain language packs (a child language pack) contain only the modified language strings from their parent language, rather than a complete set. Thus, it is necessary to install the parent language pack too.&lt;br /&gt;
&lt;br /&gt;
==Manual language pack installation==&lt;br /&gt;
In general, the easiest way to install additional language packs is from within Moodle. However, it is also possible to install a language pack manually by downloading the zip file from [https://download.moodle.org/langpack/{{Version}}/ Language packs for Moodle {{Version}}] and unzipping it to a directory called &#039;&#039;lang&#039;&#039; in your &#039;&#039;moodledata&#039;&#039; directory.&lt;br /&gt;
==Language pack updates==&lt;br /&gt;
* Language packs can be updated via &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Language &amp;gt; Language packs&#039;&#039;.&lt;br /&gt;
* You can see which language packs have updates because they are listed in both &#039;Installed language packs&#039; and &#039;Available language packs&#039;.&lt;br /&gt;
* To update all installed language packs (except English and any local language packs) click the &#039;Update all installed language packs&#039; button.&lt;br /&gt;
* For sites with a large number of language packs installed, to update just a few installed language packs at a time, select the languages from the &#039;Available language packs&#039; list and click the &#039;Install selected language pack(s)&#039; button.&lt;br /&gt;
* The English language pack is updated automatically each time the site is upgraded.&lt;br /&gt;
* As most language packs are a work in progress, it is a good idea to update them regularly.&lt;br /&gt;
All installed language packs are updated as a [[Scheduled tasks|scheduled task]]. By default the task is run daily.&lt;br /&gt;
==Moodle can not connect to download.moodle.org==&lt;br /&gt;
This can happen if:&lt;br /&gt;
* You configured over-zealous security restrictions in your server. Check that your server can contact the download.moodle.org server.&lt;br /&gt;
* The download.moodle.org server is down and if you try to manually download the language pack, it fails too. Please try again later.&lt;br /&gt;
* Your internet service is faulty :(&lt;br /&gt;
[[File:ERROR language import not available.png|600px]]&lt;br /&gt;
==Inside a language pack==&lt;br /&gt;
A standard Moodle comes with an English language pack only. It is installed in &#039;&#039;moodledata/lang/en.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The English language phrases (or &#039;strings&#039;) for the main (core) Moodle features such as administration, roles etc., are stored in &#039;&#039;lang/en.&#039;&#039; Language files for plugins are stored with the files of that particular plugin. For example the language strings for the badges block are in &#039;&#039;blocks/badges/lang/en&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
If you install another language pack, you have a folder such as &#039;&#039;lang/fr&#039;&#039; with French translations of Moodle phrases.&lt;br /&gt;
&lt;br /&gt;
Language strings may contain a placeholder such as {$a} which is replaced with the chosen words from the language pack when the string is displayed. The term between the square brackets is called the &#039;string identifier&#039; or the &#039;string name&#039;. Examples:&lt;br /&gt;
 $string[&#039;addnewcourse&#039;] = &#039;Add a new course&#039;;&lt;br /&gt;
 $string[&#039;hidesection&#039;] = &#039;Hide section {$a}&#039;;&lt;br /&gt;
If a string hasn&#039;t been translated, then Moodle will use the parent language or the original English version. Thus, you might see a Moodle site where some terms have been translated into a language but others still display in English.&lt;br /&gt;
&lt;br /&gt;
==Can I personalize language strings per theme?==&lt;br /&gt;
Not directly, but you can use new local (child) language packs to achieve different courses behaviours/looks&lt;br /&gt;
===Changing the look of a course===&lt;br /&gt;
You can have a course with a different theme &#039;and&#039; a different child language pack. You will then have personalized language strings in the only course that uses that particular theme.&lt;br /&gt;
===Changing the behaviour of a course===&lt;br /&gt;
* If you do not want a student to see any reference to grades when he/she finishes a lesson, by editing the correct text string, it is possible to replace &amp;quot;Your score is 9 (out of 10)&amp;quot; with &amp;quot;Be sure to get your certificate&amp;quot;. Or change &amp;quot;Congratulations - end of lesson reached&amp;quot; to &amp;quot;We hoped this lesson helped you&amp;quot;. See [[Lesson FAQ#Can I change the End of Lesson page display|how to change the end of lesson page display]].&lt;br /&gt;
* You can have several different courses, each using a different (child) language pack and each one showing personalized language strings.&lt;br /&gt;
* See [https://moodle.org/mod/forum/discuss.php?d=220671 this forum post] for detailed instructions on how to create your new child languages.&lt;br /&gt;
==Can I install one particular language pack and supplement the missing translations using a second (related) language pack?==&lt;br /&gt;
* The short answer is No.&lt;br /&gt;
* But there is a complicated way to achieve this :(&lt;br /&gt;
** You can use the [[Language customization]] tool. If you do make your own translations, please consider [https://docs.moodle.org/dev/Contributing_a_translation contribuiting your translated strings] to the language pack maintainers, so that your language pack can grow.&lt;br /&gt;
** See the Spanish language Moodle Documentation page at [https://docs.moodle.org/all/es/Suplementar_todas_las_traducciones_faltantes_del_Espa%C3%B1ol_internacional_con_traducciones_del_Espa%C3%B1ol_de_M%C3%A9xico Suplementar todas las traducciones faltantes del Español internacional] and [https://docs.moodle.org/all/es/Personalizaci%C3%B3n_del_idioma_(transplantar_archivos) https://docs.moodle.org/all/es/Personalización del idioma (transplantar archivos)] about grafting files from one language into another.&lt;br /&gt;
==Can I make a language pack for kids?==&lt;br /&gt;
* Yes.&lt;br /&gt;
* The current (May 2023) existing language packs for kids are:&lt;br /&gt;
** de_kids (which requires de)&lt;br /&gt;
** el_kids (which requires el)&lt;br /&gt;
** en_kids (which requires the default en)&lt;br /&gt;
** es_mx_kids (which requires es_mx)&lt;br /&gt;
** he_kids (which requires he)&lt;br /&gt;
** hi_kids (which requires hi)&lt;br /&gt;
** ja_kids (which requires ja)&lt;br /&gt;
&lt;br /&gt;
* If you want to make a language pack for kids in a language different from the ones listed above, use the following method:&lt;br /&gt;
&lt;br /&gt;
** Install the (en_kids) English for kids language pack in your local Moodle server&lt;br /&gt;
** You will have to edit 10 files (which are stored in the moodledata/lang/en_kids folder). &lt;br /&gt;
** You can use [https://notepad-plus-plus.org/ Notepad++] or any other text editor, but avoid using MS Word or MS Notepad.&lt;br /&gt;
* Start with langconfig.php and choose your main language as the parentlanguage&lt;br /&gt;
* When you have finished translating all the strings, you can [https://docs.moodle.org/dev/Starting_a_new_language_pack  request a new language pack] to the person administering all Moodle language packs.&lt;br /&gt;
* Upload into AMOS the 10 files in your moodledata/lang/en_kids folder&lt;br /&gt;
* Remember to keep updating and expanding your new language pack&lt;br /&gt;
==Why do some languages have several different language packs available?==&lt;br /&gt;
See [https://docs.moodle.org/en/Translation_FAQ#Moodle_languages_with_several_available_language_packs the Translation FAQ] about this.&lt;br /&gt;
&lt;br /&gt;
==Why has my language pack suddenly forgotten some translations?==&lt;br /&gt;
See the following image showing (Insignias) a properly translated Spanish language string (green rectangle) and an unstranslated English language string (red rectangle) for &#039;Badges&#039; plus a mixture of translated and untranslated strings with a language pack that should have 100% of the core strings translated.&lt;br /&gt;
&lt;br /&gt;
[[File:Language packs mixed-up llanguages shown.png|200px]]&lt;br /&gt;
&lt;br /&gt;
If you try to update your language packs you will get a message indicating &#039;Update of &#039;xxxx_old&#039; language pack skipped. &lt;br /&gt;
&lt;br /&gt;
[[File:Something_old language pack can not be updated.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Read the following section for the cause and the fix.&lt;br /&gt;
==Why do I have a language pack named xx_old&#039; that I never installed?==&lt;br /&gt;
Sometimes you may find (see image below) that your server has, in addition to your usual language packs (e.g., en, es_mx), an odd-named language pack with an _old name ending (e.g., es_mx_old), that -obviously- can not be updated.&lt;br /&gt;
* This came from an incomplete automated language pack update because the lang pack update fails in the middle of the process.&lt;br /&gt;
**The update first renames the existing lang directory so that it has the _old suffix and then it tries to unzip the new one.&lt;br /&gt;
** If unzipping is successful, the old directory is removed. &lt;br /&gt;
** Check that the [https://docs.moodle.org/501/en/admin/environment/php_extension/zip ZIP] PHP extension is OK in the [[Environment]].&lt;br /&gt;
** If your server has languages other than English, the language packs update process will need to download all the corresponding language packs, which will take some time. If you have a low speed internet provider, you could get a script timeout error. To prevent this, you will need to edit the server/php/php.ini file and change the line that has &#039;max_execution_time = 30&#039; into &#039;max_execution_time = 600&#039;.&lt;br /&gt;
* There may also be a language pack that has mixed languages, like &#039;English (es_mx)&#039;, that obviously can not be.&lt;br /&gt;
[[File:Odd-named installed language pack.png|400px]]&lt;br /&gt;
* The reason why the language menu shows it is because moodledata/lang/es_mx/ is incomplete and its langconfig.php is missing so the translation of the string &amp;quot;thislanguage&amp;quot; (name of it) falls back to the default English.&lt;br /&gt;
&lt;br /&gt;
* You must uninstall all strange-looking language packs and re-install your usual language packs.&lt;br /&gt;
[[File:Language packs uninstall all mixed-up languages.png|400px]]&lt;br /&gt;
==See also==&lt;br /&gt;
* List of [http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes language codes] on Wikipedia&lt;br /&gt;
[[eu:Hizkuntza-paketeak]]&lt;br /&gt;
[[es:Paquetes de idioma]]&lt;br /&gt;
[[fr:Paquetages de langue]]&lt;br /&gt;
[[ja:言語インポートユーティリティ]]&lt;br /&gt;
[[de:Sprachpakete]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155306</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155306"/>
		<updated>2026-04-07T08:11:37Z</updated>

		<summary type="html">&lt;p&gt;Tsala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
==Join the Moodle translation team==&lt;br /&gt;
&lt;br /&gt;
Want to help bring Moodle to your community? Here&#039;s how you can get involved:&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
&lt;br /&gt;
First create an account on our [http://lang.moodle.org Moodle translation site].&lt;br /&gt;
&lt;br /&gt;
===How you can help===&lt;br /&gt;
&lt;br /&gt;
* Fix small errors - Found a typing error or untranslated phrase? See [[Contributing a translation]]. &lt;br /&gt;
* Translate more - To contribute regularly, please contact your language pack maintainer. See [http://lang.moodle.org/local/amos/credits.php Translation credits].&lt;br /&gt;
* Become a maintainer - If your language has no maintainer listed, you can take the lead. See [[Maintaining a language pack]].&lt;br /&gt;
* Start a new translation - Is Moodle not yet translated into your language? See [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
===Need help?===&lt;br /&gt;
&lt;br /&gt;
If you have questions, check our [[Translation  FAQ]] or join the discussion in the [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155305</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155305"/>
		<updated>2026-04-07T08:10:31Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Reverted edits by Tsala (talk) to last revision by Koen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
&lt;br /&gt;
==So you&#039;d like to help with translating Moodle?==&lt;br /&gt;
&lt;br /&gt;
Great! :-) All translation of Moodle LMS  and the plugins happens on our &#039;&#039;&#039;[http://lang.moodle.org Moodle translation site]&#039;&#039;&#039;, so you&#039;ll need to start by creating an account there.&lt;br /&gt;
&lt;br /&gt;
Perhaps you&#039;ve found some words or phrases not yet translated into your language? Or you&#039;ve spotted a mistake? If so, please see the guide to [[Contributing a translation]]. &lt;br /&gt;
&lt;br /&gt;
Note: If you&#039;d like to help translate more than just a few strings, please contact the maintainer of your language pack as listed in the [http://lang.moodle.org/local/amos/credits.php Translation credits] and ask where you can help.&lt;br /&gt;
&lt;br /&gt;
Did you end up here, wanting to translate the [https://moodle.academy Moodle Academy courses], please start at [[Translating Moodle Academy]]&lt;br /&gt;
&lt;br /&gt;
==Wish to take on responsibility for a language pack?==&lt;br /&gt;
&lt;br /&gt;
Please see [[Maintaining a language pack]] and the [[AMOS manual]]  for further information about the AMOS translation toolkit.&lt;br /&gt;
&lt;br /&gt;
==Is Moodle not yet translated into your language?==&lt;br /&gt;
&lt;br /&gt;
Please see  [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
==Any questions?==&lt;br /&gt;
&lt;br /&gt;
Please check the [[Translation  FAQ]] and join us in the [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
[[category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155304</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155304"/>
		<updated>2026-04-07T08:09:55Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* How you can help */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
==Join the Moodle translation team==&lt;br /&gt;
&lt;br /&gt;
Want to help bring Moodle to your community? Here&#039;s how you can get involved:&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
&lt;br /&gt;
First create an account on our [http://lang.moodle.org Moodle translation site].&lt;br /&gt;
&lt;br /&gt;
===How you can help===&lt;br /&gt;
&lt;br /&gt;
Fix small errors - Found a typing error or untranslated phrase? See [[Contributing a translation]]. &lt;br /&gt;
&lt;br /&gt;
Translate more - To contribute regularly, please contact your language pack maintainer. See [http://lang.moodle.org/local/amos/credits.php Translation credits].&lt;br /&gt;
&lt;br /&gt;
Become a maintainer - If your language has no maintainer listed, you can take the lead. See [[Maintaining a language pack]].&lt;br /&gt;
&lt;br /&gt;
Start a new translation - Is Moodle not yet translated into your language? See [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
===Need help?===&lt;br /&gt;
&lt;br /&gt;
If you have questions, check our [[Translation  FAQ]] or join the discussion in the [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155303</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155303"/>
		<updated>2026-04-07T08:09:22Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Join the Moodle Translation Team */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
==Join the Moodle translation team==&lt;br /&gt;
&lt;br /&gt;
Want to help bring Moodle to your community? Here&#039;s how you can get involved:&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
&lt;br /&gt;
First create an account on our [http://lang.moodle.org Moodle translation site].&lt;br /&gt;
&lt;br /&gt;
===How you can help===&lt;br /&gt;
&lt;br /&gt;
* Fix small errors - Found a typing error or untranslated phrase? See [[Contributing a translation]]. &lt;br /&gt;
* Translate more - To contribute regularly, please contact your language pack maintainer. See [http://lang.moodle.org/local/amos/credits.php Translation credits].&lt;br /&gt;
* Become a maintainer - If your language has no maintainer listed, you can take the lead. See [[Maintaining a language pack]].&lt;br /&gt;
* Start a new translation - Is Moodle not yet translated into your language? See [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
===Need help?===&lt;br /&gt;
&lt;br /&gt;
If you have questions, check our [[Translation  FAQ]] or join the discussion in the [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155302</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=155302"/>
		<updated>2026-04-07T08:08:31Z</updated>

		<summary type="html">&lt;p&gt;Tsala: content rewrite and update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
==Join the Moodle Translation Team==&lt;br /&gt;
&lt;br /&gt;
Want to help bring Moodle to your community? Here&#039;s how you can get involved:&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
&lt;br /&gt;
First create an account on our [http://lang.moodle.org Moodle translation site].&lt;br /&gt;
&lt;br /&gt;
===How you can help===&lt;br /&gt;
&lt;br /&gt;
* Fix small errors - Found a typing error or untranslated phrase? See [[Contributing a translation]]. &lt;br /&gt;
* Translate more - To contribute regularly, please contact your language pack maintainer. See [http://lang.moodle.org/local/amos/credits.php Translation credits].&lt;br /&gt;
* Become a maintainer - If your language has no maintainer listed, you can take the lead. See [[Maintaining a language pack]].&lt;br /&gt;
* Start a new translation - Is Moodle not yet translated into your language? See [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
===Need help?===&lt;br /&gt;
&lt;br /&gt;
If you have questions, check our [[Translation  FAQ]] or join the discussion in the [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Language_pack_maintaining&amp;diff=155300</id>
		<title>Language pack maintaining</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Language_pack_maintaining&amp;diff=155300"/>
		<updated>2026-04-07T07:56:14Z</updated>

		<summary type="html">&lt;p&gt;Tsala: redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Maintaining a language pack]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Talk:Installing_plugins&amp;diff=155173</id>
		<title>Talk:Installing plugins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Talk:Installing_plugins&amp;diff=155173"/>
		<updated>2026-03-23T07:12:45Z</updated>

		<summary type="html">&lt;p&gt;Tsala: reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi,&lt;br /&gt;
&lt;br /&gt;
I&#039;d suggest to remove the &amp;quot;Contributed code&amp;quot; category from this page. This is not contributed code, but real information about how to install code/plugins, contributed or no. --[[User:Eloy Lafuente (stronk7)|Eloy Lafuente (stronk7)]] ([[User talk:Eloy Lafuente (stronk7)|talk]]) 09:45, 20 March 2026 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Thanks Eloy, that&#039;s a good suggestion. I&#039;ve removed the category. --[[User:Helen Foster|Helen Foster]] ([[User talk:Helen Foster|talk]]) 07:12, 23 March 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Installing_plugins&amp;diff=155172</id>
		<title>Installing plugins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Installing_plugins&amp;diff=155172"/>
		<updated>2026-03-23T07:11:35Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Removing category as suggested in the page comments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
==Why install additional plugins?==&lt;br /&gt;
&lt;br /&gt;
Plugins enable you to add additional features and functionality to Moodle, such as new activities, new quiz question types, new reports, integrations with other systems and many more. &lt;br /&gt;
&lt;br /&gt;
Note: Certain hosting solutions, such as [https://moodle.com/cloud/ MoodleCloud], prevent plugins being installed from within Moodle.&lt;br /&gt;
&lt;br /&gt;
==Choosing the best plugins for your site==&lt;br /&gt;
&lt;br /&gt;
Note: It is recommended that you proceed with caution and always try installing these plugins on a test server before installing them in a production server.&lt;br /&gt;
&lt;br /&gt;
* From the [https://moodle.org/plugins Moodle plugins directory] you can sort plugins by, for example, [https://moodle.org/plugins/index.php/?q=sort-by:sites plugins used by the largest number of sites], or [https://moodle.org/plugins/index.php/?q=sort-by:release recently updated plugins]. Use the &#039;Sort by&#039; to help you identify reliable plugins. (Note that the number of downloads isn&#039;t necessarily a good indicator of a plugin&#039;s quality, as this can be falsified.)&lt;br /&gt;
* When viewing plugins, scroll down to its Awards section. Does it have the [https://moodle.org/plugins/browse.php?list=award&amp;amp;id=11 Privacy friendly award]? Does it have the [https://moodle.org/plugins/browse.php?list=award&amp;amp;id=6 Mobile app award?]&lt;br /&gt;
* You can test and try more than 50 of the most popular Moodle plugins at [http://plugins.moodlebites.com plugins.moodlebites.com]&lt;br /&gt;
&lt;br /&gt;
===Plugins for school teaching===&lt;br /&gt;
For the various school environments (ages 4 - 18 ) consider the following:&lt;br /&gt;
* [https://moodle.org/plugins/mod_attendance Attendance]&lt;br /&gt;
* [https://moodle.org/plugins/mod_checklist Checklist]&lt;br /&gt;
* [https://moodle.org/plugins/atto_chemistry Chemistry editor]&lt;br /&gt;
* [https://moodle.org/plugins/mod_choicegroup Group choice]&lt;br /&gt;
* [https://moodle.org/plugins/block_xp Level up!]&lt;br /&gt;
* [https://moodle.org/plugins/mod_quizgame Quizventure]&lt;br /&gt;
* [https://moodle.org/plugins/tinymce_wordcount Word count]&lt;br /&gt;
&lt;br /&gt;
===Plugins for university teaching===&lt;br /&gt;
For universities, there is a [https://docs.moodle.org/en/Tertiary_education#Moodle_plugins_by.2Ffor_Universities list of plugins by/for Universities], and a [https://docs.moodle.org/en/Tertiary_education#Discipline-specific_plugins link to discipline-specific plugins], which might be worth considering.&lt;br /&gt;
&lt;br /&gt;
== Considerations for production sites (skip if you&#039;re just moodling) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VERY IMPORTANT&#039;&#039;&#039; Warning: Please be aware that some plugins have not been reviewed, and the quality and/or suitability for your Moodle site has not been checked. Please be careful. It may not do what you expect, it may have serious security issues or it may even not work at all. This is however improving over time with the evolving new plugins directory system.&lt;br /&gt;
&lt;br /&gt;
* If you have a large site for production purposes consider if you &#039;&#039;&#039;really&#039;&#039;&#039; need the plugin? More functionality means more things to support, more things to (potentially) go wrong and more things to worry about at upgrade time. &lt;br /&gt;
* Is the plugin supported and maintained? If something goes wrong can you get support? Will bugs be fixed?&lt;br /&gt;
* If the plugin does not work in a future version of Moodle, what will you do about it?&lt;br /&gt;
* Beware of &#039;&#039;patches&#039;&#039; ([https://moodle.org/plugins/browse.php?list=category&amp;amp;id=38 Moodle Plugins Directory Other category]) ! If a plugin modifies or replaces core files then be very careful. It can only be guaranteed to work with the exact build (version) of Moodle it was created for and is highly unlikely to survive a Moodle upgrade.&lt;br /&gt;
* Look at [https://moodle.org/mod/forum/discuss.php?d=340821#p1373707 this] and [https://moodle.org/mod/forum/discuss.php?d=346296 also this] forum threads of users worried about installing a plugin.&lt;br /&gt;
&lt;br /&gt;
==Installing a plugin==&lt;br /&gt;
{{MediaPlayer | url = https://youtu.be/p2FDsAiwGpA?feature=shared | desc = Installing plugins from admin interface}}&lt;br /&gt;
&lt;br /&gt;
To install a plugin, its source code must be put (deployed) into the appropriate location inside the Moodle installation directory and the main administration page &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Notifications&#039;&#039; must be visited. There are three ways how the plugin code can be deployed into Moodle.&lt;br /&gt;
&lt;br /&gt;
Plugin code may be deployed from within Moodle, either directly from the Moodle plugins directory or by uploading a ZIP file. The web server process has to have write access to the plugin type folder where the new plugin is to be installed in order to use either of these methods.&lt;br /&gt;
&lt;br /&gt;
Alternatively, a plugin may be deployed manually at the server.&lt;br /&gt;
&lt;br /&gt;
{{Note|Whenever you install or download a plugin from the Moodle plugins directory, it is extremely important that you have correctly chosen your [[Moodle version]]. If you mistakenly download and install the wrong version of a plugin for your Moodle server, this may lead to some serious problems, even freezing of the Moodle site.}} &lt;br /&gt;
&lt;br /&gt;
===Installing directly from the Moodle plugins directory===&lt;br /&gt;
&lt;br /&gt;
# Login as an admin and go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Install plugins&#039;&#039;. (If you can&#039;t find this location, then plugin installation is prevented on your site.)&lt;br /&gt;
# Click the button &#039;Install plugins from Moodle plugins directory&#039;.&lt;br /&gt;
# Select your current [[Moodle version]], then search for a plugin with an Install button, click the Install button, then click Continue.&lt;br /&gt;
# Confirm the installation request&lt;br /&gt;
# Check the plugin validation report&lt;br /&gt;
&lt;br /&gt;
=== Installing plugins with Composer (Packagist) ===&lt;br /&gt;
&lt;br /&gt;
If your Moodle site is Composer-managed, you can install compatible plugins directly from Packagist.&lt;br /&gt;
&lt;br /&gt;
==== Before you start ====&lt;br /&gt;
&lt;br /&gt;
* Confirm your site is Composer-managed.&lt;br /&gt;
* Confirm your project requires `moodle/composer-installer` in production dependencies.&lt;br /&gt;
* Confirm the target plugin is available on Packagist and declares correct Moodle Composer metadata.&lt;br /&gt;
&lt;br /&gt;
==== Install a plugin ====&lt;br /&gt;
&lt;br /&gt;
From your project root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
composer require abgreeve/moodle-block_stash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then complete the Moodle upgrade process if prompted.&lt;br /&gt;
&lt;br /&gt;
==== Update a plugin ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
composer update abgreeve/moodle-block_stash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Remove a plugin ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
composer remove abgreeve/moodle-block_stash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After removal, complete the Moodle uninstall or upgrade flow as needed.&lt;br /&gt;
&lt;br /&gt;
==== Good practice for Composer-managed sites ====&lt;br /&gt;
&lt;br /&gt;
* Commit changes to `composer.json` and `composer.lock` together.&lt;br /&gt;
* Test plugin changes in a non-production environment first.&lt;br /&gt;
* Use one installation method per plugin to avoid drift.&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
* This method does not apply to non-Composer Moodle sites.&lt;br /&gt;
* If a plugin is not in Packagist or is not Composer-compatible, use the standard installation methods described elsewhere on this page.&lt;br /&gt;
&lt;br /&gt;
===Installing via uploaded ZIP file===&lt;br /&gt;
&lt;br /&gt;
# Go to the [https://moodle.org/plugins Moodle plugins directory], select your current [[Moodle version]], then choose a plugin with a Download button and download the ZIP file.&lt;br /&gt;
# Login to your Moodle site as an admin and go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Install plugins&#039;&#039;.&lt;br /&gt;
# Upload the ZIP file. You should only be prompted to add extra details (in the Show more section) if your plugin is not automatically detected.&lt;br /&gt;
# If your target directory is not writeable, you will see a warning message.&lt;br /&gt;
# Check the plugin validation report&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[File:plugin1.png|thumb|Install plugins]]&lt;br /&gt;
| [[File:add-on package validation.png|thumb|Plugin package validation]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Installing manually at the server===&lt;br /&gt;
&lt;br /&gt;
If you can&#039;t deploy the plugin code via the administration web interface, you have to copy it to the server file system manually (e.g. if the web server process does not have write access to the Moodle installation tree to do this for you).&lt;br /&gt;
&lt;br /&gt;
First, establish the correct place in the Moodle code tree for the plugin type. Common locations are:&lt;br /&gt;
&lt;br /&gt;
* /path/to/moodle/theme/ - themes&lt;br /&gt;
* /path/to/moodle/mod/ - activity modules and resources&lt;br /&gt;
* /path/to/moodle/blocks/ - sidebar blocks&lt;br /&gt;
* /path/to/moodle/question/type/ - question types&lt;br /&gt;
* /path/to/moodle/question/behaviour/ - question behaviours&lt;br /&gt;
* /path/to/moodle/course/format/ - course formats&lt;br /&gt;
* /path/to/moodle/admin/report/ - admin reports&lt;br /&gt;
&lt;br /&gt;
See [[:dev:Plugin types]] for the full list of all plugin types and their locations within the Moodle tree.&lt;br /&gt;
&lt;br /&gt;
# Go to the [https://moodle.org/plugins Moodle plugins directory]; select your current [[Moodle version]], then choose a plugin with a Download button and download the ZIP file.&lt;br /&gt;
# Upload or copy it to your Moodle server.&lt;br /&gt;
# Unzip it in the right place for the plugin type (or follow the plugin instructions). &lt;br /&gt;
# In your Moodle site (as admin) go to &#039;&#039;Site administration &amp;gt; Notifications&#039;&#039; (you should, for most plugin types, get a message saying the plugin is installed).&lt;br /&gt;
&lt;br /&gt;
Note: The plugin may contain language files.  They&#039;ll be found by your Moodle automatically. These language strings can be customized using the standard &#039;&#039;Site administration &amp;gt; Language&#039;&#039; editing interface. If you get a &amp;quot;Database error&amp;quot; when you try to edit your language files, there is a strong chance that the language files included within the downloaded ZIP file of this plugin have a coding problem. If you delete the &#039;&#039;plugin_name/lang/other_language_different_to_English/&#039;&#039; folder with the new language strings and the database error disappears, this is indeed the case. Please notify the plugin maintainer, so that it can be fixed in future releases.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Errors===&lt;br /&gt;
&lt;br /&gt;
If you obtain an error, please [[Debugging|turn debugging on]] to obtain additional information about the cause of the error.&lt;br /&gt;
&lt;br /&gt;
;Database error while doing a language customization : May not be related to the [[Language customisation#Database error|Language customization]], but rather a problem with a recently installed plugin.&lt;br /&gt;
&lt;br /&gt;
;tool_installaddon/err_curl_exec - cURL error 60 : This suggests problems with the validation of the SSL certificate of the remote (moodle.org) site. This is also a known problem in Moodle Windows 7 servers running the Moodle package for Windows. See [[SSL certificate for moodle.org]] for more info and possible solutions.&lt;br /&gt;
&lt;br /&gt;
===A file permissions error has occurred===&lt;br /&gt;
&lt;br /&gt;
On certain 3.0.x versions, when installing plugins via the administration interface, the Moodle uses the configuration settings &amp;lt;tt&amp;gt;$CFG-&amp;gt;directorypermissions&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$CFG-&amp;gt;filepermissions&amp;lt;/tt&amp;gt;. If these are not defined explicitly in your config.php, the default value is set automatically to 777 (rwxrwxrwx) for directories and 666 (rw-rw-rw-) for files (see lib/setup.php).&lt;br /&gt;
&lt;br /&gt;
If this default behaviour does not fit your needs and hosting environment, you may wish to specify more strict setting such as&lt;br /&gt;
&lt;br /&gt;
 $CFG-&amp;gt;directorypermissions = 02750;&lt;br /&gt;
&lt;br /&gt;
A common error after installing plugins is that when you create an instance of the module and then save and display it, it reports the error, &amp;quot;A file permissions error has occurred. Please check the permissions on the script and the directory it is in and try again.&amp;quot; If you get this, the file permissions of the package are most likely set to 711 preventing them from running correctly. With your preferred FTP client or via your web hosts control panel, set the file permissions of all the files and directories in the installed module, e.g. /moodle/mod/[myplugin]/ to 755 and then see if you can successfully view the module instance.&lt;br /&gt;
&lt;br /&gt;
===Default exception handler: Error writing to database Debug: Duplicate entry &#039;en_us-...===&lt;br /&gt;
* These errors are usually caused by a third party plugin. &lt;br /&gt;
* To find the involved plugin, go to [http://lang.moodle.org http://lang.moodle.org] and use the AMOS tool to find all the strings with the given string identifier.&lt;br /&gt;
* Remove the suspected plugin and check if the error has disappeared. If so, please contact the plugin maintainer and report this issue.&lt;br /&gt;
* Please see [https://moodle.org/mod/forum/discuss.php?d=219504 this forum thread] for known causes and fixes.&lt;br /&gt;
&lt;br /&gt;
===When installing manually===&lt;br /&gt;
&lt;br /&gt;
* Check the file permissions. The web server needs to be able to read the plugin files. If the rest of Moodle works then try to make the plugin permissions and ownership match. &lt;br /&gt;
* Did you &#039;&#039;&#039;definitely&#039;&#039;&#039; unzip or install the plugin in the correct place?&lt;br /&gt;
* Because Moodle scans plugin folders for new plugins you cannot have any other files or folders there. Make sure you deleted the zip file and don&#039;t try to rename (for example) an old version of the plugin to some other name - it will break.&lt;br /&gt;
* Make sure the directory name for the plugin is correct. All the names &#039;&#039;&#039;have&#039;&#039;&#039; to match. If you change the name, then it won&#039;t work.&lt;br /&gt;
&lt;br /&gt;
===Obtaining help===&lt;br /&gt;
&lt;br /&gt;
Ask in a forum in [http://moodle.org/course/view.php?id=5 Moodle in English]. Make sure you describe your system (including versions of MySQL, PHP etc.), what you tried and what happened. Copy and paste error messages exactly. Provide the link to the version of the plugin you downloaded (some have very similar names).&lt;br /&gt;
&lt;br /&gt;
==Uninstalling a plugin==&lt;br /&gt;
&lt;br /&gt;
To uninstall a plugin&lt;br /&gt;
# Go to &#039;&#039;Administration&amp;gt; Site Administration &amp;gt; Plugins &amp;gt; Plugins overview&#039;&#039; and click the Uninstall link opposite the plugin you wish to remove&lt;br /&gt;
# Use a file manager to remove/delete the actual plugin directory as instructed, otherwise Moodle will reinstall it next time you access the site administration&lt;br /&gt;
&lt;br /&gt;
==Plugins overview==&lt;br /&gt;
&lt;br /&gt;
[[File:plugins overview.png|thumb|center|400px|Plugins overview highlighting available check button]]&lt;br /&gt;
&lt;br /&gt;
The Plugins overview page in &#039;&#039;Administration &amp;gt; Site Administration &amp;gt; Plugins &amp;gt; Plugins overview&#039;&#039; lists all installed plugins, together with the version number,release, availability (enabled or disabled) and settings link (if applicable).&lt;br /&gt;
&lt;br /&gt;
A &#039;Check for available updates&#039; button enables admins to quickly check for any updates available for plugins installed on the site (from the [http://moodle.org/plugins plugins directory]). Any updates available are highlighted, with further information and a download link in the notes column opposite the plugin.&lt;br /&gt;
&lt;br /&gt;
===Plugin updating from within Moodle===&lt;br /&gt;
&lt;br /&gt;
An administrator can enable updates deployment in  &#039;&#039;Administration &amp;gt; Site Administration &amp;gt; Server &amp;gt; Update notifications&#039;&#039;. Then when updates are available, &#039;Install this update&#039; buttons are shown on the Plugins overview page. See [[Automatic updates deployment]] for more details.&lt;br /&gt;
&lt;br /&gt;
==Preventing installing plugins from within Moodle==&lt;br /&gt;
&lt;br /&gt;
If required, installing and updating from within Moodle can be prevented by copying the following lines of code from config-dist.php and pasting them in config.php.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Use the following flag to completely disable the installation of plugins&lt;br /&gt;
// (new plugins, available updates and missing dependencies) and related&lt;br /&gt;
// features (such as cancelling the plugin installation or upgrade) via the&lt;br /&gt;
// server administration web interface.&lt;br /&gt;
$CFG-&amp;gt;disableupdateautodeploy = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=325804 list of (year 2015) favorite plugins] by Gavin Henrick&lt;br /&gt;
* [[Notifications]] for further details of update notifications&lt;br /&gt;
* [[Plugin Review Criteria]]&lt;br /&gt;
* [[Plugins FAQ]]&lt;br /&gt;
* Moodle in English [http://moodle.org/mod/forum/view.php?id=44 General plugins forum]&lt;br /&gt;
* [[Installing Moodle from Git repository#Installing a contributed extension from its Git repository|Installing a contributed extension from its Git repository]]&lt;br /&gt;
&lt;br /&gt;
For developers:&lt;br /&gt;
&lt;br /&gt;
*[[:dev:Category:Plugins|Plugins developer documentation]]&lt;br /&gt;
*[[:dev:Plugin validation]]&lt;br /&gt;
*[[:dev:On-click add-on installation]]&lt;br /&gt;
&lt;br /&gt;
[[de:Plugins installieren]]&lt;br /&gt;
[[es:Instalar complementos]]&lt;br /&gt;
[[fr:Installation de plugins]]&lt;br /&gt;
[[it:Installare plugin]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=local/amos/contrib&amp;diff=155065</id>
		<title>local/amos/contrib</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=local/amos/contrib&amp;diff=155065"/>
		<updated>2026-02-25T16:07:03Z</updated>

		<summary type="html">&lt;p&gt;Tsala: redirect edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Contributing a translation]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=local/amos/view&amp;diff=155058</id>
		<title>local/amos/view</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=local/amos/view&amp;diff=155058"/>
		<updated>2026-02-24T09:34:12Z</updated>

		<summary type="html">&lt;p&gt;Tsala: redirect update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Contributing a translation]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Multi-language_content_filter&amp;diff=154999</id>
		<title>Multi-language content filter</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Multi-language_content_filter&amp;diff=154999"/>
		<updated>2026-02-05T09:31:21Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters}}&lt;br /&gt;
==Displaying text in multiple languages==&lt;br /&gt;
The multi-language content filter enables resources to be created in multiple languages. When turned on, it looks for &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;xx&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt; tags which indicate that a text contains multiple languages. Then it selects and outputs the text in the user&#039;s language (as set in their browser or in their preferences).&lt;br /&gt;
&lt;br /&gt;
==Enabling the multi-language content filter==&lt;br /&gt;
&lt;br /&gt;
An admin can enable the multi-language content filter as follows:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Filters &amp;gt; Manage filters&#039;&#039; and in the dropdown menu for multi-language content select &#039;On&#039;.&lt;br /&gt;
# If headings are to be shown in multiple languages too, select &#039;Content and headings&#039; in the &#039;Apply to&#039; column.&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Filters &amp;gt; Common filter settings&#039;&#039; and ensure that &#039;Filter navigation with system context&#039; is turned on.&lt;br /&gt;
Turning on &#039;Apply to&#039; &#039;Content and headings&#039; has a significant without also turning on the setting at Step 3. can significantly slow down your Moodle site.&lt;br /&gt;
&lt;br /&gt;
== How to use in a course ==&lt;br /&gt;
&lt;br /&gt;
To use this feature first create your content in multiple languages (in the same resource). Then enclose each language block (aka multilang block) in the following tags:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;XX&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;YY&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in_other_language_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is essential to be in &#039;&#039;&#039;the code editing mode&#039;&#039;&#039; (press &amp;lt;nowiki&amp;gt;[&amp;lt;&amp;gt;]&amp;lt;/nowiki&amp;gt; in the HTML editor), when you enter these tags for them to work. Only spaces, tabs and enters can be used between the individual languages in the multilang block.&lt;br /&gt;
&lt;br /&gt;
It is important to ensure each multilang block is nested in the same parent element as the other related multilang blocks.&lt;br /&gt;
&lt;br /&gt;
====== Correct structure ======&lt;br /&gt;
Each multilang block is nested together inside the parent element.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;     &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;XX&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;YY&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in_other_language_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Incorrect structure ======&lt;br /&gt;
Each multilang block is nested in its own parent element.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;     &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;XX&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;YY&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in_other_language_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If your site uses a child language pack (see [[Language packs]] for the list), then the first span tag must be the parent language. Otherwise, when a user using the child language views the text, it will not be in the correct language for them (as reported in MDL-55197). For example, if your site uses en_us then the en span tag (as parent language) must be first i.e.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;en&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in English&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;de&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in_German_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use for assignment submission agreements==&lt;br /&gt;
&lt;br /&gt;
#With the filter enabled, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; Assignment &amp;gt; Assignment settings.&#039;&#039;&lt;br /&gt;
#In the submission statement, add (for example)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;en&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;This assignment is my own work, except where I have acknowledged the use of the works of other people.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span lang=&amp;quot;fr&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;Ce devoir est le fruit de mon travail personnel, sauf aux endroits où l&#039;utilisation d&#039;oeuvre d&#039;autres auteurs est clairement indiquée.&amp;lt;/span&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How it works internally==&lt;br /&gt;
&lt;br /&gt;
# Filter first looks for &#039;&#039;multilang blocks&#039;&#039; in the text&lt;br /&gt;
#For each multilang block:&lt;br /&gt;
#*If there are texts in the currently active language, print them&lt;br /&gt;
#*Else, if there exists texts in the current parent language, print them&lt;br /&gt;
#*Else, print the first language found in the text&lt;br /&gt;
#Text outside of multilang blocks will be shown always&lt;br /&gt;
&lt;br /&gt;
== Common problems==&lt;br /&gt;
&lt;br /&gt;
#The multi-lang filter is not enabled. It can be enabled in &#039;Manage filters&#039; in the Site administration&#039;.&lt;br /&gt;
#Headings aren&#039;t displaying correctly - the multi-lang filter should be set to apply to content and headings in &#039;Manage filters&#039; in the Site administration&#039;.&lt;br /&gt;
#Extra characters between language span tags - editor might add &amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; or other tags, please review the html in source view&lt;br /&gt;
#If the course setting is &amp;quot;force&amp;quot; some language, you won&#039;t be able to change the displayed language.&lt;br /&gt;
#Extra spaces in language span tag&lt;br /&gt;
&lt;br /&gt;
==The &#039;Restriction by language&#039; additional plugin==&lt;br /&gt;
[[File:Restriction by language.png|thumb|Restriction by language]]&lt;br /&gt;
Language filters are great, but sometimes they can make your resources and activities very complex.&lt;br /&gt;
&lt;br /&gt;
The [https://moodle.org/plugins/view.php?plugin=availability_language Restriction by language availability condition] is an additional plugin that makes it easy to show an English resource only to English users and an activity in French only to French speaking students.&lt;br /&gt;
&lt;br /&gt;
==The Multi-Language Content (v2) additional plugin and Multi-Language Content text editor plugins==&lt;br /&gt;
There is also an alternative multi-language content filter available called [https://moodle.org/plugins/filter_multilang2 Multi-language Content (v2)]. This filter uses very simple non-HTML tags to mark multi-language blocks (makes it easier to create multi-language content), and can be used together with the [https://moodle.org/plugins/tiny_multilang2 Multi-Language Content TinyMCE plugin] to make it even easier to create multi-language content directly on the text editor without using the HTML view mode.&lt;br /&gt;
&lt;br /&gt;
==The Multi-Lingual Content additional plugin==&lt;br /&gt;
[https://moodle.org/plugins/filter_multilangsecond Multi-lingual Content] is a more flexible version of the multilang filter. One of three possible choices can be selected by the filter admin setting: HTML syntax, Non HTML syntax or Both. If the non html syntax is chosen language block looks like: {mlang en}English{mlang}{mlang bg}Bulgarian{mlang}. In case of Html syntax, language block is a sequence of identical html tags with lang=&amp;quot;XX&amp;quot; attributes span or div or any other.&lt;br /&gt;
&lt;br /&gt;
==Any questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [https://moodle.org/mod/forum/view.php?id=43 Languages forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
==See also== &lt;br /&gt;
&lt;br /&gt;
*[[Language]]&lt;br /&gt;
*Custom menu items in [[Theme settings]]&lt;br /&gt;
*[https://moodle.org/mod/forum/discuss.php?d=460028 Is the official language filter the way to go? (What&#039;s your experience?)]&lt;br /&gt;
*[https://moodle.org/mod/forum/discuss.php?d=320980 Translation of MOOC] forum discussion and solution&lt;br /&gt;
&lt;br /&gt;
[[Category:Language]]&lt;br /&gt;
&lt;br /&gt;
[[de:Mehrsprachiger Inhalt]]&lt;br /&gt;
[[es:Filtro de contenido multi-idioma]]&lt;br /&gt;
[[fr:Contenu multilingue]]&lt;br /&gt;
[[ja:多言語シンタックス]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Multi-language_content_filter&amp;diff=154998</id>
		<title>Multi-language content filter</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Multi-language_content_filter&amp;diff=154998"/>
		<updated>2026-02-05T09:29:58Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* The Multi-Lingual Content additional plugin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters}}&lt;br /&gt;
==Displaying text in multiple languages==&lt;br /&gt;
The multi-language content filter enables resources to be created in multiple languages. When turned on, it looks for &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;xx&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt; tags which indicate that a text contains multiple languages. Then it selects and outputs the text in the user&#039;s language (as set in their browser or in their preferences).&lt;br /&gt;
&lt;br /&gt;
==Enabling the multi-language content filter==&lt;br /&gt;
&lt;br /&gt;
An admin can enable the multi-language content filter as follows:&lt;br /&gt;
&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Filters &amp;gt; Manage filters&#039;&#039; and in the dropdown menu for multi-language content select &#039;On&#039;.&lt;br /&gt;
# If headings are to be shown in multiple languages too, select &#039;Content and headings&#039; in the &#039;Apply to&#039; column.&lt;br /&gt;
# Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Filters &amp;gt; Common filter settings&#039;&#039; and ensure that &#039;Filter navigation with system context&#039; is turned on.&lt;br /&gt;
Turning on &#039;Apply to&#039; &#039;Content and headings&#039; has a significant without also turning on the setting at Step 3. can significantly slow down your Moodle site.&lt;br /&gt;
&lt;br /&gt;
== How to use in a course ==&lt;br /&gt;
&lt;br /&gt;
To use this feature first create your content in multiple languages (in the same resource). Then enclose each language block (aka multilang block) in the following tags:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;XX&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;YY&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in_other_language_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is essential to be in &#039;&#039;&#039;the code editing mode&#039;&#039;&#039; (press &amp;lt;nowiki&amp;gt;[&amp;lt;&amp;gt;]&amp;lt;/nowiki&amp;gt; in the HTML editor), when you enter these tags for them to work. Only spaces, tabs and enters can be used between the individual languages in the multilang block.&lt;br /&gt;
&lt;br /&gt;
It is important to ensure each multilang block is nested in the same parent element as the other related multilang blocks.&lt;br /&gt;
&lt;br /&gt;
====== Correct structure ======&lt;br /&gt;
Each multilang block is nested together inside the parent element.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;     &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;XX&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;YY&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in_other_language_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Incorrect structure ======&lt;br /&gt;
Each multilang block is nested in its own parent element.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;     &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;XX&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;YY&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in_other_language_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If your site uses a child language pack (see [[Language packs]] for the list), then the first span tag must be the parent language. Otherwise, when a user using the child language views the text, it will not be in the correct language for them (as reported in MDL-55197). For example, if your site uses en_us then the en span tag (as parent language) must be first i.e.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;en&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in English&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;de&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;your_content_in_German_here&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How to use for assignment submission agreements==&lt;br /&gt;
&lt;br /&gt;
#With the filter enabled, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; Assignment &amp;gt; Assignment settings.&#039;&#039;&lt;br /&gt;
#In the submission statement, add (for example)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span lang=&amp;quot;en&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;This assignment is my own work, except where I have acknowledged the use of the works of other people.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span lang=&amp;quot;fr&amp;quot; class=&amp;quot;multilang&amp;quot;&amp;gt;Ce devoir est le fruit de mon travail personnel, sauf aux endroits où l&#039;utilisation d&#039;oeuvre d&#039;autres auteurs est clairement indiquée.&amp;lt;/span&amp;gt; &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How it works internally==&lt;br /&gt;
&lt;br /&gt;
# Filter first looks for &#039;&#039;multilang blocks&#039;&#039; in the text&lt;br /&gt;
#For each multilang block:&lt;br /&gt;
#*If there are texts in the currently active language, print them&lt;br /&gt;
#*Else, if there exists texts in the current parent language, print them&lt;br /&gt;
#*Else, print the first language found in the text&lt;br /&gt;
#Text outside of multilang blocks will be shown always&lt;br /&gt;
&lt;br /&gt;
== Common problems==&lt;br /&gt;
&lt;br /&gt;
#The multi-lang filter is not enabled. It can be enabled in &#039;Manage filters&#039; in the Site administration&#039;.&lt;br /&gt;
#Headings aren&#039;t displaying correctly - the multi-lang filter should be set to apply to content and headings in &#039;Manage filters&#039; in the Site administration&#039;.&lt;br /&gt;
#Extra characters between language span tags - editor might add &amp;lt;nowiki&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;/nowiki&amp;gt; or other tags, please review the html in source view&lt;br /&gt;
#If the course setting is &amp;quot;force&amp;quot; some language, you won&#039;t be able to change the displayed language.&lt;br /&gt;
#Extra spaces in language span tag&lt;br /&gt;
&lt;br /&gt;
==The &#039;Restriction by language&#039; additional plugin==&lt;br /&gt;
[[File:Restriction by language.png|thumb|Restriction by language]]&lt;br /&gt;
Language filters are great, but sometimes they can make your resources and activities very complex.&lt;br /&gt;
&lt;br /&gt;
The [https://moodle.org/plugins/view.php?plugin=availability_language Restriction by language availability condition] is an additional plugin that makes it easy to show an English resource only to English users and an activity in French only to French speaking students.&lt;br /&gt;
&lt;br /&gt;
==The Multi-Language Content (v2) additional plugin and Multi-Language Content text editor plugins==&lt;br /&gt;
There is also an alternative multi-language content filter available called [https://moodle.org/plugins/filter_multilang2 Multi-language Content (v2)]. This filter uses very simple non-HTML tags to mark multi-language blocks (makes it easier to create multi-language content), and can be used together with the [https://moodle.org/plugins/tiny_multilang2 Multi-Language Content TinyMCE plugin] to make it even easier to create multi-language content directly on the text editor without using the HTML view mode.&lt;br /&gt;
&lt;br /&gt;
==The Multi-Lingual Content additional plugin==&lt;br /&gt;
[https://moodle.org/plugins/filter_multilangsecond Multi-lingual Content] is a more flexible version of the multilang filter. One of three possible choices can be selected by the filter admin setting: HTML syntax, Non HTML syntax or Both. If the non html syntax is chosen language block looks like: {mlang en}English{mlang}{mlang bg}Bulgarian{mlang}. In case of Html syntax, language block is a sequence of identical html tags with lang=&amp;quot;XX&amp;quot; attributes span or div or any other.&lt;br /&gt;
&lt;br /&gt;
==Any questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [https://moodle.org/mod/forum/view.php?id=43 Languages forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
==See also== &lt;br /&gt;
&lt;br /&gt;
*[[Language]]&lt;br /&gt;
*Custom menu items in [[Theme settings]]&lt;br /&gt;
*[https://moodle.org/mod/forum/discuss.php?d=320980 Translation of MOOC] forum discussion and solution&lt;br /&gt;
&lt;br /&gt;
[[Category:Language]]&lt;br /&gt;
&lt;br /&gt;
[[de:Mehrsprachiger Inhalt]]&lt;br /&gt;
[[es:Filtro de contenido multi-idioma]]&lt;br /&gt;
[[fr:Contenu multilingue]]&lt;br /&gt;
[[ja:多言語シンタックス]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Language_FAQ&amp;diff=154997</id>
		<title>Language FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Language_FAQ&amp;diff=154997"/>
		<updated>2026-02-05T09:28:09Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* How can I provide course content in more than one language? */ Is the official language filter the way to go? (What&amp;#039;s your experience?)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Language}}&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== Which is the official language for Moodle? ===&lt;br /&gt;
The [http://lang.moodle.org/mod/forum/discuss.php?d=2617 &amp;quot;official&amp;quot;] language for Moodle is actually the Australian English (&#039;&#039;hey mate!&#039;&#039;), which is 100% the same as UK English. The default language on a new installation of Moodle, unless you change it, will be this version of English, denoted by the language code &amp;quot;en&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== What do codes like &amp;quot;en&amp;quot; and &amp;quot;en_us&amp;quot;  or &amp;quot;es&amp;quot; and &amp;quot;es_mx&amp;quot; and &amp;quot;es_ve&amp;quot; mean?? ===&lt;br /&gt;
&lt;br /&gt;
These are the language codes for each language. There is a standard for these, see [https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes ISO language code list].&lt;br /&gt;
&lt;br /&gt;
The second part, &amp;quot;_us&amp;quot; or &amp;quot;_mx&amp;quot; and &amp;quot;_ve&amp;quot; for example, represent localisations of the main language for a particular country or dialect. Typically these will include variant spellings and other preferred local terminology and phrasing. So &amp;quot;es_mx&amp;quot; has spellings and idioms (and a very important [[Decimal separator]]) used in Mexican Spanish which are distinct from international Spanish. The es_ve has small differences from the international Spanish that are of significance to Moodle users in Venezuela.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;en_us&amp;quot; is the English - United States language pack; &amp;quot;en&amp;quot; is Australian English, which is practically the same as British English.&lt;br /&gt;
&lt;br /&gt;
=== I found a mistake or typo in a language pack. Or my language is only partial, much of it is still English. What do I do? ===&lt;br /&gt;
&lt;br /&gt;
Language packs have maintainers and Moodle has its own language translation toolkit, known as AMOS. Other than some core languages maintained by Moodle HQ, most languages are maintained by volunteer maintainers. &lt;br /&gt;
&lt;br /&gt;
See the [https://docs.moodle.org/dev/Translation_FAQ Translation FAQ page] for how to report issues and [https://lang.moodle.org/mod/page/view.php?id=9 the AMOS for newcomers page] for more information.&lt;br /&gt;
&lt;br /&gt;
== Default Language  ==&lt;br /&gt;
&lt;br /&gt;
=== Where can I set the default language for the site? ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Site Administration &amp;gt; Language &amp;gt; [[Language settings]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note you can only choose to set as default a Language pack that is already installed. If the language you want is not on the list, you will need to install the language pack first. See [[Language packs]].&lt;br /&gt;
&lt;br /&gt;
=== When I change to a new default language, users still have the old language. ===&lt;br /&gt;
&lt;br /&gt;
Correct. When you change to a new site default language, this does not update the language setting in the profile for already existing users. It only sets a new default for new user accounts you create from now on. &lt;br /&gt;
&lt;br /&gt;
To do updates for already existing users, you can:&lt;br /&gt;
&lt;br /&gt;
* Tell users how to change it themselves in their user profiles by setting their Preferences &amp;gt; Preferred language&lt;br /&gt;
* Use the [[Upload users]] tool to do a mass update from a csv file changing the lang field&lt;br /&gt;
* If you have access to the database, you can change this with a simple query. See [[ad-hoc contributed reports#List of users with language|here for an example]] of how to do this.&lt;br /&gt;
&lt;br /&gt;
=== When I log in, the language switches to English. Why? ===&lt;br /&gt;
&lt;br /&gt;
* For logged-in users, the language is set to the one they have set as their preferred language (Preferences &amp;gt; User account &amp;gt; Preferred language).&lt;br /&gt;
* For logged-out visitors (before they log in) the situation depends on whether the language auto-detection is enabled. They can either get the language their browser claims to be the requested one, or the site default language.&lt;br /&gt;
&lt;br /&gt;
=== I&#039;ve set a default site language, but the Moodle calendar is in English. Why? ===&lt;br /&gt;
&lt;br /&gt;
* If your Moodle calendar is not translated, then the string &#039;locale&#039; (for *nix and Mac servers) or the string &#039;localewin&#039; (for Windows servers) in the &#039;langconfig.php&#039; file is wrong (or your server is not configured to support the language). &lt;br /&gt;
* There are quite a few languages that are not supported by Windows servers and the localewin server can not be set. In that case, you have to run your Moodle on a *nix server to make the translation of your Moodle calendar work. &lt;br /&gt;
* Mac OSs have very poor locale support. &lt;br /&gt;
* See [[:dev:Translation langconfig]] for details.&lt;br /&gt;
&lt;br /&gt;
Actually, the one and only place where Moodle requires some locales to be installed on the machine is when handling date translation (according to [https://tracker.moodle.org/browse/MDL-31622 this information]).&lt;br /&gt;
&lt;br /&gt;
=== How can I disable (hide) the language dropdown menu on the site front page? ===&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;Site administration &amp;gt; Language &amp;gt; Language settings&#039;&#039; and un-tick the &#039;Display language menu&#039; checkbox.&lt;br /&gt;
&lt;br /&gt;
Because it is a customisation, Moodle will not erase the xx_local language files in Moodledata with an upgrade.   Moodle will upgrade any language folders it finds in the moodle/lang folder.&lt;br /&gt;
&lt;br /&gt;
==Warning message: Your server does not seem to fully support the following languages==&lt;br /&gt;
When you install or update a language pack, your server might display the following warning:&lt;br /&gt;
 Your server does not seem to fully support the following languages:&lt;br /&gt;
followed by a list of non-supported languages and the text:&lt;br /&gt;
 Instead, the global locale (en_AU.UTF-8) will be used to format certain strings such as dates and numbers.&lt;br /&gt;
[[File:Your_server_does_not_seem_to_fully_support.png|400px]]&lt;br /&gt;
&lt;br /&gt;
* This is caused by either:&lt;br /&gt;
** a problem with the locale (Linux and Mac) or localewin (windows) setting in langconfig.php for your language pack (you can contact your language pack maintainer listed in the [https://lang.moodle.org/local/amos/credits.php translation credits]) &lt;br /&gt;
** or the configuration of your server.&lt;br /&gt;
* If you have a Linux server (or a [[MoodleBox]]), see the documentation about [https://docs.moodle.org/dev/Table_of_locales installing additional locales].&lt;br /&gt;
* If you have a Windows or a Mac Moodle server that lacks the proper locales, we can not help you :(&lt;br /&gt;
&lt;br /&gt;
* See the [https://docs.moodle.org/dev/Translation_langconfig developer&#039;s documentation]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Language Customisation and Multi-language ==&lt;br /&gt;
&lt;br /&gt;
=== How can I change a word or phrase used in Moodle? ===&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;Administration &amp;gt; Site Administration &amp;gt; Language &amp;gt; Language customisation&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
See [[Language customisation]] for details.&lt;br /&gt;
&lt;br /&gt;
=== How can I find where a language string is located? ===&lt;br /&gt;
&lt;br /&gt;
See the section &#039;Finding the component and string identifier&#039; in [[Language customisation]].&lt;br /&gt;
&lt;br /&gt;
===Why are my changes not saved in my MoodleCloud site?===&lt;br /&gt;
Unfortunately customising language strings is not supported in MoodleCloud. (The same string cache is used for all sites and is read-only.)&lt;br /&gt;
&lt;br /&gt;
=== Why are my changes not saved if I edit a language pack with the Moodle language pack editor? ===&lt;br /&gt;
&lt;br /&gt;
This could be caused by the caching on the server. Language strings are cached into server memory for performance reasons and when you save changes, they may not be immediately picked up. First, refresh your own browser cache to refresh the pages from the site. Then if the strings are still not there, an administrator can purge the cache of the server.&lt;br /&gt;
&lt;br /&gt;
Another possibility is editing one language pack but testing with another. For more possibilities, see the discussion [https://moodle.org/mod/forum/discuss.php?d=429283 Dashboard &amp;quot;Timeline Block&amp;quot; Strings].&lt;br /&gt;
&lt;br /&gt;
===How can I provide course content in more than one language?===&lt;br /&gt;
&lt;br /&gt;
Labels, web pages, activity descriptions etc. may be provided in more than one language using the [[Multi language content|Multi language content filter]]. &lt;br /&gt;
&lt;br /&gt;
Another option is to create activities in different languages and restrict access to them using the [https://moodle.org/plugins/availability_language Restriction by language plugin].&lt;br /&gt;
&lt;br /&gt;
For further options, see the discussion [https://moodle.org/mod/forum/discuss.php?d=460028 Is the official language filter the way to go? (What&#039;s your experience?)].&lt;br /&gt;
&lt;br /&gt;
===How can I provide course headings in more than one language?===&lt;br /&gt;
&lt;br /&gt;
Set the multi language content filter to apply to content AND headings in &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Filters &amp;gt; Manage filters&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
===Are there any short cuts for editing a language?===&lt;br /&gt;
Yes, but be careful.  You can make use of the customise language process.  Basically copy the php files that contain the strings you want to change to the moodledata/lang/local folder.   For example, copy the /lang/en/moodle.php file to someplace.  Edit the file with a search and replace with whole word and case sensitive turned on, change Teacher to Instructor and Teachers to Instructors, do the same for teacher and teachers.  Now copy that saved copy of the moodle.php file to the  moodledata/lang/en_local folder.   Be careful not to change the String name. &lt;br /&gt;
&lt;br /&gt;
===Is it possible to customise language strings per theme?===&lt;br /&gt;
Not by default, as when strings are customised, they are customised for the whole site. However, it is possible to make a new language  pack based on your main language and apply that pack to the course which has the theme. See this forum post for more information: https://moodle.org/mod/forum/discuss.php?d=220671&lt;br /&gt;
&lt;br /&gt;
===Is it possible to use a translation extension in the browser to display a Moodle site in another language===&lt;br /&gt;
Yes, according to [https://moodle.org/mod/forum/discuss.php?d=414236#p1669886 this forum post]:&lt;br /&gt;
&lt;br /&gt;
* For Firefox:&lt;br /&gt;
** Install the [https://www.mozilla.org/en-US/exp/firefox/new/ Firefox brower] if not already installed on your computer.&lt;br /&gt;
** Open Firefox.&lt;br /&gt;
** Go to Firefox [https://addons.mozilla.org/en-US/firefox/ Browser Add-ons].&lt;br /&gt;
** Search the [https://addons.mozilla.org/en-US/firefox/addon/traduzir-paginas-web/ Translate Web Pages extension], by Filipe Ps, and add it to Firefox.&lt;br /&gt;
** Follow the instructions for this extension.&lt;br /&gt;
&lt;br /&gt;
* For Chrome:&lt;br /&gt;
** Install [https://www.google.com/intl/en/chrome/ Google Chrome] if not already installed on your computer.&lt;br /&gt;
** Open Chrome.&lt;br /&gt;
** From the Google Web Store, install the [https://chrome.google.com/webstore/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb?utm_source=chrome-ntp-icon Google Translate extension].&lt;br /&gt;
** Turn translation on by following [https://www.howtogeek.com/407924/how-to-turn-translation-on-or-off-in-chrome/ these steps] (from How-To Geek).&lt;br /&gt;
&lt;br /&gt;
===Is it possible to change the logo according to language selected, similar to multi-language content?===&lt;br /&gt;
Yes. See [https://moodle.org/mod/forum/discuss.php?d=345919 this forum thread]&lt;br /&gt;
&lt;br /&gt;
===Error writing to database when opening language pack===&lt;br /&gt;
If you get the message &amp;quot;Error writing to database&amp;quot; after clicking &#039;&#039;Open language pack for editing&#039;&#039; you probably don&#039;t have full Unicode support set up in MySQL or MariaDB. Check [[Environment|the Environment report]] to see if the mysql_full_unicode_support warning appears. If so [[MySQL_full_unicode_support|follow the steps to enable full Unicode support]] in your database.&lt;br /&gt;
&lt;br /&gt;
== Other Language Questions ==&lt;br /&gt;
&lt;br /&gt;
===Will installing several language packs decrease my server performance?===&lt;br /&gt;
Installing many (20+) language packs have [https://moodle.org/mod/forum/discuss.php?d=241098 almost 0 impact] on Moodle performance. A copy of the language packs installed are stored in your site&#039;s local /mooodledata directory. Also, actively used language strings are cached in memory by your server as well to help performance, so as long as your server has sufficient RAM there will be no impact from having many language packs installed.&lt;br /&gt;
&lt;br /&gt;
=== What is this Pirate version of English doing on my site? ===&lt;br /&gt;
&lt;br /&gt;
It has become something of a custom in the Moodle community over the years to observe [https://en.wikipedia.org/wiki/International_Talk_Like_a_Pirate_Day &#039;Talk Like a Pirate Day&#039;] (September 19) by temporarily changing the language of a site to allow the English - Pirate (en_ar) language pack. See the discussion [https://moodle.org/mod/forum/discuss.php?d=132888 here] for more.&lt;br /&gt;
&lt;br /&gt;
===Lang pack download failed with &#039;HTTP response code: HTTP/1.1 404 Not Found&#039; after new release ===&lt;br /&gt;
&lt;br /&gt;
After we branch for a new release, Moodle will try and download the new version of lang packs, however for a while development is on-sync and no new language string differences will be introduced between the two branches. During this period, AMOS is not branched and so Moodle will fail to download new language packs.&lt;br /&gt;
&lt;br /&gt;
This is expected and it will be resolved once AMOS is opened up for new changes in the new version. See MDL-34028 for example.&lt;br /&gt;
&lt;br /&gt;
===Why do the characters for my language (not English) show up as hollow squares ?===&lt;br /&gt;
&lt;br /&gt;
[[File:Language_pack_name_not_displayed.png|400px]]&lt;br /&gt;
&lt;br /&gt;
This problem may be caused by a missing/wrong character set or using a font that does not support the character map needed (see [https://moodle.org/mod/forum/discuss.php?d=327521 this forum thead]).&lt;br /&gt;
&lt;br /&gt;
[[File:Language pack name is displayed.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Are there statistics for language packs downloads?===&lt;br /&gt;
Yes. There are download stats for the past 60 days at [https://download.moodle.org/local/downloadmoodleorg/stats.php Moodle downloads stats]. See under Languages a long list of the different packs that have been downloaded:&lt;br /&gt;
[[File:Language packs downloads stats.png]]&lt;br /&gt;
&lt;br /&gt;
===Is it possible to streamline the translation of a Moodle course?===&lt;br /&gt;
Kind of... See [https://docs.moodle.org/dev/Translation#Translating_a_Moodle_course Translating a Moodle course] in the developer&#039;s documentation.&lt;br /&gt;
&lt;br /&gt;
===Can I disable google page translation on my Moodle site?===&lt;br /&gt;
Yes, according to [https://moodle.org/mod/forum/discuss.php?d=419424#p1690452 this post]:&lt;br /&gt;
 The general answer is to add translate=&amp;quot;no&amp;quot; to the html tag of your page, but that requires a code change.&lt;br /&gt;
 So the Moodle html-page starts with (source https://stackoverflow.com/questions/12238396/how-to-disable-google-translate-from-html-in-chrome)&lt;br /&gt;
 There are more options in the source discussion that are finer to control.&lt;br /&gt;
 In moodle/admin/settings.php?section=additionalhtml, you can add in the section&lt;br /&gt;
 &amp;lt;meta name=&amp;quot;google&amp;quot; content=&amp;quot;notranslate&amp;quot; /&amp;gt;&lt;br /&gt;
 and that should stop Google chrome to translate...&lt;br /&gt;
===Can I add another language key to my Windows PC?===&lt;br /&gt;
Yes. If you have an English keyboard in your PC, but you want to write Spanish words like &amp;quot;Hasta mañana&amp;quot; and you need to type the &#039;ñ&#039; letter, see [https://support.microsoft.com/en-us/windows/manage-the-input-and-display-language-settings-in-windows-10-12a10cb4-8626-9b77-0ccb-5013e0c7c7a2 this link].&lt;br /&gt;
&lt;br /&gt;
===Can I get Closed Captions in languages other than English for Moodle HQ videos in YouTube?===&lt;br /&gt;
&#039;&#039;&#039;Note: In September 2020, YouTube disabled community contributed subtitles.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For the Moodle HQ videos on Moodle 4.0 available in https://www.youtube.com/playlist?list=PLxcO_MFWQBDcI0BezfCOW8QRfJw6FblRn the user can choose to have automatically generated closed captions being automatically translated to a user language different from English.&lt;br /&gt;
&lt;br /&gt;
The user watching a YouTube video must choose the cog symbol, choose Autotranslate and choose the target language. Obviously the CC icon must be activated for the auto-translated closed captions to be shown in these YouTube videos.&lt;br /&gt;
[[File:1280px-CC_autotranslated.png]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
Forum discussions:&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=131927#p604462 Edited Strings Not Visible]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=316623#unread Months names in Arabic language pack]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=395788#p1595968 Multilingual moodle]&lt;br /&gt;
&lt;br /&gt;
* MDL-57867 - Email notification language strings lose line breaks when customised bug&lt;br /&gt;
&lt;br /&gt;
==Any further questions?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [http://moodle.org/mod/forum/view.php?f=26 Languages forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[fr:FAQ de langue]]&lt;br /&gt;
[[de:Sprache FAQ]]&lt;br /&gt;
[[es:Idioma FAQ]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=report/view&amp;diff=154993</id>
		<title>report/view</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=report/view&amp;diff=154993"/>
		<updated>2026-02-05T07:11:57Z</updated>

		<summary type="html">&lt;p&gt;Tsala: redirect as in MDL-87842&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Course reports]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Restrict_access_settings&amp;diff=154926</id>
		<title>Restrict access settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Restrict_access_settings&amp;diff=154926"/>
		<updated>2026-01-21T08:02:27Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Hiding the conditions */ update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Restrict access}}&lt;br /&gt;
==Enabling the use of restrict access sitewide==&lt;br /&gt;
&lt;br /&gt;
To use the restrict access feature, it must be enabled by an administrator by checking the &amp;quot;Enable restricted access&amp;quot; box in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Advanced features&#039;&#039;. A restrict access section will then appear for teachers on the Activity settings screen, with an &#039;Add restriction&#039; button. This section applies to all activities and resources, and is the second to last section in each activities settings area, above [[Activity completion]] (if it has been turned on).&lt;br /&gt;
&lt;br /&gt;
== Enabling or disabling specific restrictions==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Availability restrictions &amp;gt; Manage restrictions&#039;&#039; you can toggle to enable or disable any of the individual restriction types for use throughout the site. You can also specify the default display mode of an access restriction, i.e., whether it is hidden (&#039;eye&#039; closed) or visible (&#039;eye&#039; open).&lt;br /&gt;
&lt;br /&gt;
[[File:45restrictaccess.png|center]]&lt;br /&gt;
&lt;br /&gt;
==Restricting activity access==&lt;br /&gt;
&lt;br /&gt;
In the settings of each activity there is a Restrict Access section. To get to this, click &#039;Edit&#039; alongside the activity you want to restrict and then choose &#039;Edit Settings&#039;, or add a new activity, which will bring you to the settings page.&lt;br /&gt;
&lt;br /&gt;
In the &#039;Restrict Access&#039; section of the activity settings page, click the &#039;Add restriction&#039; button. A choice of conditions appears:&lt;br /&gt;
&lt;br /&gt;
[[File:add restriction popup.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Restriction can be based upon [[Activity completion]], date, grade, the group or grouping the students are in or even user profile fields. The &#039;Restriction set&#039; button also allows for more complex criteria requiring nested conditions.&lt;br /&gt;
&lt;br /&gt;
===Activity completion===&lt;br /&gt;
See [[Activity completion]]. Note that this button only appears if you have Activity completion enabled by the administrator in your site, and it is enabled in your course in &#039;&#039;Course administration &amp;gt; Edit settings &amp;gt; Completion tracking&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Instead of selecting a specific activity or resources, access may be restricted to &amp;quot;Previous activity with completion&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Date===&lt;br /&gt;
Access can be restricted from or until a certain date and time.&lt;br /&gt;
&lt;br /&gt;
[[File:availabilityrestrictionbydatefromuntil_m30.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Grade===&lt;br /&gt;
You can specify a condition on any grade in the course: the full course grade, the grade for any activity, or a custom grade that you create manually. You can enter either a minimum value (at least percentage), a maximum value (less than percentage), both, or neither. The activity will only appear if the student has a value for the specified grade, and if it falls within any specified number range. You can add more than one grade condition. All conditions must be met in order for the activity to appear.&lt;br /&gt;
&lt;br /&gt;
* The range numbers can be fractional (with up to five decimal places) if necessary.&lt;br /&gt;
* Be careful with the maximum value; if the maximum is 7, a student who scores exactly 7 will not see the activity. You could set it to 7.01 if you really wanted to include 7.&lt;br /&gt;
* If creating several different activities that appear according to grade ranges, use the same number for the maximum of one activity, and the minimum of the next. For example, you might create one activity with a maximum of 7 and another with a minimum of 7. The first would appear to everyone scoring between 0 and 6.99999, and the second would appear to everyone scoring 7.00000 to 10. This guarantees that everyone with a grade will see one or other.To remove a grade condition, set the assessment name to &#039;none&#039; and remove the range number values&lt;br /&gt;
* If you want to use a condition for students with blank grades then you can add a grade restriction and select the activity you want to use as a restriction.  Do not select a checkbox for either the greater than or less than criteria.  This will require the student to have a grade. This means students with blank grades do not meet that criterion.&lt;br /&gt;
&lt;br /&gt;
===Group and groupings===&lt;br /&gt;
If groups or groupings are used in the course, it is possible to restrict the activity to a certain group or grouping. If they are turned off for this course and not available, these options will not be present for use as an restriction.&lt;br /&gt;
&lt;br /&gt;
[[File:grouprestrict.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: This button only appears if you have groups &#039;&#039;&#039;enabled&#039;&#039;&#039; in your course.&lt;br /&gt;
&lt;br /&gt;
===User profile===&lt;br /&gt;
&lt;br /&gt;
Access can be restricted using one of the following standard profile user fields:&lt;br /&gt;
&lt;br /&gt;
* Address - This is the value in the &#039;address&#039; column&lt;br /&gt;
* AIM ID - This is the value in the &#039;aim&#039; column&lt;br /&gt;
* City/town - This is the value in the &#039;city&#039; column&lt;br /&gt;
* Country - This is the two letter country code, NOT the name of the country.&lt;br /&gt;
* Department - This is the value in the &#039;department&#039; column&lt;br /&gt;
* Email Address - This is the value in the &#039;email&#039; column&lt;br /&gt;
* First name - This is the value in the &#039;firstname&#039; column&lt;br /&gt;
* ICQ number - This is the value in the &#039;icq&#039; column&lt;br /&gt;
* ID number - This is the value in the &#039;idnumber&#039; column&lt;br /&gt;
* Institution - This is the value in the &#039;institution&#039; column&lt;br /&gt;
* Mobile phone - This is the value in the &#039;phone2&#039; column&lt;br /&gt;
* MSN ID - This is the value in the &#039;msn&#039; column&lt;br /&gt;
* Phone - This is the value in the &#039;phone1&#039; column&lt;br /&gt;
* Skype ID - This is the value in the &#039;skype&#039; column&lt;br /&gt;
* Surname - This is the value in the &#039;lastname&#039; column&lt;br /&gt;
* Web page - This is the value in the &#039;url&#039; column&lt;br /&gt;
* Yahoo ID - This is the value in the &#039;yahoo&#039; column&lt;br /&gt;
&lt;br /&gt;
In addition, you can choose any custom user profile fields if you have created any.&lt;br /&gt;
&lt;br /&gt;
===Restriction set===&lt;br /&gt;
This allows you to add a set of complex restrictions to apply complex logic. See [[Using restrict access]] for an example.&lt;br /&gt;
&lt;br /&gt;
==Hiding the conditions==&lt;br /&gt;
*If the eye is SHUT then students who do not meet that part of the condition will not see the activity at all.&lt;br /&gt;
*If the eye is OPEN the students who do not meet that part of the condition will see the name of the activity but it will have information about why they can&#039;t access it yet.&lt;br /&gt;
&lt;br /&gt;
The shut eye takes precedence. For example, you could have 2 conditions, one based on date (with eye shut) and one based on completing a previous activity (with eye open). That way, the activity will not appear at all until the date; then it will appear, but tell you that you need to complete the other activity; then when you complete the other activity you can access it.&lt;br /&gt;
&lt;br /&gt;
For OR and NOT AND type conditions, you only get a single eye icon instead of one for each condition&lt;br /&gt;
&lt;br /&gt;
[[File:daterestrict1.png]]&lt;br /&gt;
&lt;br /&gt;
The eye also affects to the visibility of the activity in the gradebook: &lt;br /&gt;
&lt;br /&gt;
* If the eye is SHUT the activity won&#039;t appear in the gradebook if the user currently doesn&#039;t meet that part of the condition&lt;br /&gt;
* If the eye is OPEN the activity will show up in the gradebook (and eventually also its grade) even if the user currently doesn&#039;t meet that part of the condition.&lt;br /&gt;
&lt;br /&gt;
==ALL or ANY Conditions==&lt;br /&gt;
Further restrictions may be added by clicking the &#039;Add restriction&#039; button again, and it is possible to specify that ALL the conditions or ANY of the conditions are required before the activity is made available. Thus, it is possible to use &#039;Or&#039; as well as &#039;And&#039; conditions. See [[Using Conditional activities]] for an example.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:AND.png|thumb|400px|&#039;and&#039; condition]]&lt;br /&gt;
|[[File:OR.png|thumb|400px|&#039;or&#039; condition]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Restricting access to a course section==&lt;br /&gt;
&lt;br /&gt;
You can restrict access to all the activities and resources within a course section by specifying the conditions in the settings for that particular section.&lt;br /&gt;
&lt;br /&gt;
Do this by editing the section settings from the three dots action menu &amp;gt; Edit settings.&lt;br /&gt;
[[File:45 restrictaccessesction.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[es:Configuraciones de actividades condicionales]]&lt;br /&gt;
[[de:Einstellungen zu Voraussetzungen]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=local/amos/importfile&amp;diff=154925</id>
		<title>local/amos/importfile</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=local/amos/importfile&amp;diff=154925"/>
		<updated>2026-01-20T10:27:38Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Changed redirect target from en:Translation to Translation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Translation]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=mod/bigbluebuttonbn/view&amp;diff=154875</id>
		<title>mod/bigbluebuttonbn/view</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=mod/bigbluebuttonbn/view&amp;diff=154875"/>
		<updated>2026-01-14T08:40:09Z</updated>

		<summary type="html">&lt;p&gt;Tsala: redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[BigBlueButton]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154859</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154859"/>
		<updated>2026-01-05T14:44:27Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Any questions? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
&lt;br /&gt;
==Would you like to help with translating Moodle?==&lt;br /&gt;
&lt;br /&gt;
Yes? That&#039;s great! :-) Please start by creating an account on our [http://lang.moodle.org Moodle translation site].&lt;br /&gt;
&lt;br /&gt;
Have you found some words or phrases not yet translated into your language? Or spotted a mistake? If so, see [[Contributing a translation]]. &lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to help translate more than just a few phrases, please contact the maintainer of your language pack as listed in the [http://lang.moodle.org/local/amos/credits.php Translation credits].&lt;br /&gt;
&lt;br /&gt;
==Want to take on responsibility for a language translation?==&lt;br /&gt;
&lt;br /&gt;
See [[Maintaining a language pack]].&lt;br /&gt;
&lt;br /&gt;
==Is Moodle not yet translated into your language?==&lt;br /&gt;
&lt;br /&gt;
For details of how you can help, see [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
==Any questions?==&lt;br /&gt;
&lt;br /&gt;
Check the [[Translation  FAQ]] and join us in the forum [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS for translation].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
[[category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154858</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154858"/>
		<updated>2026-01-05T14:43:36Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Is Moodle not yet translated into your language? */ simplifying&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
&lt;br /&gt;
==Would you like to help with translating Moodle?==&lt;br /&gt;
&lt;br /&gt;
Yes? That&#039;s great! :-) Please start by creating an account on our [http://lang.moodle.org Moodle translation site].&lt;br /&gt;
&lt;br /&gt;
Have you found some words or phrases not yet translated into your language? Or spotted a mistake? If so, see [[Contributing a translation]]. &lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to help translate more than just a few phrases, please contact the maintainer of your language pack as listed in the [http://lang.moodle.org/local/amos/credits.php Translation credits].&lt;br /&gt;
&lt;br /&gt;
==Want to take on responsibility for a language translation?==&lt;br /&gt;
&lt;br /&gt;
See [[Maintaining a language pack]].&lt;br /&gt;
&lt;br /&gt;
==Is Moodle not yet translated into your language?==&lt;br /&gt;
&lt;br /&gt;
For details of how you can help, see [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
==Any questions?==&lt;br /&gt;
&lt;br /&gt;
Please check the [[Translation  FAQ]] and join us in the [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
[[category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154857</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154857"/>
		<updated>2026-01-05T14:43:02Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Wish to take on responsibility for a language pack? */ simplifying&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
&lt;br /&gt;
==Would you like to help with translating Moodle?==&lt;br /&gt;
&lt;br /&gt;
Yes? That&#039;s great! :-) Please start by creating an account on our [http://lang.moodle.org Moodle translation site].&lt;br /&gt;
&lt;br /&gt;
Have you found some words or phrases not yet translated into your language? Or spotted a mistake? If so, see [[Contributing a translation]]. &lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to help translate more than just a few phrases, please contact the maintainer of your language pack as listed in the [http://lang.moodle.org/local/amos/credits.php Translation credits].&lt;br /&gt;
&lt;br /&gt;
==Want to take on responsibility for a language translation?==&lt;br /&gt;
&lt;br /&gt;
See [[Maintaining a language pack]].&lt;br /&gt;
&lt;br /&gt;
==Is Moodle not yet translated into your language?==&lt;br /&gt;
&lt;br /&gt;
Please see  [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
==Any questions?==&lt;br /&gt;
&lt;br /&gt;
Please check the [[Translation  FAQ]] and join us in the [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
[[category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154856</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154856"/>
		<updated>2026-01-05T14:41:35Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Would you like to help with translating Moodle? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
&lt;br /&gt;
==Would you like to help with translating Moodle?==&lt;br /&gt;
&lt;br /&gt;
Yes? That&#039;s great! :-) Please start by creating an account on our [http://lang.moodle.org Moodle translation site].&lt;br /&gt;
&lt;br /&gt;
Have you found some words or phrases not yet translated into your language? Or spotted a mistake? If so, see [[Contributing a translation]]. &lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to help translate more than just a few phrases, please contact the maintainer of your language pack as listed in the [http://lang.moodle.org/local/amos/credits.php Translation credits].&lt;br /&gt;
&lt;br /&gt;
==Wish to take on responsibility for a language pack?==&lt;br /&gt;
&lt;br /&gt;
Please see [[Maintaining a language pack]] and the [[AMOS manual]]  for further information about the AMOS translation toolkit.&lt;br /&gt;
&lt;br /&gt;
==Is Moodle not yet translated into your language?==&lt;br /&gt;
&lt;br /&gt;
Please see  [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
==Any questions?==&lt;br /&gt;
&lt;br /&gt;
Please check the [[Translation  FAQ]] and join us in the [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
[[category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154855</id>
		<title>Translation</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Translation&amp;diff=154855"/>
		<updated>2026-01-05T14:41:13Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* So you&amp;#039;d like to help with translating Moodle? */ simplifying&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Translation}}&lt;br /&gt;
&lt;br /&gt;
==Would you like to help with translating Moodle?==&lt;br /&gt;
&lt;br /&gt;
Yes? That&#039;s great! :-) Please start by creating an account our &#039;&#039;&#039;[http://lang.moodle.org Moodle translation site]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Have you found some words or phrases not yet translated into your language? Or spotted a mistake? If so, see [[Contributing a translation]]. &lt;br /&gt;
&lt;br /&gt;
If you&#039;d like to help translate more than just a few phrases, please contact the maintainer of your language pack as listed in the [http://lang.moodle.org/local/amos/credits.php Translation credits].&lt;br /&gt;
&lt;br /&gt;
==Wish to take on responsibility for a language pack?==&lt;br /&gt;
&lt;br /&gt;
Please see [[Maintaining a language pack]] and the [[AMOS manual]]  for further information about the AMOS translation toolkit.&lt;br /&gt;
&lt;br /&gt;
==Is Moodle not yet translated into your language?==&lt;br /&gt;
&lt;br /&gt;
Please see  [[Starting a new language pack]].&lt;br /&gt;
&lt;br /&gt;
==Any questions?==&lt;br /&gt;
&lt;br /&gt;
Please check the [[Translation  FAQ]] and join us in the [http://lang.moodle.org/mod/forum/view.php?id=5 Using AMOS forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[fr:Traduction]]&lt;br /&gt;
[[de:Übersetzung]]&lt;br /&gt;
[[es:Traducción]]&lt;br /&gt;
[[category:Language]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Course_settings&amp;diff=154853</id>
		<title>Course settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Course_settings&amp;diff=154853"/>
		<updated>2025-12-31T06:38:06Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Course end date */ update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Courses}}&lt;br /&gt;
A teacher, or other user with the [[Capabilities/moodle/course:update|update course settings capability]], can change course settings from  &#039;&#039; Course navigation &amp;gt; Settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
===Course full name===&lt;br /&gt;
&lt;br /&gt;
This is the name of the course.  It is displayed as a link on course lists on the [[Front page]] and on the  [[Dashboard]] and in reports.  It is also used in the browser title bar when the course is viewed.&lt;br /&gt;
&lt;br /&gt;
The capability [[Capabilities/moodle/course:changefullname|moodle/course:changefullname]] controls whether a user can edit the course full name.&lt;br /&gt;
&lt;br /&gt;
===Short name===&lt;br /&gt;
&lt;br /&gt;
Many institutions have a shorthand way of referring to a course, such as BP102 or COMMS.  Even if you do not already have such a name for your course, make one up here.  It will be used in several places where the long name is not appropriate, such as the Navigation block.&lt;br /&gt;
&lt;br /&gt;
The capability [[Capabilities/moodle/course:changeshortname|moodle/course:changeshortname]] controls whether a user can edit the short name field.&lt;br /&gt;
&lt;br /&gt;
By default, only course full names are displayed in the list of courses. However an administrator can enable short names to be displayed too if required by ticking the checkbox in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Appearance &amp;gt; Courses&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Course category===&lt;br /&gt;
&lt;br /&gt;
The site administrator may have created course categories to help teachers and students find their courses easily.  Course categories may be reflected in the [[Navigation block]].&lt;br /&gt;
&lt;br /&gt;
The capability [[Capabilities/moodle/course:changecategory|moodle/course:changecategory]] controls whether a user can edit the course category.&lt;br /&gt;
===Course visibility===&lt;br /&gt;
&lt;br /&gt;
Here you can &amp;quot;hide&amp;quot; your course completely. It will not appear in the list of courses, except for managers, course creators, teachers and any other users with the [[Capabilities/moodle/course:viewhiddencourses|view hidden courses capability]]. Even if students try to access the course URL directly, they will not be allowed to enter.&lt;br /&gt;
&lt;br /&gt;
The [[Capabilities/moodle/course:visibility|hide/show courses capability]] controls whether a user can hide a course.&lt;br /&gt;
&lt;br /&gt;
====Hiding course until start date/Hiding course upon end date====&lt;br /&gt;
If your administrator enables the scheduled tasks Show courses on start date (\core\task\show_started_courses_task) and Hide courses on end date (\core\task\hide_ended_courses_task) then the course will become visible to students only after the Course start date and/or the course will be hidden from students on the end date. See the tooltips for clarification.&lt;br /&gt;
&lt;br /&gt;
===Course start date===&lt;br /&gt;
&lt;br /&gt;
This setting affects the display of logs and the weekly format topic dates.&lt;br /&gt;
&lt;br /&gt;
If you use the &amp;quot;Weekly&amp;quot; course format, the start date will appear in the first section of the course. For example selecting 27 July, will display &amp;quot;27 July - 2 August&amp;quot; in the first section (when default display is selected for that section).  &lt;br /&gt;
&lt;br /&gt;
This setting will have an effect on the display of logs. This will be the earliest possible date the log activity will display. &lt;br /&gt;
&lt;br /&gt;
This setting will &#039;&#039;&#039;not&#039;&#039;&#039; affect courses using the &#039;social&#039; or &#039;topics&#039; formats.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; If your institution runs on a weekly schedule, you may want to consider setting the start date for courses on the first day of the week, like a Monday. Please note that the &#039;first day of the week&#039; is set by the [https://docs.moodle.org/dev/Translation_langconfig langconfig file] of your [[Language]], and might be different from the default Monday of the English language pack.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; In general, if your course does not have a real starting date then set the date to yesterday and use the availability setting to reveal the course to students.  &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; See self enrolment course settings to prevent students from entering the course before a certain date/time.&lt;br /&gt;
&lt;br /&gt;
===Course end date===&lt;br /&gt;
&lt;br /&gt;
The course end date is used for determining whether a course is listed as past in [[My courses]].&lt;br /&gt;
&lt;br /&gt;
The course end date is also used for calculating the retention period before data is deleted. It may also be used by a custom report e.g. reporting activity for the duration of a course.&lt;br /&gt;
&lt;br /&gt;
Users can still enter the course after the end date; in other words the date does not restrict access.&lt;br /&gt;
&lt;br /&gt;
===Calculate the end date from the number of sections===&lt;br /&gt;
&lt;br /&gt;
For courses in weekly format only, the course end date may be calculated automatically based on the course start date and the number of sections. If course sections (weeks) are added or removed, the course date is changed automatically. If &#039;Calculate the end date from the number of sections&#039; is ticked, the course end date can not be set manually.&lt;br /&gt;
&lt;br /&gt;
=== Course ID number===&lt;br /&gt;
&lt;br /&gt;
The ID number is an alphanumeric field.  It has several potential uses.  Generally, it is not displayed to students.  However, it can be used to match this course against an external system&#039;s ID, as your course catalogue ID or can be used in the certificate module as a printed field.&lt;br /&gt;
&lt;br /&gt;
The capability [[Capabilities/moodle/course:changeidnumber|moodle/course:changeidnumber]] controls whether a user can edit the ID number.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
===Course summary===&lt;br /&gt;
&lt;br /&gt;
The summary appears on the course listings page.  This field is searched when searching for a course and also appears in the Course/Site description block.&lt;br /&gt;
&lt;br /&gt;
The capability [[Capabilities/moodle/course:changesummary|moodle/course:changesummary]] controls whether a user can edit the course summary.&lt;br /&gt;
&lt;br /&gt;
===Course image===&lt;br /&gt;
&lt;br /&gt;
An image (and if allowed by the administrator, other file types) may be attached to the course summary. They will be accessible by anyone from outside of the course just like  the course name and/or summary. Only users with [[Capabilities/moodle/course:changesummary| moodle/course:changesummary capability]] are able to upload/change course summary files.&lt;br /&gt;
&#039;&#039;Note that if this is not allowed by the administrator, then no box will appear to upload course summary files&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
By default, only jpg, gif and png file types are allowed as course summary files. An administrator can change the allowed file types in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Appearance &amp;gt; Courses&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Course format==&lt;br /&gt;
&lt;br /&gt;
===Format===&lt;br /&gt;
&lt;br /&gt;
See [[Course formats]]&lt;br /&gt;
&lt;br /&gt;
===Hidden sections===&lt;br /&gt;
&lt;br /&gt;
Course sections can be hidden completely or shown with section names only.&lt;br /&gt;
&lt;br /&gt;
===Course layout===&lt;br /&gt;
&lt;br /&gt;
The Course layout setting determines whether the whole course is displayed on one page or split over several pages. The setting currently applies to the custom sections and weekly core course formats and contributed collapsed topics course format only.&lt;br /&gt;
&lt;br /&gt;
Teachers choose from the dropdown whether they wish to &amp;quot;show all sections on one page&amp;quot; in the familiar scrolling format, or &amp;quot;show one section per page&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If one section per page is selected, the course page is abbreviated to a list of links to individual sections. Users click the title of a section to access it on its own page.&lt;br /&gt;
&lt;br /&gt;
==Appearance==&lt;br /&gt;
&lt;br /&gt;
(These settings are collapsed by default.)&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[File:appearancecourse252.png|thumb|500px|Appearance settings expanded]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Force theme===&lt;br /&gt;
&lt;br /&gt;
If the site administrator has allowed the teacher to set a course [[Themes|theme]], this pull down menu will appear with a list of themes on the site.  Teachers can use this to choose a different look for the course from the rest of the Moodle site.&lt;br /&gt;
&lt;br /&gt;
=== Force language===&lt;br /&gt;
&lt;br /&gt;
If you force a language in a course, the interface of Moodle in this course will be in this particular language, even if a student has selected a different preferred language in his/her personal profile.&lt;br /&gt;
&lt;br /&gt;
By default editing teachers and managers have the capability moodle/course:forcelanguage and can select and force a language for their students. Admins can remove this capability if they do not wish course teachers/managers to do this.&lt;br /&gt;
&lt;br /&gt;
===Number of announcements===&lt;br /&gt;
&lt;br /&gt;
How many recent announcements from the [[Announcements forum]] should show in the [[Latest announcements block]].  &lt;br /&gt;
&lt;br /&gt;
If an announcements forum is not required in the course, this setting should be set to zero.&lt;br /&gt;
&lt;br /&gt;
===Show gradebook to students===&lt;br /&gt;
&lt;br /&gt;
Here you can decide whether to allow students to see the link to [[Grades|grades]] in the Administration block. If your course doesn&#039;t use graded activities, it makes sense to disable this. If grades are used and this link is disabled, students can still see their grade from the actual activity itself, such as an [[Assignment|assignment]]&lt;br /&gt;
&lt;br /&gt;
===Show activity reports===&lt;br /&gt;
&lt;br /&gt;
Here you can decide whether to show students their [[Activity_report#Individual_Activity_Report|activity reports]]. Doing so places a load on the server however, which is why the setting is disabled by default.&lt;br /&gt;
&lt;br /&gt;
==Files and uploads==&lt;br /&gt;
&lt;br /&gt;
(These settings are collapsed by default.)&lt;br /&gt;
&lt;br /&gt;
===Maximum upload size===&lt;br /&gt;
&lt;br /&gt;
Here you can decide the largest size of file that students can upload to a course.  The site administrator can determine [[Site_policies#Maximum_uploaded_file_sizefile |sizes available]] for the teacher to select. &lt;br /&gt;
&lt;br /&gt;
Editing teachers or other users may be allowed to upload files larger than the maximum size by giving them the capability [[Capabilities/moodle/course:ignorefilesizelimits|moodle/course:ignorefilesizelimits]]&lt;br /&gt;
&lt;br /&gt;
===PDF font===&lt;br /&gt;
&lt;br /&gt;
If the text in your language (such as Chinese, Japanese, Korean, Hebrew or Arabic) displays as ???? in downloaded PDF files e.g. assignment submissions or reports, you can select your language to use for the PDF font.&lt;br /&gt;
&lt;br /&gt;
Note that this setting is only available if the site admin enables PDF fonts in &#039;&#039;Site administration &amp;gt; General &amp;gt; Language settings&#039;&#039; and specifies fonts for the languages used on your site in $CFG-&amp;gt;pdfexportfont in config.php.&lt;br /&gt;
&lt;br /&gt;
==Completion tracking==&lt;br /&gt;
&lt;br /&gt;
(These settings are collapsed by default.)&lt;br /&gt;
&lt;br /&gt;
Completion  tracking must be enabled for [[Activity completion]]. [[Course completion]] criteria may also be based upon Activity completion values found in the activity&#039;s settings.&lt;br /&gt;
&lt;br /&gt;
==Groups==&lt;br /&gt;
&lt;br /&gt;
(These settings are collapsed by default.)&lt;br /&gt;
{|&lt;br /&gt;
|[[File:coursegroups25.png|thumb|500px|Groups settings expanded]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Group mode===&lt;br /&gt;
&lt;br /&gt;
Here you can define the [[Groups|group mode]] at the course level by a pull down menu. &amp;quot;[[Groups#No_groups|No groups]]&amp;quot;, &amp;quot;[[Groups#Separate_groups|Separate groups]]&amp;quot; and &amp;quot;[[Groups#Visible_groups|Visible groups]]&amp;quot; are the choices. The selected setting will be the default group mode for all activities defined within that course.  The group setting can affect what users see in the participants list and who they can interact with in activities.&lt;br /&gt;
&lt;br /&gt;
===Force===&lt;br /&gt;
&lt;br /&gt;
If the group mode is &amp;quot;forced&amp;quot; at a course-level, then this particular group mode will be applied to every activity in that course. This will override any activities that may have a special group setting.  &lt;br /&gt;
&lt;br /&gt;
===Default grouping===&lt;br /&gt;
&lt;br /&gt;
If [[Groupings|groupings]] are enabled, a default grouping for course activities and resources may be set.&lt;br /&gt;
&lt;br /&gt;
==Tags==&lt;br /&gt;
&lt;br /&gt;
Teachers  can add course tags here, either new tags or official tags. See [[Using tags]] for more information.&lt;br /&gt;
&lt;br /&gt;
==Course custom fields==&lt;br /&gt;
&lt;br /&gt;
A site admin can create course [[Custom fields|custom fields]] in &#039;&#039;Site administration &amp;gt; Courses &amp;gt; Course custom fields&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;Number&#039; is available as an option when creating a course custom field. This could be used for course credits, for example. There are two options from the dropdown:&lt;br /&gt;
# Generic field for any numeric data - this allows you to manually add a number of your choice.&lt;br /&gt;
# Number of activities in the course - if you select this, you will then be prompted to select one or more activity or resource. In a course, this field will display the combined number of activities or resources you selected.&lt;br /&gt;
&lt;br /&gt;
Teachers can then select options for the course custom fields in the course settings.&lt;br /&gt;
&lt;br /&gt;
Users with the capability &#039;Change locked course custom fields&#039; (by default only users with the role of manager) can change locked course custom fields.&lt;br /&gt;
&lt;br /&gt;
== Site administration settings==&lt;br /&gt;
&lt;br /&gt;
An administrator can set course default settings from &#039;&#039;Site administration &amp;gt; Courses &amp;gt; Course default settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Preventing teachers from editing course settings==&lt;br /&gt;
&lt;br /&gt;
Any/all of the following fields - course full name, short name, ID number and category, summary - may be locked to prevent teachers from editing them. To do so:&lt;br /&gt;
&lt;br /&gt;
#Access &#039;&#039;Site Administration &amp;gt; Users &amp;gt; Permissions &amp;gt; Define roles&#039;&#039;.&lt;br /&gt;
#Click the edit icon opposite the teacher role.&lt;br /&gt;
#Change any/all of the capabilities [[Capabilities/moodle/course:changefullname|moodle/course:changefullname]], [[Capabilities/moodle/course:changeshortname|moodle/course:changeshortname]], [[Capabilities/moodle/course:changeidnumber|moodle/course:changeidnumber]], [[Capabilities/moodle/course:changecategory|moodle/course:changecategory]], [[Capabilities/moodle/course:changesummary|moodle/course:changesummary]] from allow to not set.&lt;br /&gt;
#Click the &amp;quot;Save changes&amp;quot; button at the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
[[de:Kurseinstellungen]]&lt;br /&gt;
[[es:Configuraciones del curso]]&lt;br /&gt;
[[eu:Ikastaroaren_ezarpenak]]&lt;br /&gt;
[[fr:Paramètres du cours]]&lt;br /&gt;
[[ja:コース設定]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Redis_cache_store&amp;diff=154815</id>
		<title>Redis cache store</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Redis_cache_store&amp;diff=154815"/>
		<updated>2025-12-16T10:47:40Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Configuring Redis in Moodle */ screenshot added from 4.4 docs provided by Meirza Arson&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). Unfortunately due to the data types it supports and the data involved, it isn&#039;t fully compatible with the request cache, and so we&#039;ll only be configuring it for the Application and Session caches in this document. That isn&#039;t to say you couldn&#039;t have parts of the request cache using Redis, you would just need to manually set those cached objects to use Redis instead (and there are quite a few of them!).&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 that all the user&#039;s cached data (namely Session) 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;
Moodle also supports connecting to &#039;&#039;&#039;Redis Cluster&#039;&#039;&#039;, which is Redis’s built-in mechanism for distributing data across multiple Redis nodes. Redis Cluster provides horizontal scaling, automatic failover, and high availability, making it ideal for large or high-traffic Moodle deployments, or sites using cloud-managed Redis services. Using a Redis Cluster does not change the user-facing experience, it only enhances performance and reliability in distributed Moodle architectures.&lt;br /&gt;
&lt;br /&gt;
==Installing Redis server==&lt;br /&gt;
There are plenty of guides on the internet on how to install Redis, so we won&#039;t repeat them here. Since Redis is a listening service, once it&#039;s installed it&#039;ll be ready to use (and should already be running) and ready to receive requests from Moodle, with no further configuration needed. With that said however, it&#039;s still wise to have a look through the configuration options and decide what is best for you and your setup - the DigitalOcean guide is a good place to start for adjusting these settings, as they&#039;re basically all in the redis.conf file.&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-22-04 DigitalOcean&#039;s How To Install and Secure Redis on Ubuntu 22.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;
*[https://github.com/zkteco-home/redis-windows Redis Windows Port - zkteco-home/redis-windows on GitHub]&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;
* [https://pecl.php.net/package/redis Windows PHP extensions] including DLLs for Windows. Check your PHP version, CPU (64bit or x86) and thread-safe value (see Site Admin &amp;gt; Server &amp;gt; PHP Info) to get the right version; add DLL file to ext directory, add &#039;extension=php_redis.dll&#039; entry to php.ini and restart your web server.&lt;br /&gt;
==Configuring Redis in Moodle==&lt;br /&gt;
*Navigate to Site admin &amp;gt; Plugins &amp;gt; Caching &amp;gt; Configuration.&lt;br /&gt;
*When installed, you should see a green tick next to &amp;quot;Redis&amp;quot; under &amp;quot;Installed cache stores&amp;quot; and a link to add an instance.&lt;br /&gt;
[[File:Redis_cache_ready.png]]&lt;br /&gt;
*Click &amp;quot;Add instance&amp;quot;.&lt;br /&gt;
**Give your Redis instance a name, like &amp;quot;Redis1&amp;quot;.&lt;br /&gt;
**Tick the Cluster mode checkbox if you want to use the Redis Cluster. If the checkbox is disabled, it means your PHP Redis extension does not support the Cluster feature.&lt;br /&gt;
**Set the IP:port for the Redis server. If it is on the same machine, the default will be 127.0.0.1:6379. If cluster mode is enabled, specify servers separated by a new line, for example:&amp;lt;br&amp;gt;&#039;&#039;172.23.0.11&#039;&#039;&amp;lt;br&amp;gt;&#039;&#039;172.23.0.12&#039;&#039;&amp;lt;br&amp;gt;&#039;&#039;172.23.0.13&#039;&#039;&lt;br /&gt;
**Specify the file path to the Certificate Authority (CA) certificate to verify the TLS/SSL connection to a Redis server, confirming the server&#039;s authenticity. Leave it blank if you prefer not to use it.&lt;br /&gt;
**Enter the password for your Redis server. Leave it blank if you prefer not to use it.&lt;br /&gt;
**Enter a short, unique prefix that will be added to all Redis keys created by this Moodle site. Leave it blank if you prefer not to use it.&lt;br /&gt;
**Choose the method Moodle will use to encode cache data before storing it in Redis. If available, igbinary is recommended because it is faster and uses less memory than the default PHP serializer.If your system does not have igbinary installed, Moodle will fall back to the standard PHP serializer.&lt;br /&gt;
**Select whether Moodle should compress cache data before storing it in Redis.&lt;br /&gt;
**Set the maximum number of seconds Moodle will wait for a Redis node to accept a connection. If the Redis server is busy, overloaded, or unreachable, Moodle will stop waiting after this timeout and report a connection failure. Default is 3 seconds.&lt;br /&gt;
**Click the Save Changes button, and the new instance should appear under &amp;quot;Configured store instances&amp;quot; with a &amp;quot;Ready&amp;quot; tick.&lt;br /&gt;
[[File:add redis store.png|border|frameless|831x831px]]&lt;br /&gt;
*Under &amp;quot;Stores used when no mapping is present&amp;quot; click &#039;&#039;&#039;Edit mappings&amp;quot;. Set &amp;quot;Redis1&amp;quot; (or the name used earlier) for the &amp;quot;Application&amp;quot; and &amp;quot;Session&amp;quot; caches.&#039;&#039;&#039; Note that Redis won&#039;t appear under the &amp;quot;Request&amp;quot; Cache section, since it isn&#039;t fully compatible with all of the different parts of the request cache. (Refer to the [[Caching]] page to better understand how the Moodle Universal Cache works).&lt;br /&gt;
[[File:Set_Redis_as_default_Application_and_Session_cache.png]]&lt;br /&gt;
*After saving this, you should see Redis as the cache for most cache stores, and should hopefully see a performance boost almost immediately.&lt;br /&gt;
*Next Step: Celebrate!&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;
*Redis lock : https://github.com/open-lms-open-source/moodle-local_redislock (get it into core: https://tracker.moodle.org/browse/MDL-67022)&lt;br /&gt;
*[https://redis.io/ Redis.io]&lt;br /&gt;
[[de:Redis Cache]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=File:add_redis_store.png&amp;diff=154814</id>
		<title>File:add redis store.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=File:add_redis_store.png&amp;diff=154814"/>
		<updated>2025-12-16T10:45:00Z</updated>

		<summary type="html">&lt;p&gt;Tsala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Session_handling&amp;diff=154813</id>
		<title>Session handling</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Session_handling&amp;diff=154813"/>
		<updated>2025-12-15T11:20:23Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Redis session driver */ copying change from 4.4 docs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Server settings}}&lt;br /&gt;
An administrator can change the following settings in &#039;Session Handling&#039; in the Site administration.&lt;br /&gt;
&lt;br /&gt;
Once someone logs in to your Moodle server, the server starts a session. The session data allows the server to track users as they access different pages.&lt;br /&gt;
==Use database for session information==&lt;br /&gt;
Moodle needs to store the session data in some storage. By default either file or database session storage is selected, this option allows admin to change it. Large installation should use memcached driver described below.&lt;br /&gt;
&lt;br /&gt;
Note that this option disappears after setting the $CFG-&amp;gt;session_handler_class in config.php file.&lt;br /&gt;
==Timeout==&lt;br /&gt;
If users don&#039;t load a new page during the amount of time set here, Moodle will end their session and log them out.&lt;br /&gt;
&lt;br /&gt;
Be sure this time frame is long enough to cover the longest test your teachers may offer. If a student is logged out while they are taking a test, their responses to the test questions may be lost.&lt;br /&gt;
==Cookie prefix==&lt;br /&gt;
Most of the time, you can leave this blank, unless you are running more than one Moodle site on the same server. In this case, you will want to customize the name of the cookie each Moodle site uses to track the session. This enables you to be logged into more than one Moodle site at the same time.&lt;br /&gt;
&lt;br /&gt;
Note: If you change &amp;quot;Cookie prefix&amp;quot; or &amp;quot;Cookie path&amp;quot; you will need to login again as the changes take effect immediately.&lt;br /&gt;
==Cookie path==&lt;br /&gt;
The relative path to this Moodle installation, this may be used to force sending of Moodle session cookie to parent directories. Invalid values are ignored automatically.&lt;br /&gt;
==Cookie domain==&lt;br /&gt;
This can be used to send session cookies to higher domains instead of just the server domain. This may be useful for some SSO solutions. Invalid values are ignored automatically.&lt;br /&gt;
==Session drivers==&lt;br /&gt;
User sessions may be stored in different backends. Session drivers can be configured only in config.php file - see examples in [https://github.com/moodle/moodle/blob/e1d05182a60ab7df055dab9eca3ddd48e47bd60a/config-dist.php#L338 config-dist.php] file.&lt;br /&gt;
===Memcached session driver===&lt;br /&gt;
The Memcached session driver is the fastest driver. It requires external memcached server and memcached PHP extension. Server cluster nodes must use shared session storage.&lt;br /&gt;
&lt;br /&gt;
Configuration options in config.php:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;session_handler_class = &#039;\core\session\memcached&#039;;&lt;br /&gt;
$CFG-&amp;gt;session_memcached_save_path = &#039;127.0.0.1:11211&#039;;&lt;br /&gt;
$CFG-&amp;gt;session_memcached_prefix = &#039;memc.sess.key.&#039;;&lt;br /&gt;
$CFG-&amp;gt;session_memcached_acquire_lock_timeout = 120;&lt;br /&gt;
$CFG-&amp;gt;session_memcached_lock_expire = 7200;       // Ignored if memcached extension &amp;lt;= 2.1.0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
* Make sure the memcached server has enough memory.&lt;br /&gt;
* Use different prefix when storing sessions from multiple Moodle sites in one server.&lt;br /&gt;
* If PECL memcached extension version installed is less that 2.2.0, the locking works differently from other drivers - the lock is expired/released at the end of timeout - see MDL-42485.&lt;br /&gt;
* &#039;&#039;&#039;Don&#039;t use the same memcached server for both sessions and MUC. Events triggering MUC caches to be purged leads to MUC purging the memcached server - thus terminating ALL sessions.&#039;&#039;&#039;&lt;br /&gt;
* The &amp;lt;code php&amp;gt;$CFG-&amp;gt;session_memcached_number_of_replicas&amp;lt;/code&amp;gt; option is no longer supported.&lt;br /&gt;
For windows users, PHP.net only supplies binaries for memcache, (and not memcached). (http://windows.php.net/downloads/pecl/releases/)&lt;br /&gt;
&lt;br /&gt;
(As of 2.7, two different contribs exist for memcache session handling - see MDL-42011 - it seems the OU one doesn&#039;t use prefix/lock_expire for some reason... possibly better to use the catalyst patch, where the only difference to the above config.php is the spelling of memcache(d).)&lt;br /&gt;
===File session driver===&lt;br /&gt;
This driver is used by default in new installation.&lt;br /&gt;
&lt;br /&gt;
Configuration options in config.php:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;session_handler_class = &#039;\core\session\file&#039;;&lt;br /&gt;
$CFG-&amp;gt;session_file_save_path = $CFG-&amp;gt;dataroot.&#039;/sessions&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
* File based sessions require file system that supports file locking.&lt;br /&gt;
===Database session driver===&lt;br /&gt;
This type of driver was used by default in Moodle 2.0-2.5.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;session_handler_class = &#039;\core\session\database&#039;;&lt;br /&gt;
$CFG-&amp;gt;session_database_acquire_lock_timeout = 120;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
* If you are using MySQL/MariaDB make sure that \&#039;max_allowed_packet\&#039; in my.cnf (or my.ini) is at least 4M.&lt;br /&gt;
* The performance is relatively low, it is not recommended for large sites.&lt;br /&gt;
&lt;br /&gt;
===Redis session driver===&lt;br /&gt;
The [[Redis]] session driver is available in Moodle 3.1.3 onwards (see MDL-54606). It requires a [[Redis_cache_store#Installing_Redis_server|Redis server]] and the [[Redis_cache_store#Installing_Redis_php_driver|Redis extension]].&lt;br /&gt;
&lt;br /&gt;
Configuration options in config.php:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;session_handler_class = &#039;\core\session\redis&#039;;&lt;br /&gt;
$CFG-&amp;gt;session_redis_host = &#039;127.0.0.1&#039;;&lt;br /&gt;
$CFG-&amp;gt;session_redis_port = 6379;  // Optional.&lt;br /&gt;
$CFG-&amp;gt;session_redis_database = 0;  // Optional, default is db 0.&lt;br /&gt;
$CFG-&amp;gt;session_redis_auth = &#039;&#039;; // Optional, default is don&#039;t set one.&lt;br /&gt;
$CFG-&amp;gt;session_redis_prefix = &#039;&#039;; // Optional, default is don&#039;t set one.&lt;br /&gt;
$CFG-&amp;gt;session_redis_acquire_lock_timeout = 120;&lt;br /&gt;
$CFG-&amp;gt;session_redis_acquire_lock_retry = 100; // Optional, default is 100ms (from 3.9)&lt;br /&gt;
$CFG-&amp;gt;session_redis_lock_expire = 7200;&lt;br /&gt;
$CFG-&amp;gt;session_redis_serializer_use_igbinary = false; // Optional, default is PHP builtin serializer.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
* If &amp;lt;code php&amp;gt;CFG-&amp;gt;session_redis_host&amp;lt;/code&amp;gt; only one host is specified, the session will establish a single Redis connection. When multiple hosts are listed, separated by commas, the session will connect to a Redis cluster.&lt;br /&gt;
* Be careful on changing the default serializer: it requires &amp;lt;code php&amp;gt;--enable-redis-igbinary&amp;lt;/code&amp;gt; at &#039;&#039;phpredis&#039;&#039; extension compile time &#039;&#039;&#039;and&#039;&#039;&#039; you need to remove &#039;&#039;&#039;the previous session data&#039;&#039;&#039; before using Moodle again.&lt;br /&gt;
&lt;br /&gt;
== Read only sessions ==&lt;br /&gt;
There was an experimental feature introduced in Moodle 3.9 and is now stable since 3.11. It allows certain pages to start readonly sessions which do not require a write lock with the aim of high performance at scale. &lt;br /&gt;
&lt;br /&gt;
https://tracker.moodle.org/browse/MDL-58018&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
==== 1) Using a compliant session store ====&lt;br /&gt;
In order to use readonly sessions you need to be using a session store which supports it, which includes database and redis.&lt;br /&gt;
==== 2) Mapping session caches ====&lt;br /&gt;
By default all MUC &#039;session caches&#039; are stored in the $SESSION which is a subtle distinction that is easily misunderstood. MUC caches can be read and written at any time and are independent of the $SESSION being locked. So all cache definitions which have a mode of session need to be mapped to a store which is not in the session such as in redis. If this isn&#039;t done errors will be raised highlighting the configuration issue.&lt;br /&gt;
==== 3) Turning it on in config.php ====&lt;br /&gt;
 $CFG-&amp;gt;enable_read_only_sessions = true;&lt;br /&gt;
If you have concerns about rolling this out, there is a soft rollout mode which report on any issues and you could leave this on for say a month or two and then turn it on fully:&lt;br /&gt;
 $CFG-&amp;gt;enable_read_only_sessions_debug = true;&lt;br /&gt;
==== 4) Adding support for it to core and plugins ====&lt;br /&gt;
Various critical pages and web services in core have been declared and implemented as readonly, if you want to support readonly sessions please read:&lt;br /&gt;
https://docs.moodle.org/dev/Session_locks&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Sessions FAQ]]&lt;br /&gt;
[[cs:admin/setting/sessionhandling]]&lt;br /&gt;
[[ja:セッションハンドリング]]&lt;br /&gt;
[[de:Sitzungsinformationen]]&lt;br /&gt;
[[es:Manejo de la sesión]]&lt;br /&gt;
[[fr:Gestion des sessions]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Redis_cache_store&amp;diff=154812</id>
		<title>Redis cache store</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Redis_cache_store&amp;diff=154812"/>
		<updated>2025-12-15T11:16:56Z</updated>

		<summary type="html">&lt;p&gt;Tsala: copying changes from 4.4 docs&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). Unfortunately due to the data types it supports and the data involved, it isn&#039;t fully compatible with the request cache, and so we&#039;ll only be configuring it for the Application and Session caches in this document. That isn&#039;t to say you couldn&#039;t have parts of the request cache using Redis, you would just need to manually set those cached objects to use Redis instead (and there are quite a few of them!).&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 that all the user&#039;s cached data (namely Session) 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;
Moodle also supports connecting to &#039;&#039;&#039;Redis Cluster&#039;&#039;&#039;, which is Redis’s built-in mechanism for distributing data across multiple Redis nodes. Redis Cluster provides horizontal scaling, automatic failover, and high availability, making it ideal for large or high-traffic Moodle deployments, or sites using cloud-managed Redis services. Using a Redis Cluster does not change the user-facing experience, it only enhances performance and reliability in distributed Moodle architectures.&lt;br /&gt;
&lt;br /&gt;
==Installing Redis server==&lt;br /&gt;
There are plenty of guides on the internet on how to install Redis, so we won&#039;t repeat them here. Since Redis is a listening service, once it&#039;s installed it&#039;ll be ready to use (and should already be running) and ready to receive requests from Moodle, with no further configuration needed. With that said however, it&#039;s still wise to have a look through the configuration options and decide what is best for you and your setup - the DigitalOcean guide is a good place to start for adjusting these settings, as they&#039;re basically all in the redis.conf file.&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-22-04 DigitalOcean&#039;s How To Install and Secure Redis on Ubuntu 22.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;
*[https://github.com/zkteco-home/redis-windows Redis Windows Port - zkteco-home/redis-windows on GitHub]&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;
* [https://pecl.php.net/package/redis Windows PHP extensions] including DLLs for Windows. Check your PHP version, CPU (64bit or x86) and thread-safe value (see Site Admin &amp;gt; Server &amp;gt; PHP Info) to get the right version; add DLL file to ext directory, add &#039;extension=php_redis.dll&#039; entry to php.ini and restart your web server.&lt;br /&gt;
==Configuring Redis in Moodle==&lt;br /&gt;
*Navigate to Site admin &amp;gt; Plugins &amp;gt; Caching &amp;gt; Configuration.&lt;br /&gt;
*When installed, you should see a green tick next to &amp;quot;Redis&amp;quot; under &amp;quot;Installed cache stores&amp;quot; and a link to add an instance.&lt;br /&gt;
[[File:Redis_cache_ready.png]]&lt;br /&gt;
*Click &amp;quot;Add instance&amp;quot;.&lt;br /&gt;
**Give your Redis instance a name, like &amp;quot;Redis1&amp;quot;.&lt;br /&gt;
**Tick the Cluster mode checkbox if you want to use the Redis Cluster. If the checkbox is disabled, it means your PHP Redis extension does not support the Cluster feature.&lt;br /&gt;
**Set the IP:port for the Redis server. If it is on the same machine, the default will be 127.0.0.1:6379. If cluster mode is enabled, specify servers separated by a new line, for example:&amp;lt;br&amp;gt;&#039;&#039;172.23.0.11&#039;&#039;&amp;lt;br&amp;gt;&#039;&#039;172.23.0.12&#039;&#039;&amp;lt;br&amp;gt;&#039;&#039;172.23.0.13&#039;&#039;&lt;br /&gt;
**Specify the file path to the Certificate Authority (CA) certificate to verify the TLS/SSL connection to a Redis server, confirming the server&#039;s authenticity. Leave it blank if you prefer not to use it.&lt;br /&gt;
**Enter the password for your Redis server. Leave it blank if you prefer not to use it.&lt;br /&gt;
**Enter a short, unique prefix that will be added to all Redis keys created by this Moodle site. Leave it blank if you prefer not to use it.&lt;br /&gt;
**Choose the method Moodle will use to encode cache data before storing it in Redis. If available, igbinary is recommended because it is faster and uses less memory than the default PHP serializer.If your system does not have igbinary installed, Moodle will fall back to the standard PHP serializer.&lt;br /&gt;
**Select whether Moodle should compress cache data before storing it in Redis.&lt;br /&gt;
**Set the maximum number of seconds Moodle will wait for a Redis node to accept a connection. If the Redis server is busy, overloaded, or unreachable, Moodle will stop waiting after this timeout and report a connection failure. Default is 3 seconds.&lt;br /&gt;
**Click the Save Changes button, and the new instance should appear under &amp;quot;Configured store instances&amp;quot; with a &amp;quot;Ready&amp;quot; tick.&lt;br /&gt;
*Under &amp;quot;Stores used when no mapping is present&amp;quot; click &#039;&#039;&#039;Edit mappings&amp;quot;. Set &amp;quot;Redis1&amp;quot; (or the name used earlier) for the &amp;quot;Application&amp;quot; and &amp;quot;Session&amp;quot; caches.&#039;&#039;&#039; Note that Redis won&#039;t appear under the &amp;quot;Request&amp;quot; Cache section, since it isn&#039;t fully compatible with all of the different parts of the request cache. (Refer to the [[Caching]] page to better understand how the Moodle Universal Cache works).&lt;br /&gt;
[[File:Set_Redis_as_default_Application_and_Session_cache.png]]&lt;br /&gt;
*After saving this, you should see Redis as the cache for most cache stores, and should hopefully see a performance boost almost immediately.&lt;br /&gt;
*Next Step: Celebrate!&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;
*Redis lock : https://github.com/open-lms-open-source/moodle-local_redislock (get it into core: https://tracker.moodle.org/browse/MDL-67022)&lt;br /&gt;
*[https://redis.io/ Redis.io]&lt;br /&gt;
[[de:Redis Cache]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Caching&amp;diff=154783</id>
		<title>Caching</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Caching&amp;diff=154783"/>
		<updated>2025-11-28T13:12:49Z</updated>

		<summary type="html">&lt;p&gt;Tsala: see also links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
A cache is a collection of processed data that is kept on hand and re-used to avoid costly repeated database queries.&lt;br /&gt;
&lt;br /&gt;
Moodle 2.4 saw the implementation of MUC, the Moodle Universal Cache. This new system allows certain functions of Moodle (e.g. string fetching) to take advantage of different installed cache services (e.g. files, ram, memcached).&lt;br /&gt;
&lt;br /&gt;
In future versions of Moodle, we will continue expanding the number of Moodle functions that use MUC, which will continue improving performance, but you can already start using it to improve your site.&lt;br /&gt;
&lt;br /&gt;
This is quite a long document, so if you&#039;re just looking for what the additional &#039;&#039;&#039;caching&#039;&#039;&#039; options that you can add to Moodle to improve performance are, head down to either Adding Cache Store Instances, or [[Performance recommendations]]. If you want to know more about how caching works in Moodle, read on below.&lt;br /&gt;
==General approach to performance testing==&lt;br /&gt;
Here is the general strategy you should be taking:&lt;br /&gt;
# Build a test environment that is as close to your real production instance as possible (e.g. hardware, software, networking, etc.)&lt;br /&gt;
# Make sure to remove as many uncontrolled variables as you can from this environment (e.g. other services)&lt;br /&gt;
# Use a tool to place a realistic but simulated and repeatable load upon your server. (e.g. jmeter or selenium).&lt;br /&gt;
# Decide on a way to measure the performance of the server by capturing data (ram, load, time taken, etc.)&lt;br /&gt;
# Run your load and measure a baseline performance result.&lt;br /&gt;
# Change one variable at a time and re-run the load to see if performance gets better or worse. Repeat as necessary.&lt;br /&gt;
# When you discover settings that result in consistent performance improvement, apply to your production site.&lt;br /&gt;
==Cache configuration in Moodle==&lt;br /&gt;
Since Moodle 2.4, Moodle has provided a caching plugin framework to give administrators the ability to control where Moodle stores cached data. For most Moodle sites, the default configuration should be sufficient, and it is not necessary to change the configuration. For larger Moodle sites with multiple servers, administrators may wish to use memcached, mongodb or other systems to store cache data. The cache plugin screen provides administrators with the ability to configure what cache data is stored where.&amp;lt;br /&amp;gt;&lt;br /&gt;
Caching in Moodle is controlled by what is known as the Moodle Universal Cache. Commonly referred to as MUC.&lt;br /&gt;
&lt;br /&gt;
This document explains briefly what MUC is before proceeding into detail about the concepts and configuration options it offers.&lt;br /&gt;
==The basic cache concepts in Moodle==&lt;br /&gt;
Caching in Moodle isn&#039;t as complex as it first appears. A little background knowledge will go a long way in understanding how cache configuration works.&lt;br /&gt;
===Cache types===&lt;br /&gt;
Let&#039;s start with cache types (sometimes referred to as mode). There are three basic types of caches in Moodle.&lt;br /&gt;
&lt;br /&gt;
The first is the application cache. This is by far the most commonly used cache type in code. All users share its information, and its data persists between requests. Information stored here is usually cached for one of two reasons, either it is required information for the majority of requests and saves us one or more database interactions, or it is information that is accessed less frequently but is resource intensive to generate.&amp;lt;br /&amp;gt;&lt;br /&gt;
By default, this information is stored in an organised structure within your Moodle data directory.&lt;br /&gt;
&lt;br /&gt;
The second cache type is the session cache. This is just like the PHP session that you will already be familiar with; it uses the PHP session by default. You may be wondering why we have this cache type at all, but the answer is simple. MUC provides a managed means of storing and removing information that is required between requests. It offers developers a framework to use rather than having to re-invent the wheel and ensures that we have access to a controlled means of managing the cache as required.&amp;lt;br /&amp;gt;&lt;br /&gt;
It is important to note that this isn&#039;t a frequently used cache type as, by default, session cache data is stored in the PHP session, and the PHP session is stored in the database. Uses of the session cache type are limited to small datasets as we don&#039;t want to bloat sessions and thus put a strain on the database.&lt;br /&gt;
&lt;br /&gt;
The third and final type is the request cache. Data stored in this cache type only persists for the lifetime of the request. If you&#039;re a PHP developer, think of it like a managed static variable.&amp;lt;br /&amp;gt;&lt;br /&gt;
This is by far the least used of the three cache types. Uses are often limited to information that will be accessed several times within the same request, usually by more than an area of code.&lt;br /&gt;
Cached information is stored in memory by default.&lt;br /&gt;
==== Cache types and multiple-server systems ====&lt;br /&gt;
If you have a system with multiple front-end web servers, the application cache must be shared between the servers. In other words, you cannot use fast local storage for the application cache but must use shared storage or some other form of shared cache such as a shared memcached.&lt;br /&gt;
&lt;br /&gt;
The same applies to session cache unless you use a &#039;sticky sessions&#039; mechanism to ensure that users always access the same front-end server within a session.&lt;br /&gt;
===Cache backends===&lt;br /&gt;
Cache backends are where data actually gets stored. These include things like the file system, PHP session, Memcached, and memory.&amp;lt;br /&amp;gt;&lt;br /&gt;
By default, just file system, PHP session, and memory are used within Moodle.&amp;lt;br /&amp;gt;&lt;br /&gt;
We don&#039;t require that a site has access to any other systems such a Memcached. Instead, that is something you are responsible for installing and configuring yourself.&amp;lt;br /&amp;gt;&lt;br /&gt;
When cache backends are mentioned, think of systems outside of Moodle that can store data. The MongoDB server, the Memcached server and similar &amp;quot;server&amp;quot; applications.&lt;br /&gt;
===Cache stores===&lt;br /&gt;
Cache stores are a plugin type within Moodle. They facilitate connecting Moodle to the cache backends discussed above. The standard Moodle has the three defaults mentioned above as well as Memcached, MongoDB, [[APC user cache (APCu)]] and [[Redis cache store|Redis]].&lt;br /&gt;
&lt;br /&gt;
You can find other cache store plugins in the [https://moodle.org/plugins/browse.php?list=category&amp;amp;id=48 plugins database].&lt;br /&gt;
&lt;br /&gt;
The code for these is located within cache/stores in your Moodle directory root.&lt;br /&gt;
&lt;br /&gt;
Within Moodle, you can configure as many cache stores as your architecture requires. If you have several Memcached servers, for instance, you can create a cache store instance for each. By default, Moodle contains three cache store instances that get used when you&#039;ve made no other configuration.&lt;br /&gt;
* A file store instance is created, which gets used for all application caches. It stores its data in your moodledata directory.&lt;br /&gt;
* A session store instance is created, which gets used for all session caches. It stores its data in the PHP session, which, by default, is stored in your database.&lt;br /&gt;
* A static memory store instance is created, which gets used for all request cache types. Data exists in memory for just the lifetime of a request.&lt;br /&gt;
===Caches: what happens in code===&lt;br /&gt;
Caches are created in code and are used by the developer to store data they see a need to cache.&amp;lt;br /&amp;gt;&lt;br /&gt;
Let&#039;s keep this section nice and short because perhaps you are not a developer. There is one very important point you must know about.&amp;lt;br /&amp;gt;&lt;br /&gt;
The developer does not get any say in where the data gets cached. They must specify the following information when creating a cache to use.&lt;br /&gt;
# The type of cache they require.&lt;br /&gt;
# The area of code this cache will belong to (the API, if you will).&lt;br /&gt;
# The cache&#039;s name, something they make up to describe in one word what the cache stores.&lt;br /&gt;
There are several optional requirements and settings they can specify as well, but don&#039;t worry about that at this point.&amp;lt;br /&amp;gt;&lt;br /&gt;
The important point is that they can&#039;t choose which cache backend to use; they can only choose the type of cache they want from the three detailed above.&lt;br /&gt;
===How it ties together===&lt;br /&gt;
This is best described in relation to roles played in an organisation.&lt;br /&gt;
# The system administrator installs the cache backends you wish to use. Memcached, XCache, APC and so on.&amp;lt;br /&amp;gt;Moodle doesn&#039;t know about these; they are outside of Moodle&#039;s scope and purely the responsibility of your system administrator.&lt;br /&gt;
# The Moodle administrator creates a cache store instance in Moodle for each backend the site will make use of.&amp;lt;br /&amp;gt;There can be one or more cache store instances for each backend. Some backends like Memcached have settings to create separated spaces within one backend.&lt;br /&gt;
# The developer has created caches in code and is using them to store data.&amp;lt;br /&amp;gt;He doesn&#039;t know anything about how you will use your caches; he just creates a &amp;quot;cache&amp;quot; and tells Moodle what type it is best for.&lt;br /&gt;
# The Moodle administrator creates a mapping between a cache store instance and a cache.&amp;lt;br /&amp;gt;That mapping tells Moodle to use the backend you specify to store the data the developer wants cached.&lt;br /&gt;
In addition to that, you can take things further still.&lt;br /&gt;
* You can map many caches to a single cache store instance.&lt;br /&gt;
* You can map multiple cache store instances to a single cache with priority (primary ... final)&lt;br /&gt;
* You can map a cache store instance to be the default store used for all caches of a specific type that don&#039;t otherwise have specific mappings.&lt;br /&gt;
If this is the first time you are reading about the Moodle Universal Cache, this probably sounds pretty complex but don&#039;t worry; it will be discussed in better detail as we work through how to configure the caching in Moodle.&lt;br /&gt;
==Advanced concepts==&lt;br /&gt;
These concepts are things that most sites will not need to know or concern themselves about.&lt;br /&gt;
&lt;br /&gt;
You should only start looking here if you are looking to maximise performance on large sites running over clustered services with shared cache backends or on multi-site architecture again where information is being shared between sites.&lt;br /&gt;
===Locking===&lt;br /&gt;
The idea of locking is nothing new; it is the process of controlling access to avoid concurrency issues.&lt;br /&gt;
&lt;br /&gt;
MUC has a second type of plugin; a cache lock plugin used when caches require it. To date, no caches have required it. A cache by nature is volatile, and any information that is absolutely mission-critical should be a more permanent data store, likely the database.&lt;br /&gt;
&lt;br /&gt;
Nonetheless, there is a locking system that cache definitions can require within their options, and that will be applied when interacting with a cache store instance.&lt;br /&gt;
===Sharing===&lt;br /&gt;
Every bit of data that gets stored within a cache has a calculated unique key associated with it.&amp;lt;br /&amp;gt;&lt;br /&gt;
By default, part of that key is the site identifier making any content stored in the cache specific to the site that stored it. For most sites, this is exactly what you want.&amp;lt;br /&amp;gt;&lt;br /&gt;
However, it&#039;s beneficial to allow multiple sites or somehow linked sites to share cached data in some situations.&amp;lt;br /&amp;gt;&lt;br /&gt;
Of course, not all caches can be shared, however some certainly can and by sharing, you can further reduce load and increase performance by maximising resource use.&lt;br /&gt;
&lt;br /&gt;
This is an advanced feature; if you choose to configure sharing, please do so carefully.&lt;br /&gt;
&lt;br /&gt;
To make use of sharing, you need to first configure identical cache store instances in the sites you want to share information, and then on each site, set the sharing for the cache to the same value.&lt;br /&gt;
; Sites with the same site ID: This is the default, it allows for sites with the same site ID to share cached information. It is the most restrictive but is going to work for all caches. All other options carry an element of risk in that you have to ensure the cache&#039;s information is applicable to all sites that will be accessing it.&lt;br /&gt;
; Sites running the same version: All sites accessing the backend that have the same Moodle version can share the information this cache has stored in the cache store.&lt;br /&gt;
; Custom key: For this, you manually enter a key to use for sharing. You must then enter the exact same key into the other sites you want to share information.&lt;br /&gt;
; Everyone: The cached data is accessible to all other sites accessing the data. This option puts the ball entirely in the Moodle administrators court.&lt;br /&gt;
For example, if you had several Moodle sites all the same version running on a server with APC installed you could decide to map the language cache to the APC store and configure sharing for all sites running the same version.&amp;lt;br /&amp;gt;&lt;br /&gt;
The language cache for sites on the same version is safe to share in many situations, it is used on practically every page, and APC is extremely fast. These three points may result in a nice wee performance boost for your sites.&amp;lt;br /&amp;gt;&lt;br /&gt;
It is important to consider with the language cache that by sharing it between sites any language customisations will also be shared.&lt;br /&gt;
==The cache configuration screen==&lt;br /&gt;
The cache configuration screen is your one stop shop for configuring caching in Moodle.&amp;lt;br /&amp;gt;&lt;br /&gt;
It gives you an overview of how caching is currently configured for your site and it provides links to all of the actions you can perform to configure caching to your specific needs.&lt;br /&gt;
===Accessing the cache configuration screen===&lt;br /&gt;
[[Image:cacheadmin29.png|thumb|200px|The cache configuration screen]]&lt;br /&gt;
The cache configuration screen can only be accessed by users with the &#039;&#039;moodle/site:config&#039;&#039; capability. By default this is only admins.&amp;lt;br /&amp;gt;&lt;br /&gt;
Once logged in the configuration screen can be found in &#039;&#039;&#039;Site Administration &amp;gt; Plugins &amp;gt; Caching &amp;gt; Configuration&#039;&#039;&#039;.&lt;br /&gt;
===Installed cache stores===&lt;br /&gt;
[[Image:ist29.png|thumb|500px|Installed cache stores screenshot]]&lt;br /&gt;
This is showing you a list of cache store plugins that you have installed.&amp;lt;br /&amp;gt;&lt;br /&gt;
For each plugin you can quickly see whether it is ready to be used (any PHP requirements have been met), how many store instances already exist on this site, the cache types that this store can be used for, what features it supports (advanced) and any actions you can perform relating to this store.&lt;br /&gt;
&lt;br /&gt;
Often the only action available is to create a new store instance.&amp;lt;br /&amp;gt;&lt;br /&gt;
Most stores support having multiple instances, however not all as you will see that that the session cache and static request cache do not. For those two stores, it does not make sense to have multiple instances.&lt;br /&gt;
===Configured store instances===&lt;br /&gt;
[[Image:csi29.png|thumb|500px|Configured store instances screenshot]]&lt;br /&gt;
Here you get a list of the cache store instances on this site.&lt;br /&gt;
; &#039;&#039;&#039;Store name&#039;&#039;&#039;: The name given to this cache store instance when it is created so that you can recognise it. It can be anything you want and is only used so that you can identify the store instance.&lt;br /&gt;
; &#039;&#039;&#039;Plugin&#039;&#039;&#039;: The cache store plugin of which this is an instance of.&lt;br /&gt;
; &#039;&#039;&#039;Ready &#039;&#039;&#039;: A tick gets shown when all PHP requirements have been met as well as any connection or set-up requirements have been verified.&lt;br /&gt;
; &#039;&#039;&#039;Store mappings&#039;&#039;&#039;: The number of caches this store instance has been mapped to explicitly. Does not include any uses through default mappings (discussed below).&lt;br /&gt;
; &#039;&#039;&#039;Modes&#039;&#039;&#039;: The modes that this cache store instance can serve.&lt;br /&gt;
; &#039;&#039;&#039;Supports&#039;&#039;&#039;: The features supported by this cache store instance.&lt;br /&gt;
; &#039;&#039;&#039;Locking &#039;&#039;&#039;: Locking is a mechanism that restricts access to cached data to one process at a time to prevent the data from being overwritten. The locking method determines how the lock is acquired and checked.&lt;br /&gt;
; &#039;&#039;&#039;Actions&#039;&#039;&#039;: Any actions that can be performed against this cache store instance.&lt;br /&gt;
===Known cache definitions===&lt;br /&gt;
[[Image:caching-27-04-known-cache-definitions.png|thumb|500px|Known cache definitions screenshot]]&lt;br /&gt;
The idea of a cache definition hasn&#039;t been discussed here yet. It is something controlled by the developer. When they create a cache they can do so in two ways, the first is by creating a cache definition. This is essentially telling Moodle about the cache they&#039;ve created. The second way is to create an Ad hoc cache. Developers are always encouraged to use the first method. Only caches with a definition can be mapped and further configured by the admin. Ad hoc caches will make use of default settings only.&amp;lt;br /&amp;gt;&lt;br /&gt;
Typically Ad hoc caches are only permitted in situations where the cache is small and configuring it beyond defaults would provide no benefit to administrators. Really it&#039;s like saying you the administrator doesn&#039;t need to concern yourself with it.&lt;br /&gt;
&lt;br /&gt;
For each cache shown here you get the following information:&lt;br /&gt;
; &#039;&#039;&#039;Definition&#039;&#039;&#039; : A concise description of this cache.&lt;br /&gt;
; &#039;&#039;&#039;Mode&#039;&#039;&#039;: The cache type this cache is designed for.&lt;br /&gt;
; &#039;&#039;&#039;Component &#039;&#039;&#039;: The code component the cache is associated with.&lt;br /&gt;
; &#039;&#039;&#039;Area&#039;&#039;&#039;: The area of code this cache is serving within the component.&lt;br /&gt;
; &#039;&#039;&#039;Store mappings&#039;&#039;&#039;: The store or stores that will be used for this cache.&lt;br /&gt;
; &#039;&#039;&#039;Sharing&#039;&#039;&#039;: How is sharing configured for this site.&lt;br /&gt;
; &#039;&#039;&#039;Actions&#039;&#039;&#039;: Any actions that can be performed on the cache. Typically you can edit the cache store instance mappings, edit sharing, and purge the cache.&lt;br /&gt;
You&#039;ll also find at the bottom of this table a link title &amp;quot;Rescan definitions&amp;quot;. Clicking this link will cause Moodle to go off an check all core components, and installed plugins looking for changes in the cache definitions.&amp;lt;br /&amp;gt;&lt;br /&gt;
This happens by default during an upgrade, and if a new cache definition is encountered. However, should you find yourself looking for a cache that isn&#039;t there this may be worth a try.&amp;lt;br /&amp;gt;&lt;br /&gt;
It is also handy for developers as it allows them to quickly apply changes when working with caches. It is useful when tweaking cache definitions to find what works best.&lt;br /&gt;
&lt;br /&gt;
Information on specific cache definitions can be found on the [[Cache definitions]] page.&lt;br /&gt;
===Summary of cache lock instances===&lt;br /&gt;
[[Image:caching-27-05-summary-of-cache-lock-instances.png|thumb|500px|Summary of cache lock instances screenshot]]&lt;br /&gt;
As mentioned above cache locking is an advanced concept in MUC.&amp;lt;br /&amp;gt;&lt;br /&gt;
The table here shows information on the configured locking mechanisms available to MUC. By default, just a single locking mechanism is available, file locking.&lt;br /&gt;
At present, there are no caches that make use of this and as such I won&#039;t discuss it further here.&lt;br /&gt;
===Stores used when no mapping is present===&lt;br /&gt;
[[Image:caching-27-06-stores-used-when-no-mapping-is-present.png|thumb|500px|Mapping of default stores screenshot]]&lt;br /&gt;
This table quickly shows which cache store instances are going to be used for cache types if there are no specific mappings in place.&amp;lt;br /&amp;gt;&lt;br /&gt;
To simplify that, this shows the default cache stores for each type.&lt;br /&gt;
&lt;br /&gt;
At the bottom, you will notice there is a link &amp;quot;Edit mappings&amp;quot; that takes you to a page where you can configure this.&lt;br /&gt;
==Adding cache store instances==&lt;br /&gt;
The default configuration is going to work for all sites, however, you may be able to improve the performance of your sites by making use of various caching backends and techniques. The first thing you will want to do is add cache store instances configured to connect to/use the cache backends you&#039;ve set up.&lt;br /&gt;
===File cache===&lt;br /&gt;
[[Image:caching-27-07-add-file-cache-store.png|thumb|300px|Adding a file cache store screenshot]]&lt;br /&gt;
When on the cache configuration screen within the &#039;&#039;Installed cache stores&#039;&#039; table, you should see the File cache plugin, click &#039;&#039;`Add instance`&#039;&#039; to start the process of adding a file cache store instance.&lt;br /&gt;
&lt;br /&gt;
When creating a file cache there is in fact only one required param, the store name. The store name is used to identify the file store instance in the configuration interface and must be unique to the site.&lt;br /&gt;
It can be anything you want, but we would advice making it something that describes your intended use of the file store.&lt;br /&gt;
&lt;br /&gt;
The following properties can also be specified, customising where the file cache will be located, and how it operates.&lt;br /&gt;
; &#039;&#039;&#039;Cache path&#039;&#039;&#039;: Allows you to specify a directory to use when storing cache data on the file system. Of course the user the web server is running as must have read/write access to this directory. By default (blank) the Moodledata directory will be used.&lt;br /&gt;
; &#039;&#039;&#039;Auto create directory&#039;&#039;&#039;: If enabled when the cache is initialised if the specified directory does not exist Moodle will create it. If this is specified and the directory does not exist the cache will be deemed not ready and will not be used.&lt;br /&gt;
; &#039;&#039;&#039;Single directory store&#039;&#039;&#039;: By default, the file store will create a subdirectory structure to store data in. The first 3 characters of the data key will be used as a directory. This is useful in avoiding file system limits it the file system has a maximum number of files per directory. By enabling this option the file cache will not use subdirectories for storage of data. This leads to a flat structure but one that is more likely to hit file system limits. Use with care.&lt;br /&gt;
; &#039;&#039;&#039;Prescan directory&#039;&#039;&#039;: One of the features the file cache provides is to prescan the storage directory when the cache is first used. This leads to faster checks of files at the expense of an in-depth read.&lt;br /&gt;
The file cache store is the default store used for application caches and by default, the moodledata directory gets used for the cache.&lt;br /&gt;
File access can be a taxing resource in times of increased load and the following are some ideas about configuring alternative file stores in order to improve performance.&lt;br /&gt;
&lt;br /&gt;
First up is there a faster file system available for use on your server.&amp;lt;br /&amp;gt;&lt;br /&gt;
Perhaps you have an SSD installed but are not using it for your moodledata directory because space is a premium.&amp;lt;br /&amp;gt;&lt;br /&gt;
You should consider creating a directory or small partition on your SSD and creating a file store to use that instead of your Moodle data directory.&lt;br /&gt;
&lt;br /&gt;
Next, you&#039;ve not got a faster drive available for use, but you do have plenty of free space.&amp;lt;br /&amp;gt;&lt;br /&gt;
Something that may be worth giving a shot would be to create a small partition on the drive you&#039;ve got installed that uses a performance orientated file system.&amp;lt;br /&amp;gt;&lt;br /&gt;
Many Linux installations these days, for example, use EXT4, a nice file system but one that has overheads due to the likes of journalling.&amp;lt;br /&amp;gt;&lt;br /&gt;
Creating a partition and using a file system that has been optimised for performance may give you that little boost you are looking for. Remember caches are designed to be volatile and choosing a file system for a cache is a different decision to choosing a file system for your server.&amp;lt;br /&amp;gt;&lt;br /&gt;
Finally, if you&#039;re ready to go to lengths and have an abundance of memory on your server you could consider creating a ramdisk/tmpfs and pointing a file store at that.&lt;br /&gt;
Purely based in memory, it is volatile exactly like the cache is, and file system performance just isn&#039;t going to get much better than this.&amp;lt;br /&amp;gt;&lt;br /&gt;
Of course, you will be limited in space and you are essentially taking that resource away from your server.&lt;br /&gt;
&lt;br /&gt;
Please remember with all of these ideas that they are just ideas.&amp;lt;br /&amp;gt;&lt;br /&gt;
Whatever you choose - test, test, test, be sure of the decision you make.&lt;br /&gt;
===Memcached===&lt;br /&gt;
[[Image:caching-27-09-add-memcached-store.png|thumb|300px|Add Memcached store screenshot]]&lt;br /&gt;
You must first have a [https://docs.moodle.org/501/en/Performance_recommendations#MemCached Memcached server] you can access and have the [https://docs.moodle.org/501/en/Performance_recommendations#MemCached Memcached PHP extension] installed and enabled on your server.&lt;br /&gt;
&lt;br /&gt;
There are two required parameters in configuring a Memcached store.&lt;br /&gt;
; &#039;&#039;&#039;Store name&#039;&#039;&#039;: It is used to identify the store instance in the configuration interface and must be unique to the site.&lt;br /&gt;
; &#039;&#039;&#039;Servers&#039;&#039;&#039;: The servers you wish this cache store use. See below for details.&lt;br /&gt;
Servers should be added one per line and each line can contain 1 to 3 properties separated by colons.&lt;br /&gt;
# The URL or IP address of the server (required)&lt;br /&gt;
# The port the server is listening on (optional)&lt;br /&gt;
# The weight to give this server (optional)&lt;br /&gt;
For example, if you had two Memcached instances running on your server, one configured for the default port, and one configured for 11212 you would use the following:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
127.0.0.1&lt;br /&gt;
127.0.0.1:11212&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are also several optional parameters you can set when creating a Memcached store.&lt;br /&gt;
; &#039;&#039;&#039;Use compression&#039;&#039;&#039;: Defaults to true, but can be disabled if you wish.&lt;br /&gt;
; &#039;&#039;&#039;Use serialiser&#039;&#039;&#039;: Allows you to select which serialiser gets used when communicating with the Memcached server. By default the Memcached extension and PHP only provide one serialised, however, there is a couple of others available for installation if you go looking for them. One, for example, is the igbinary found at https://github.com/igbinary/igbinary.&lt;br /&gt;
; &#039;&#039;&#039;Prefix key&#039;&#039;&#039;: Allows you to set some characters that will be prefixed to all keys before interacting with the server.&lt;br /&gt;
; &#039;&#039;&#039;Hash method&#039;&#039;&#039;: The hash method provided by the Memcached extension is used by default here. However, you can select to use an alternative if you wish. http://www.php.net/manual/en/memcached.constants.php provides little information on the options available. Please note if you wish to you can also override the default hash function PHP uses within your php.ini.&lt;br /&gt;
; &#039;&#039;&#039;Buffer writes &#039;&#039;&#039;: Disabled by default, and for good reason. Turning on buffered writes will minimise interaction with the Memcached server by buffering io operations. The downside to this is that there is a good chance multiple requests will end up generating the data on a system with any concurrency because no one had pushed it to the Memcached server when they first requested it. Enabling this can be advantageous for caches that are only accessed in capability-controlled areas, for example, where multiple interactions take a toll on network resources. But that is definitely on the extreme tweaking end of the scale.&lt;br /&gt;
&#039;&#039;&#039;Important implementation notes&#039;&#039;&#039;&lt;br /&gt;
* The Memcached extension does not provide a means of deleting a set or entries. Either a single entry is deleted, or all entries are deleted.&lt;br /&gt;
Because of this, it is important to note that when you purge a Memcached store within Moodle it deletes ALL entries in the Memcached server. Not just those relating to Moodle.&amp;lt;br /&amp;gt;&lt;br /&gt;
For that reason, it is highly recommended to use dedicated Memcached servers and to &#039;&#039;&#039;NOT&#039;&#039;&#039; configure any other software to use the same servers. Doing so may lead to performance depreciation and adverse effects.&lt;br /&gt;
* Likewise if you want to use Memcached for caching and for sessions in Moodle it is essential to use two Memcached servers. One for sessions, and one for caching. Otherwise, a cache purge in Moodle will purge your sessions!&lt;br /&gt;
===MongoDB===&lt;br /&gt;
[[Image:caching-27-10-add-mongodb-store.png|thumb|300px|Add MongoDB store screenshot]]&lt;br /&gt;
MongoDB is an open source document orientated NoSQL database. Check out their website www.mongodb.org for more information.&lt;br /&gt;
; &#039;&#039;&#039;Store name&#039;&#039;&#039;: Used to identify the store instance in the configuration interface and must be unique to the site.&lt;br /&gt;
; &#039;&#039;&#039;Server &#039;&#039;&#039;: This is the connection string for the server you want to use. Multiple servers can be specified using a comma-separated list.&lt;br /&gt;
; &#039;&#039;&#039;Database &#039;&#039;&#039;: The name of the database to make use of.&lt;br /&gt;
; &#039;&#039;&#039;Username&#039;&#039;&#039;: The username to use when making a connection.&lt;br /&gt;
; &#039;&#039;&#039;Password &#039;&#039;&#039;: The password of the user being used for the connection.&lt;br /&gt;
; &#039;&#039;&#039;Replica set &#039;&#039;&#039;: The name of the replica set to connect to. If this is given the master will be determined by using the ismaster database command on the seeds, so the driver may end up connecting to a server that was not even listed.&lt;br /&gt;
; &#039;&#039;&#039;Use&#039;&#039;&#039;: If enabled the usesafe option will be used during insert, get, and remove operations. If you&#039;ve specified a replica set this will be forced on anyway.&lt;br /&gt;
; &#039;&#039;&#039;Use safe value&#039;&#039;&#039;: You can choose to provide a specific value for use safe. This will determine the number of servers that operations must be completed on before they are deemed to have been completed.&lt;br /&gt;
; &#039;&#039;&#039;Use extended keys&#039;&#039;&#039;: If enabled full key sets will be used when working with the plugin. This isn&#039;t used internally yet but would allow you to easily search and investigate the MongoDB plugin manually if you so choose. Turning this on will add a small overhead so should only be done if you require it.&lt;br /&gt;
=== Redis ===&lt;br /&gt;
Redis is described as &amp;quot;The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.&amp;quot; by the people who make it. It&#039;s an excellent caching option that can be used to store the Application and Session Caches. More info can be found on their site: https://redis.io, or if you&#039;re looking for installation instructions and more information about how it interacts with Moodle specifically, head to this wiki page: [[Redis cache store]].&lt;br /&gt;
==Mapping a cache to a store instance==&lt;br /&gt;
[[Image:caching-27-11-store-mapping.png|thumb|300px|Cache definition store mapping screenshot]]&lt;br /&gt;
Mapping a store instance to a cache tells Moodle to use that store instance when the cache is interacted with. This allows the Moodle administrator to control where information gets stored and, most importantly, optimise your site&#039;s performance by making the most of the resources available to your site.&lt;br /&gt;
&lt;br /&gt;
To set a mapping first browse to the cache configuration screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Proceed to find the &#039;&#039;Known cache definitions&#039;&#039; table and within it find the cache you&#039;d like to map.&lt;br /&gt;
In the actions column select the link for &#039;&#039;&#039;Edit mappings&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The screen you are presented allows you to map one or more cache store instances to be used by this cache.&amp;lt;br /&amp;gt;&lt;br /&gt;
You are presented with several drop-downs that allow you to map one or more cached. All mapped caches get interacted with. The &amp;quot;Primary&amp;quot; store is the store that will be used first when interacting with the cache.&lt;br /&gt;
The &amp;quot;Final&amp;quot; mapped store will be the last cache store interacted with.&amp;lt;br /&amp;gt;&lt;br /&gt;
How this interaction occurs is documented below.&lt;br /&gt;
&lt;br /&gt;
If no stores are mapped for the cache then the default stores are used. Have a look at the section below for information on changing the default stores.&lt;br /&gt;
&lt;br /&gt;
If a single store instance is mapped to the cache the following occurs:&lt;br /&gt;
; &#039;&#039;Getting data from the cache&#039;&#039;: Moodle asks the cache to get the data. The cache attempts to get it from the store. If the store has it, it gives it to the cache, and the cache gives it to Moodle so that it can use the data. If the store doesn&#039;t have it, then fail is returned and Moodle will have to generate the data and will most likely then send it to the cache.&lt;br /&gt;
; &#039;&#039;Storing data in the cache&#039;&#039;: Moodle will ask the cache to store some data, and the cache will give it to the cache store.&lt;br /&gt;
If multiple store instances are mapped to the cache the following occurs:&lt;br /&gt;
; &#039;&#039;Getting data from a store&#039;&#039;: Moodle asks the cache to get the data. The cache attempts to get it from the first store. If the first store has it then it returns the data to the cache and the cache returns it to Moodle. If the first store doesn&#039;t have the data then it attempts to get the data from the second store. If the second store has it is returns it to the first store that then stores it itself before returning it to the cache. If it doesn&#039;t then the next store is used. This continues until either the data is found or there are no more stores to check.&lt;br /&gt;
; &#039;&#039;Storing data in the cache&#039;&#039;: Moodle will ask the cache to store some data, the cache will give it to every mapped cache store for storage.&lt;br /&gt;
The main advantage of assigning multiple stores is that you can introduce cache redundancy. Of course, this introduces an overhead so it should only be used when actually required.&lt;br /&gt;
The following is an example of when mapping multiple stores can provide an advantage:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Scenario:&lt;br /&gt;
You have a web server that has a Moodle site as well as other sites.&lt;br /&gt;
You also have a Memcached server that is used by several sites including Moodle.&lt;br /&gt;
&lt;br /&gt;
Memcached has a limited size cache, that when full and requested to store more information frees space by dropping the least used cache entries.&lt;br /&gt;
&lt;br /&gt;
You want to use Memcached for your Moodle site because it is fast, however, you are aware that it may introduce more cache misses because it is a heavily used Memcached server.&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
To get around this you map two stores to caches you wish to use Memcached.&lt;br /&gt;
You make Memcached the primary store, and you make the default file store the final cache store.&lt;br /&gt;
&lt;br /&gt;
Explanation:&lt;br /&gt;
By doing this you&#039;ve created redundancy; when something is requested, Moodle first tries to get it from Memcached (the fastest store) and if it is not there it proceeds to check the file cache.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Just a couple more points of interest:&lt;br /&gt;
* Mapping multiple caches will introduce overhead, the more caches mapped the more overhead.&lt;br /&gt;
* Consider the cache stores you are mapping to, if data remains there once set then there is no point mapping any further stores after it. This technique is primarily valuable in situations where data is not guaranteed to remain after being set.&lt;br /&gt;
* Always test your configuration. Enable the display of performance information and then watch which stores get used when interacting with Moodle in such a way as to trigger the cache.&lt;br /&gt;
==Setting the stores that get used when no mapping is present==&lt;br /&gt;
[[Image:caching-27-12-default-store-mapping.png|thumb|300px|Setting which stores get used when no mapping is present screenshot]]&lt;br /&gt;
This is really setting the default stores that get used for a cache type when there is not a specific mapping that has been made for it.&lt;br /&gt;
&lt;br /&gt;
To set a mapping first browse to the cache configuration screen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Proceed to find the &#039;&#039;Stores used when no mapping is present&#039;&#039; table.&amp;lt;br /&amp;gt;&lt;br /&gt;
After the table you will find a link &#039;&#039;&#039;Edit mappings&#039;&#039;&#039;, click this.&lt;br /&gt;
&lt;br /&gt;
On the screen you are presented with you can select one store for each cache type to use when a cache of the corresponding type gets initialised and there is not an explicit mapping for it.&lt;br /&gt;
&lt;br /&gt;
Note that on this interface the drop downs only contain store instances that are suitable for mapping to the type.&lt;br /&gt;
Not all instances will necessarily be shown. If you have a store instance you don&#039;t see then it is not suitable for &#039;&#039;&#039;ALL&#039;&#039;&#039; the cache definitions that exist.&amp;lt;br /&amp;gt;&lt;br /&gt;
You will not be able to make that store instance the default, you will instead need to map it explicitly to each cache you want/can use it for.&lt;br /&gt;
==Configuring caching for your site==&lt;br /&gt;
This is where it really gets tricky, and unfortunately, there is no step-by-step guide to this.&lt;br /&gt;
&lt;br /&gt;
How caching can be best configured for a site comes down entirely to the site in question and the resources available to it.&lt;br /&gt;
&lt;br /&gt;
What can be offered are some tips and tricks to get you thinking about things and to perhaps introduce ideas that will help you along the way.&lt;br /&gt;
&lt;br /&gt;
If you are reading this document and you&#039;ve learnt a thing or two about configuring caching on your site share your learnings by adding to the points here.&lt;br /&gt;
* Plan it. It&#039;s a complex thing. Understand your site, understand your system, and really think how users will be using it all.&lt;br /&gt;
* If you&#039;ve got a small site the gains aren&#039;t likely to be significant, if you&#039;ve got a large site getting this right can lead to a substantial boost in performance.&lt;br /&gt;
* When looking at cache backends really research the advantages and disadvantages of each. Keep your site in mind when thinking about them. Depending upon your site you may find that no one cache backend is going to meet the entire needs of your site and that you will benefit from having a couple of backends at your disposal.&lt;br /&gt;
* Things aren&#039;t usually as simple as installing a cache backend and then using it. Pay attention to configuration and try to optimise it for your system. Test it separately and have an understanding of its performance before telling Moodle about it. The cache allows you to shift load off the database and reduce page request processing.&amp;lt;br /&amp;gt;If for instance you have Memcached installed but your connection has not been optimised for it you may well find yourself in a losing situation before you even tell Moodle about the Memcached server.&lt;br /&gt;
* When considering your default store instances keep in mind that they must operate with data sets of varying sizes and frequency. For a large site really your best bet is to look at each cache definition and map it to a store that is best suited for the data it includes and the frequency of access.&amp;lt;br /&amp;gt;Cache definitions have been documented [[Cache definitions]].&lt;br /&gt;
* Again when mapping store instances to caches really think about the cache you are mapping and make a decision based upon what you understand of your site and what you know about the cache.&amp;lt;br /&amp;gt;Cache definitions have been documented [[Cache definitions]].&lt;br /&gt;
* Test your configuration. If you can stress test it even better! If you turn on performance information Moodle will also print cache access information at the bottom of the screen. You can use this to visually check the cache is being used as you expect, and it will give you an indication of where misses etc. are occurring.&lt;br /&gt;
* Keep an eye on your backend. Moodle doesn&#039;t provide a means of monitoring a cache backend and that is certainly something you should keep an eye on. Memcached for instance drops least used data when full to make room for new entries. APC, on the other hand, stops accepting data when full. Both will impact your performance if full and you&#039;re going to encounter misses. However APC when full is horrible, but it is much faster.&lt;br /&gt;
===More on performance testing===&lt;br /&gt;
Two links that might be useful to anyone considering testing performance on their own servers:&lt;br /&gt;
* [http://www.iteachwithmoodle.com/2012/10/12/moodle-performance-testing-how-much-more-horsepower-do-each-new-versions-of-moodle-require/ Moodle performance testing: how much more horsepower do each new versions of Moodle require?]&lt;br /&gt;
* [http://www.iteachwithmoodle.com/2012/10/11/how-to-stress-test-your-moodle-server-using-loadstorm/ How to load test your Moodle server using Loadstorm]&lt;br /&gt;
===Performance advice for load-balanced web servers===&lt;br /&gt;
# In Moodle 2.4 onwards with load-balanced web servers, don&#039;t use the default caching option that stores the data in moodledata on a shared network drive. Use memcached instead. See Tim Hunt&#039;s article on http://tjhunt.blogspot.de/2013/05/performance-testing-moodle.html&lt;br /&gt;
# In Moodle 2.6 onwards make sure you set $CFG-&amp;gt;localcachedir to some local directory in config.php (for each node). This will speed up some of the disk caching that happens outside of MUC, such as themes, JavaScript, libraries etc.&lt;br /&gt;
&lt;br /&gt;
==More information==&lt;br /&gt;
Cache related forum discussions that may help in understanding MUC:&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=217195 MUC is here, now what?] &lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=226123 Status of MUC?]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=222250 Putting cachedir on local disks in cluster]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=232122 moodle cachestore_file]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=378416#p1526130 Why using a not-completely-shared application cache will fail]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=240971#p1117097 Some Cache / MUC questions]&lt;br /&gt;
* [https://docs.moodle.org/dev/images_dev/2/29/Caching_Moodle_at_Scale.pdf Moodle Caching at Scale]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Cache definitions]] &lt;br /&gt;
* [[Cache usage]]&lt;br /&gt;
* [[MUC FAQ]]&lt;br /&gt;
* [[Redis cache store]]&lt;br /&gt;
* [[Performance recommendations]]&lt;br /&gt;
[[de:Caching]]&lt;br /&gt;
[[es:Cacheando]]&lt;br /&gt;
[[fr:Mettre en cache]]&lt;br /&gt;
[[ja:キャッシング]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Cache_usage&amp;diff=154782</id>
		<title>Cache usage</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Cache_usage&amp;diff=154782"/>
		<updated>2025-11-28T13:10:54Z</updated>

		<summary type="html">&lt;p&gt;Tsala: performance template, location, see also&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
Location: &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Caching &amp;gt; Cache usage&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This administration page shows the current usage of the MUC cache. It can be useful for developers (e.g. to see how much space is taken up by a particular cache) and those operating large Moodle systems (e.g. to see if some cache is building up and using too much storage, so it might need purging).&lt;br /&gt;
&lt;br /&gt;
==Local vs shared caches==&lt;br /&gt;
&lt;br /&gt;
For systems with multiple servers or containers, some caches can stored locally on each server and others are shared across the whole system. &lt;br /&gt;
&lt;br /&gt;
For caches which are stored locally, this page reports information only about the current server that you loaded the page on. So you might get different information if you load it from a different server.&lt;br /&gt;
&lt;br /&gt;
==Cache stores==&lt;br /&gt;
&lt;br /&gt;
A table lists all cache stores currently in use, and the estimated and actual size of each store.&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
&lt;br /&gt;
This table lists the individual MUC caches, which store they are in, the number of items, and some statistics about the item size:&lt;br /&gt;
&lt;br /&gt;
* Mean and standard deviation of size per item.&lt;br /&gt;
* Estimated total size, with confidence interval.&lt;br /&gt;
&lt;br /&gt;
To avoid the page taking too long to load, these statistics are based on a sample of 50 items per cache. You can use controls at the bottom to change the number of items sampled.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Caching]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=admin/cache/usage&amp;diff=154781</id>
		<title>admin/cache/usage</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=admin/cache/usage&amp;diff=154781"/>
		<updated>2025-11-28T13:07:46Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Tsala moved page admin/cache/usage to Cache usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Cache usage]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Cache_usage&amp;diff=154780</id>
		<title>Cache usage</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Cache_usage&amp;diff=154780"/>
		<updated>2025-11-28T13:07:46Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Tsala moved page admin/cache/usage to Cache usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Cache usage=&lt;br /&gt;
&lt;br /&gt;
This administration page shows the current usage of the MUC cache. It can be useful for developers (e.g. to see how much space is taken up by a particular cache) and those operating large Moodle systems (e.g. to see if some cache is building up and using too much storage, so it might need purging).&lt;br /&gt;
&lt;br /&gt;
==Local vs shared caches==&lt;br /&gt;
&lt;br /&gt;
For systems with multiple servers or containers, some caches can stored locally on each server and others are shared across the whole system. &lt;br /&gt;
&lt;br /&gt;
For caches which are stored locally, this page reports information only about the current server that you loaded the page on. So you might get different information if you load it from a different server.&lt;br /&gt;
&lt;br /&gt;
==Cache stores==&lt;br /&gt;
&lt;br /&gt;
A table lists all cache stores currently in use, and the estimated and actual size of each store.&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
&lt;br /&gt;
This table lists the individual MUC caches, which store they are in, the number of items, and some statistics about the item size:&lt;br /&gt;
&lt;br /&gt;
* Mean and standard deviation of size per item.&lt;br /&gt;
* Estimated total size, with confidence interval.&lt;br /&gt;
&lt;br /&gt;
To avoid the page taking too long to load, these statistics are based on a sample of 50 items per cache. You can use controls at the bottom to change the number of items sampled.&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Import_course_data&amp;diff=154776</id>
		<title>Import course data</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Import_course_data&amp;diff=154776"/>
		<updated>2025-11-27T15:19:21Z</updated>

		<summary type="html">&lt;p&gt;Tsala: Site administration settings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Reusing activities}}&lt;br /&gt;
Course activities and resources may be imported from any other course that the teacher has editing permissions in. This will allow teachers to re-use instead of re-creating one or more [[Activities|activities]] or [[Resources|resources]]. &lt;br /&gt;
&lt;br /&gt;
Import course data is similar to a backup and restore process and does not include any user data.&lt;br /&gt;
==How to import activities or resources==&lt;br /&gt;
# From Course navigation &amp;gt; More &amp;gt; Course reuse, select &#039;Import&#039;.&lt;br /&gt;
# Select the course you wish to import from and click &#039;&#039;Continue&#039;&#039;.&lt;br /&gt;
# You will be presented with the &amp;quot;backup settings&amp;quot; page. Use the check boxes for import activities, blocks and or filters as types of items which will show on the next screen. &lt;br /&gt;
# Select the elements you want to include in the import in the Schema settings step.&lt;br /&gt;
# Review and click &#039;&#039;Perform import&#039;&#039; or click the cancel or previous buttons. The confirmation page will place green check marks and red marks next to the backup settings and include an item list for you to review.&lt;br /&gt;
# You should see the &amp;quot;Import complete. Click continue to return to the course.&amp;quot; message.&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
*Importing a quiz from course A to course B will also add the questions to the question bank so you can use them in new quizzes. &lt;br /&gt;
*The course image and course summary is not included when importing. To include these items, you need to use [[Course backup]] and [[Course restore]].&lt;br /&gt;
&lt;br /&gt;
==Site administration settings==&lt;br /&gt;
&lt;br /&gt;
Import default settings can be set in &#039;&#039;Site administration &amp;gt; Courses &amp;gt; General import defaults&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Activities, blocks, filters, calendar events, groups and groupings, competencies, custom fields and content bank content are included in a backup by default. Badges are not included by default.&lt;br /&gt;
&lt;br /&gt;
==Import course capabilities==&lt;br /&gt;
* [[Capabilities/moodle/backup:backuptargetimport|Backup for import]] - allows a user to backup a course ready for importing into another course &lt;br /&gt;
* [[Capabilities/moodle/restore:restoretargetimport|Restore from files targeted as import]] - allows a user to import activities or resources from another course&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Course backup]] &amp;amp; [[Course restore]] - for a similar process&lt;br /&gt;
&lt;br /&gt;
[[fr:Importation de cours]]&lt;br /&gt;
[[de:Kursdaten importieren]]&lt;br /&gt;
[[es:Importar datos de curso]]&lt;br /&gt;
[[ja:コースデータをインポートする]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Ordering_question_type&amp;diff=154774</id>
		<title>Ordering question type</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Ordering_question_type&amp;diff=154774"/>
		<updated>2025-11-26T13:42:48Z</updated>

		<summary type="html">&lt;p&gt;Tsala: screenshot update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questions}}&lt;br /&gt;
==Overview==&lt;br /&gt;
Originally developed by community moodler [https://moodle.org/user/profile.php?id=8277 Gordon Bateson] the ordering question type was added to standard Moodle from Moodle 4.4 onwards thanks to sponsorship by the Moodle Users Association.&lt;br /&gt;
&lt;br /&gt;
It displays several items (words, phrases, images or other media) in a random order which must then be dragged into the correct sequential order.&lt;br /&gt;
&lt;br /&gt;
{{MediaPlayer | url =https://youtu.be/r-P2IZp-ysg?feature=shared| desc = Ordering question type in Moodle 4.4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:404orderingquestion.png|frame|none|link=|alt=|An example of an ordering question with the instruction &#039;Put this dialogue into the correct order&#039;.]]&lt;br /&gt;
&lt;br /&gt;
==How to create an ordering question==&lt;br /&gt;
* Add the question name and the question text:&lt;br /&gt;
&lt;br /&gt;
*Choose whether you want the items to display vertically or horizontally.&lt;br /&gt;
[[File:Ordering question 02.png|600px]]&lt;br /&gt;
&lt;br /&gt;
* Choose the best grading type for your learners.&lt;br /&gt;
[[File:Ordering question 03.png|600px]]&lt;br /&gt;
&lt;br /&gt;
*Add the items in the correct order:&lt;br /&gt;
[[File:Ordering question 04.png|600px]]&lt;br /&gt;
&lt;br /&gt;
*Add hints for multiple tries if needed and tags if required.&lt;br /&gt;
&lt;br /&gt;
==What the student sees==&lt;br /&gt;
* The student will see a jumbled list of items. The student needs to drag and drop the items until the list is in the correct order:&lt;br /&gt;
[[File:Ordering question 07.png|600px]]&lt;br /&gt;
&lt;br /&gt;
*If the student misplaced items, they will be marked red&lt;br /&gt;
[[File:Ordering question 08.png|600px]]&lt;br /&gt;
&lt;br /&gt;
*It may be important to have a proper feedback sentence explaining what went wrong (if anything)&lt;br /&gt;
[[File:Ordering question 09.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://moodleformulas.org/course/view.php?id=30/ MoodleFormulas] where you can try some examples of the Ordering question type. &lt;br /&gt;
&lt;br /&gt;
[[es:Tipo de pregunta de Ordenamiento]]&lt;br /&gt;
[[de:Fragetyp Anordnung]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=File:404orderingquestion.png&amp;diff=154773</id>
		<title>File:404orderingquestion.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=File:404orderingquestion.png&amp;diff=154773"/>
		<updated>2025-11-26T13:02:14Z</updated>

		<summary type="html">&lt;p&gt;Tsala: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Announcements_forum&amp;diff=154771</id>
		<title>Announcements forum</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Announcements_forum&amp;diff=154771"/>
		<updated>2025-11-25T14:20:14Z</updated>

		<summary type="html">&lt;p&gt;Tsala: announcements forum defaults (MDL-71744)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Forum}}&lt;br /&gt;
The Announcements forum is a special forum for general news and announcements. A course may only have one Announcements forum unless it has been imported from another system which supports more than one Announcements forum.&lt;br /&gt;
&lt;br /&gt;
This forum is automatically created in a new course. By default, it is placed in the top of the central section and only teachers and only users with appropriate permissions (by default teachers) can post in it. The forum has forced subscription set by default.&lt;br /&gt;
&lt;br /&gt;
The [[Latest announcements block]] displays a [[Course_settings#News_items_to_show|specific number]] of recent discussions from the Announcements forum. &lt;br /&gt;
&lt;br /&gt;
An administrator can set the defaults for maximum attachment size, maximum number of attachments and subscription mode for announcements forums in &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Forum&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Removing Announcements==&lt;br /&gt;
&lt;br /&gt;
Announcements may be removed from a course as follows:&lt;br /&gt;
&lt;br /&gt;
#In [[Course settings]] set &amp;quot;Number of announcements&amp;quot; to 0&lt;br /&gt;
#Delete Announcements from the course homepage&lt;br /&gt;
#Delete the Latest announcements block&lt;br /&gt;
#Alternatively - hide the Announcements forum&lt;br /&gt;
(To restore Announcements set the &amp;quot;Number of announcements&amp;quot; to a number greater than 0.)&lt;br /&gt;
&lt;br /&gt;
==Stop the auto-creation of Announcements by default==&lt;br /&gt;
&lt;br /&gt;
As a Site administrator, it is possible to set the “Number of announcements” to 0 in Course default settings, which means that an Announcements forum will not automatically be added to new courses. That can be overridden in individual courses.&lt;br /&gt;
&lt;br /&gt;
[[de:Ankündigungen]]&lt;br /&gt;
[[eu:Berrien_foroa]]&lt;br /&gt;
[[fr:Forum des nouvelles]]&lt;br /&gt;
[[es:Anuncios]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Installing_Moodle&amp;diff=154761</id>
		<title>Installing Moodle</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Installing_Moodle&amp;diff=154761"/>
		<updated>2025-11-24T16:21:14Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* Create an empty database */ removing Oracle (MDL-83172)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
&#039;&#039;This page explains how to install Moodle. If you are an expert and/or in a hurry try [[Installation Quickstart]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you want to avoid installing Moodle yourself completely, consider [https://moodle.com/products/moodlecloud/ MoodleCloud], the hosting from Moodle.&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Moodle is primarily developed in Linux using [[Apache]], [[PostgreSQL]]/[[MySQL]]/[[MariaDB]] and [[PHP]] (sometimes known as the LAMP platform). Typically this is also how Moodle is run, although there are other options ([[Nginx]]/[[OpenLiteSpeed]]) as long as the software requirements of the [{{Release notes}} release] are met.&lt;br /&gt;
&lt;br /&gt;
If you are installing Moodle in a Windows server, note that from php5.5 onwards, you will also need to have the Visual C++ Redistributable for Visual Studio 2012 installed from:&lt;br /&gt;
http://www.microsoft.com/en-us/download/details.aspx?id=30679 Visual C++] ( x86 or x64). &lt;br /&gt;
&lt;br /&gt;
The basic requirements for Moodle are as follows:&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
* Disk space: 200MB for the Moodle code, plus as much as you need to store content. 5GB is probably a realistic minimum. &lt;br /&gt;
* Processor: 1&amp;amp;nbsp;GHz (min), 2&amp;amp;nbsp;GHz dual core or more recommended.&lt;br /&gt;
* Memory: 512MB (min), 1GB or more is recommended. 8GB plus is likely on a large production server&lt;br /&gt;
* Consider separate servers for the web &amp;quot;front ends&amp;quot; and the database. It is much easier to &amp;quot;tune&amp;quot;&lt;br /&gt;
All the above requirements will vary depending on specific hardware and software combinations as well as the type of use and load; busy sites may well require additional resources. Further guidance can be found under [[performance recommendations]]. Moodle scales easily by increasing hardware.&lt;br /&gt;
&lt;br /&gt;
For very large sites, you are much better starting with a small pilot and gaining some experience and insight. A &amp;quot;what hardware do I need for 50,000 user?&amp;quot; style post in the forums is highly unlikely to get a useful answer.&lt;br /&gt;
=== Software ===&lt;br /&gt;
See the [{{Release notes}} release notes] in the dev docs for software requirements.&lt;br /&gt;
== Set up your server ==&lt;br /&gt;
Depending on the use case a Moodle server may be anything from a Desktop PC (e.g. for testing and evaluating) to a rack-mounted or [[Server cluster|clustered]] solution to cloud VMs or other hosted solutions. As mentioned above there are lots of possibilities for installing the basic server software, for details see:&lt;br /&gt;
* [[Nginx]]&lt;br /&gt;
* [[Apache]]&lt;br /&gt;
* [[Installing AMP]]&lt;br /&gt;
* [[Internet Information Services|IIS]]&lt;br /&gt;
* [[OpenLiteSpeed]]&lt;br /&gt;
&lt;br /&gt;
You should also read through the instructions on [[Configuring the Router|Configuring the Moodle Router]].&lt;br /&gt;
&lt;br /&gt;
In addition, starting with Moodle 5.1, Moodle now uses a &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; directory for all web accessible files. Your web server should be configured to serve files from this directory, keeping configuration and other sensitive files outside of the web root. For guidance on updating your configuration, see the [[Upgrading#Code_directories_restructure|Code directories restructure]] page for more details.&lt;br /&gt;
&lt;br /&gt;
It will help hugely, regardless of your deployment choices, if time is taken to understand how to configure the different parts of your software stack (HTTP daemon, database, PHP etc.). Do not expect the standard server configuration to be optimal for Moodle. For example, the web server and database servers will almost certainly require tuning to get the best out of Moodle.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re unsure which packages to use (eg. [[MariaDB]] vs. [[MySQL]]), then have a look at what the consensus on the internet is, but also have a look at the [[Performance recommendations]] page, as this may also help give you an idea of exactly how much work is involved/what your workflow may end up looking like and planning that aspect as well.&lt;br /&gt;
&lt;br /&gt;
If a hosting provider is being used, ensure that all Moodle [{{Release notes}}#server-requirements requirements] (such as PHP and database versions) are met by the hosting platform before attempting the installation. It will help to become familiar with changing settings within the hosting provider&#039;s platform (e.g. PHP file upload maximums) as the options and tools provided vary.&lt;br /&gt;
&lt;br /&gt;
== Download and copy files into place ==&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT: While there are now a number of places you can get the Moodle code (including host provided Moodle installers), you are strongly advised to only obtain Moodle from moodle.org. If you run into problems it will be a great deal easier to support you.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You have two options:&lt;br /&gt;
* Download your required version from http://moodle.org/downloads and unzip/unpack it.&lt;br /&gt;
* &#039;&#039;&#039;OR&#039;&#039;&#039; Pull the code from the Git repository (recommended for developers and also makes upgrading very simple):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone -b MOODLE_501_STABLE git://git.moodle.org/moodle.git  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For a fuller discussion see [[Git for Administrators]]. &lt;br /&gt;
&lt;br /&gt;
Either of the above should result in a directory called &#039;&#039;&#039;moodle&#039;&#039;&#039;, containing a number of files and folders. &lt;br /&gt;
&lt;br /&gt;
You can typically place the whole folder in your web server documents directory, in which case the site will be located at &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://yourwebserver.com/moodle&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, or you can copy all the contents straight into the main web server documents directory, in which case the site will be simply &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://yourwebserver.com&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;. See the documentation for your system and/or web server if you are unsure. &lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; If you are downloading Moodle to your local computer and then uploading it to your hosted web site, it is usually better to upload the compressed Moodle file and then decompress on your hosted web site. If you decompress Moodle on your local computer, because Moodle is comprised of over 25,000 files, trying to upload over 25,000 files using an FTP client or your host&#039;s &amp;quot;file manager&amp;quot; can sometimes miss a file and cause errors.&lt;br /&gt;
* &#039;&#039;&#039;Secure the Moodle files:&#039;&#039;&#039; It is vital that the files are not writeable by the web server user. For example, on Unix/Linux (as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chown -R root /path/to/moodle&lt;br /&gt;
chmod -R 0755 /path/to/moodle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(files are owned by the administrator/superuser and are only writeable by them - readable by everyone else)&lt;br /&gt;
&lt;br /&gt;
On test/dev sites you &#039;&#039;may&#039;&#039; want to make the files writeable in order to use the built-in plugin installer. This is discouraged for live sites (at least, revert to more secure settings if you do).&lt;br /&gt;
&lt;br /&gt;
This link about setting folder permissions on Linux Webservers may assist as well: [https://www.internalpointers.com/post/right-folder-permission-website The right folder permissions for a website on a Linux server].&lt;br /&gt;
&lt;br /&gt;
== Create an empty database ==&lt;br /&gt;
Next create a new, empty database for your installation. You need to find and make a note of following information for use during the final installation stage:&lt;br /&gt;
* &#039;&#039;&#039;dbhost&#039;&#039;&#039; - the database server hostname. Probably &#039;&#039;localhost&#039;&#039; if the database and web server are the same machine, otherwise the name of the database server&lt;br /&gt;
* &#039;&#039;&#039;dbname&#039;&#039;&#039; - the database name. Whatever you called it, e.g. &#039;&#039;moodle&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;dbuser&#039;&#039;&#039; - the username for the database. Whatever you assigned, e.g. &#039;&#039;moodleuser&#039;&#039; - do not use the root/superuser account. Create a proper account with the minimum permissions needed.&lt;br /&gt;
* &#039;&#039;&#039;dbpass&#039;&#039;&#039; - the password for the above user&lt;br /&gt;
You should set the collation of the database to its proper setting (e.g., utf8mb4_unicode_ci).&lt;br /&gt;
&lt;br /&gt;
If your site is hosted you should find a web-based administration page for databases as part of the control panel (or ask your administrator). For everyone else or for detailed instructions, see the page for your chosen database server:&lt;br /&gt;
* [[PostgreSQL]]&lt;br /&gt;
* [[MariaDB]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
* [[MSSQL]]&lt;br /&gt;
&lt;br /&gt;
== Create the (&#039;&#039;moodledata&#039;&#039;) data directory  ==&lt;br /&gt;
Moodle requires a directory to store all of its files (all your site&#039;s uploaded files, temporary data, cache, session data etc.). The web server needs to be able to write to this directory. On larger systems consider how much free space you are going to use when allocating this directory. &lt;br /&gt;
&lt;br /&gt;
Due to the default way Moodle caches data you may have serious performance issues if you use relatively slow storage (e.g. NFS) for this directory. Read the [[Performance recommendations]] carefully and consider using (e.g.) [[Redis cache store|redis]] or memcached for [[Caching]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; This directory must &#039;&#039;&#039;NOT&#039;&#039;&#039; be accessible directly via the web. This would be a serious security hole. Do not try to place it inside your web root or inside your Moodle program files directory. Moodle will not install. It can go anywhere else convenient. &lt;br /&gt;
&lt;br /&gt;
Here is an example (Unix/Linux) of creating the directory and setting the permissions for &#039;&#039;&#039;anyone&#039;&#039;&#039; on the server to write here. This is only appropriate for Moodle servers that are not shared. Discuss this with your server administrator for better permissions that just allow the web server user to access these files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /path/to/moodledata&lt;br /&gt;
# chmod 0777 /path/to/moodledata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Securing moodledata in a web directory ====&lt;br /&gt;
If you are using a hosted site and you have no option but to place &#039;moodledata&#039; in a web accessible directory, you may be able to secure it by creating an .htaccess file in the &#039;moodledata&#039; directory. This does not work on all systems - see your host/administrator. Create a file called .htaccess containing only the following lines:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apache 2.2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
order deny,allow&lt;br /&gt;
deny from all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Apache 2.4&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Require all denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Start Moodle install ==&lt;br /&gt;
It&#039;s now time to run the installer to create the database tables and configure your new site. The recommended method is to use the command line installer. If you cannot do this for any reason (e.g. on a Windows server) the web-based installer is still available.&lt;br /&gt;
=== Command line installer ===&lt;br /&gt;
It&#039;s best to run the command line as your system&#039;s web user. You need to know what that is - see your system&#039;s documentation (e.g. Ubuntu/Debian is &#039;www-data&#039;, Centos is &#039;apache&#039;)&lt;br /&gt;
* Example of using the command-line (as root - substitute &#039;www-data&#039; for your web user):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# chown www-data /path/to/moodle&lt;br /&gt;
# cd /path/to/moodle/admin/cli&lt;br /&gt;
# sudo -u www-data /usr/bin/php install.php&lt;br /&gt;
# chown -R root /path/to/moodle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The chowns allow the script to write a new config.php file. More information about the options can be found using &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# php install.php --help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You will be asked for other settings that have not been discussed on this page - if unsure just accept the defaults. For a full discussion see [[Administration via command line]]&lt;br /&gt;
=== Web based installer ===&lt;br /&gt;
For ease of use you can install Moodle via the web. We recommend configuring your web server so that the page is not publicly accessible until the installation is complete.&lt;br /&gt;
&lt;br /&gt;
To run the web installer script, just go to your Moodle&#039;s main URL using a web browser.&lt;br /&gt;
&lt;br /&gt;
The installation process will take you through a number of pages. You should be asked to confirm the copyright, see the database tables being created, supply administrator account details and supply the site details. The database creation can take some time - please be patient. You should eventually end up at the Moodle front page with an invitation to create a new course. &lt;br /&gt;
&lt;br /&gt;
It is very likely that you will be asked to download the new config.php file and upload it to your Moodle installation - just follow the on-screen instructions.&lt;br /&gt;
&lt;br /&gt;
=== Plesk and cPanel ===&lt;br /&gt;
&lt;br /&gt;
To install Plesk on your Ubuntu server for managing multiple websites, including your Moodle-based training website, you should follow these steps:&lt;br /&gt;
&lt;br /&gt;
1. Connect to the server via SSH.&lt;br /&gt;
&lt;br /&gt;
2. Install the software-properties-common package to manage repositories:&lt;br /&gt;
 apt-get install software-properties-common&lt;br /&gt;
&lt;br /&gt;
3. Add the PPA repository:&lt;br /&gt;
 add-apt-repository ppa:ondrej/php&lt;br /&gt;
&lt;br /&gt;
4. Install PHP 7.2:&lt;br /&gt;
 apt -y install php7.2&lt;br /&gt;
&lt;br /&gt;
5. Install necessary PHP modules (example):&lt;br /&gt;
 apt install -y php7.2-{bcmath,bz2,cli,common,curl,dev,fpm,gd,gmp,imagick,imap,intl,json,mbstring,mysql,opcache,soap,ssh2,xml,xmlrpc,zip}&lt;br /&gt;
&lt;br /&gt;
6. Register the PHP handler in Plesk:&lt;br /&gt;
 plesk bin php_handler --add -displayname php72-fpm-custom -path /usr/sbin/php-fpm7.2 -phpini /etc/php/7.2/fpm/php.ini -type fpm -id php72-fpm-custom -clipath /usr/bin/php -service php7.2-fpm -poold /etc/php/7.2/fpm/pool.d&lt;br /&gt;
&lt;br /&gt;
Plesk will handle the installation of Apache, MariaDB/MySQL, PHP, and other necessary components. You can then proceed with the Moodle installation as per the Moodle documentation.&lt;br /&gt;
&lt;br /&gt;
==Final configuration==&lt;br /&gt;
=== Settings within Moodle ===&lt;br /&gt;
There are a number of options within the Moodle Site Administration screens (accessible from the &#039;Site administration&#039; tab in the &#039;Administration&#039; block (Classic theme) or the Site administration button in the navigation bar (Boost). Here are a few of the more important ones that you will probably want to check:&lt;br /&gt;
* &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Email &amp;gt; [[Mail configuration#Outgoing mail configuration|Outgoing mail configuration]]&#039;&#039;: Set your smtp server and authentication if required (so your Moodle site can send emails). You can also set a norepy email on this page.&lt;br /&gt;
* &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Server &amp;gt; Support contact&#039;&#039;. Set your support contact email. &lt;br /&gt;
* &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; System paths&#039;&#039;: Set the paths to du, dot and aspell binaries.&lt;br /&gt;
* &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;: If you are behind a firewall you may need to set your proxy credentials in the &#039;Web proxy&#039; section.&lt;br /&gt;
* &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Location &amp;gt; Update timezones&#039;&#039;: Run this to make sure your timezone information is up to date. (more info [[Location]])&lt;br /&gt;
** [http://php.net/manual/en/timezones.php Set server&#039;s local timezone] inside &amp;lt;tt&amp;gt;php.ini&amp;lt;/tt&amp;gt; (should probably be inside &amp;lt;tt&amp;gt;/etc/php.ini&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;/etc/php.d/date.ini&amp;lt;/tt&amp;gt;, depending on the underlying OS):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Date] &lt;br /&gt;
; Defines the default timezone used by the date functions &lt;br /&gt;
date.timezone = &amp;quot;YOUR LOCAL TIMEZONE&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Remaining tasks ===&lt;br /&gt;
* &#039;&#039;&#039;Configure Cron&#039;&#039;&#039;: Moodle&#039;s background tasks (e.g. sending out forum emails and performing course backups) are performed by a script which you can set to execute at specific times of the day. This is known as a cron script. Please refer to the [[Cron|Cron instructions]].&lt;br /&gt;
* &#039;&#039;&#039;Set up backups&#039;&#039;&#039;: See [[Site backup]] and [[Automated course backup]].&lt;br /&gt;
* &#039;&#039;&#039;Secure your Moodle site&#039;&#039;&#039;: Read the [[Security recommendations]]. Also have a look at the Security Checks Section under Site Administration -&amp;gt; Reports -&amp;gt; Security Checks.&lt;br /&gt;
*&#039;&#039;&#039;Increasing the maximum upload size&#039;&#039;&#039; See [[Installation FAQ]] Maximum upload file size - how to change it?&lt;br /&gt;
* &#039;&#039;&#039;Check mail works&#039;&#039;&#039; : From Site administration &amp;gt; Server &amp;gt; Test outgoing mail configuration, use the link to send yourself a test email. Don&#039;t be tempted to skip this step.&lt;br /&gt;
=== Installation is complete :) ===&lt;br /&gt;
* Create a new course: You can now access Moodle through your web browser (using the same URL as you set during the install process), log in as your admin user and create a new course. See [[Adding a new course|create a new course]].&lt;br /&gt;
* Now that your site is running, when you&#039;ve got a chance, consider seeing how you can maximize its performance by having a look at [[Performance recommendations]].&lt;br /&gt;
=== If something goes wrong... ===&lt;br /&gt;
Here are some things you should try...&lt;br /&gt;
* Check the [[Installation FAQ]]&lt;br /&gt;
* Check your file permissions carefully. Can your web server read (but not write) the Moodle program files? Can your web server read and write your Moodle data directory? If you don&#039;t fully understand how file ownership and permissions work on your operating system it would be time very well spent to find out.&lt;br /&gt;
* Check your database permissions. Have you set up your database user with the correct rights and permissions for your configuration (especially if the web server and database server are different machines)?&lt;br /&gt;
* Create your [[Configuration file]] (config.php) by hand. Copy config-dist.php (in the root of the Moodle program directory) to config.php, edit it and set your database/site options there. Installation will continue from the right place. &lt;br /&gt;
* Once you have a config.php (see previous tip) you can edit it to turn on debugging (in section 8). This may give you extra information to help track down a problem. If you have access, check your web server error log(s).&lt;br /&gt;
* Re-check your php.ini / .htaccess settings. Are they appropriate (e.g. memory_limit), did you edit the correct php.ini / .htaccess file and (if required) did you restart the web server after making changes?&lt;br /&gt;
* Did you include any non-core (optional) plugins, themes or other code before starting the installation script? If so, remove it and try again (it may be broken or incompatible).&lt;br /&gt;
* Explain your problem in the [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum]. &#039;&#039;&#039;PLEASE&#039;&#039;&#039; list your software versions; explain what you did, what happened and what error messages you saw (if any); explain what you tried. There is no such thing as &#039;nothing&#039;, even a blank page is something!&lt;br /&gt;
== Platform specific instructions ==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Much of this information is provided by the community. It may not have been checked and may be out of date. Please read in conjunction with the above installation instructions.&lt;br /&gt;
* [[Windows installation]]&lt;br /&gt;
** [[Installing Moodle on SmarterASP.NET]]&lt;br /&gt;
* [[Unix or Linux Installation]]&lt;br /&gt;
* [[Step-by-step Installation Guide for Ubuntu]]&lt;br /&gt;
* [[Mac Installation]]&lt;br /&gt;
* [[Amazon EC2 Cloud Services Installation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[es:Instalación de moodle]]&lt;br /&gt;
[[de:Installation von Moodle]]&lt;br /&gt;
[[fr:Installation de Moodle]]&lt;br /&gt;
[[ja:Moodleのインストール]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Xampp_Installer_FAQ&amp;diff=154760</id>
		<title>Xampp Installer FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Xampp_Installer_FAQ&amp;diff=154760"/>
		<updated>2025-11-24T16:20:49Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* We have outgrown XAMPP so what is next? */ removing Oracle (MDL-83172)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}The &#039;&#039;&#039;Xampp Installer&#039;&#039;&#039; package has been designed for an easy installation of Moodle onto a standalone computer. This, in effect, has allowed a lot of people who do not have extensive IT skills to get a private Moodle up and running quickly and easily. &lt;br /&gt;
&lt;br /&gt;
The Xampp Installer package consists of &#039;&#039;&#039;Xampp-Lite&#039;&#039;&#039;, &#039;&#039;&#039;Apache, MySQL, PHP&#039;&#039;&#039; and &#039;&#039;&#039;Moodle&#039;&#039;&#039;. As well, some very kind and thoughtful person has integrated &#039;&#039;&#039;phpMyAdmin&#039;&#039;&#039; into the package, which has a lot of benefits for anyone wanting to learn a lot more about Moodle at the nuts and bolts level.  &lt;br /&gt;
&lt;br /&gt;
At this time, there is a development release of Moodle 2.0 in the Downloads area, so please download it and have a play. If you find anything that does not work, please enter it as an item in Moodle Tracker and ask a question in either the General or Windows forums.  &lt;br /&gt;
&lt;br /&gt;
This FAQ is a set of simple questions that seem to be recurring in the forums.&lt;br /&gt;
&lt;br /&gt;
== Where should I use the full Moodle Windows XAMPP Installer package? ==&lt;br /&gt;
The [http://download.moodle.org/windows/ Windows XAMPP Installer] is a very simplistic package that has pre-configured Apache, PHP, MySQL And the latest releases of Moodle 1.9 and a version of Moodle 2.0. It was set up specifically for the standalone Windows environments, like XP and Vista. The Moodle/Windows XAMPP Installer is very handy for Teachers to use on their personal computers, or laptops, to develop courses they can backup then transport to their production sites. As a production site, it is useful on a very small LAN and for a small number of users, perhaps 20 or 25 at a time. Any more users and there are resource issues. It is not useful for large numbers of students or a full production web site.&lt;br /&gt;
&lt;br /&gt;
This version of the XAMPP installer is modified for the Moodle installation. The full XAMPP Installer package is produced by [http://www.apachefriends.org/en/xampp-windows.html Apache Friends] and does not include Moodle. You can use the XAMPP Installer in other OS&#039;s but you need to get more information from [http://www.apachefriends.org/en/xampp-windows.html Apache Friends] about how to use it. Bear in mind though that many distros of Linux include Apache, PHP and a database, MySQL or PostGres, as native, why would you want to use it. XAMPP is also used as a core module of some [http://www.astahost.com/info.php/run-webserver-usb-stick-windows-guide_t14970.html Web on a Stick (WOS)] services, that is, it allows you to carry your Moodle around with you on your USB, so you would only need a [http://download.moodle.org Standard Moodle Package] install for a USB.&lt;br /&gt;
&lt;br /&gt;
If you wanted to create a test site that is easy to reinstall, then the [http://download.moodle.org/windows/ Windows XAMPP Installer] is probably the easiest to use. While it obviously cannot replicate environmental, that is platform, issues, it can be handy for just about anything else. &lt;br /&gt;
&lt;br /&gt;
== Can I migrate my XAMPP Moodle to the Web? ==&lt;br /&gt;
There is no special coding inside Moodle that specifically connects it to XAMPP so there is no reason to think you cannot, just not in the XAMPP environment. Once set up, try to upload the Moodle files to a web site, they should upload without difficulty. The problem is going to be accessing the PHP and mySQL files to make it work and you could probably get away with this if you reuse the existing config.php file on your production site and the one on your XAMPP install. If you already have a working production site, then all you may want to do is to upgrade it to a newer version, and you can do that in any number of other ways. What you can also do is to download and unzip a Standard Moodle, then replace the existing files with updated files. While this may be a little messier than using CVS updates, it should still work. Whatever you try, or whenever you do anything like this, you need a long conversation with your host service. They may not appreciate you trying something like this without their help or knowledge.&lt;br /&gt;
&lt;br /&gt;
==We are using Windows Server, IIS and the Xampp installer is just not working==&lt;br /&gt;
This happens a lot more than people like to think it does. In these circumstances, you either use Xampp or you use IIS. Moodle will run quite comfortably in either environment, even if there is a bit of tweaking to IIS and PHP you may have to complete for it to run successfully. &#039;&#039;See below for more information&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Why is Xampp not running in my Windows 7?==&lt;br /&gt;
There is any one of a number of reasons why this may happen, but the more common reasons are simple, Windows 7 automatically starts IIS as a service. As a consequence, there is a conflict between the Xampp installed Apache and IIS, so Windows 7 assigns preference to IIS and will not see Apache. You can stop IIS before Windows 7 starts it up in the configuration files. An alternative is to reset the port that IIS listens to something other than Port 80 in the IIS ini file. The other reasons the Windows 7 refuses to allow Xampp to run are often based around permissions.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Think Smarter&#039;&#039;&#039;&#039;&#039;: While it may not be Xampp, the addition of Xampp may be far more problematic than using what is there. Consider downloading and installing PHP and MySQL, if PHP is not already installed, and if they work, try an install of a Standard Moodle package. This may be a better option and Moodle does not care about its server environment. Microsoft is insisting on having its own way, so the ultimate alternative may be to not use Windows at all.&lt;br /&gt;
&lt;br /&gt;
== XAMPP or AppServ? ==&lt;br /&gt;
Both the [http://www.apachefriends.org/en/xampp-windows.html XAMPP] and [http://www.appservnetwork.com/ AppServ] packages are useful if you want to install a web server as an independent environment. They offer similar things and it is difficult to differentiate between them. Neither package is offering Moodle as native, but Moodle will comfortably run in either, once they are set up and configured properly.&lt;br /&gt;
&lt;br /&gt;
== How does the Xampp/Moodle package actually install? ==&lt;br /&gt;
It does so quite easily. As a rule of thumb, it does not usually write critical elements to the Registry. This makes it considerably easier to uninstall. A simple deletion is normally all that is required, and a step through the Registry deleting anything connected to Xampp will clean it all up. The MySQL installation, however, will create the C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data folder. This folder contains the database you create when installing Moodle. If you install, say, MediaWiki, it will create the database and write the tables in the same folder.&lt;br /&gt;
&lt;br /&gt;
== I have just installed Moodle using the XAMPP Installer, but Apache will not start ==&lt;br /&gt;
Do the simple first, have you got Skype installed and running? If it is go to Skype &amp;gt; File &amp;gt; Options &amp;gt; Connection and uncheck the &amp;quot;Use port 80...&amp;quot; box after reading the note below it. This is the usual problem. For more information go to the [http://skypetips.internetvisitation.org/web_pages/faq.html Skype FAQ page].&lt;br /&gt;
&lt;br /&gt;
Do the more complex next. XAMPP will usually set the Apache httpd.conf file right, but sometimes, ok, rarely, and then usually when someone has decided that they want to use a different Server root and different document root than the default, it does not always go right. If there is no Skype on the computer, then open the httpd.conf file in your text editor, NOT Word, not Notepad, and check the lines:&lt;br /&gt;
  36: ServerRoot &amp;quot;G:/Server/Apache&amp;quot;  &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;or your path to the Apache server folder and&lt;br /&gt;
  179: DocumentRoot &amp;quot;G:/Server/Apache/htdocs&amp;quot;   &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;or your path to the place you put your web documents.   &lt;br /&gt;
The third option is that occasionally, the Windows &amp;quot;Hosts&amp;quot; file will sometimes get in the way. Go to C:\Windows\System32\drivers\etc. and you will find there a file called &amp;quot;hosts&amp;quot;. There is no file extension, just that name. Open the file in your text editor and there should be a line there that reads &lt;br /&gt;
  127.0.0.1       localhost       # this is my host server on my local machine&lt;br /&gt;
If it does not exist, enter it. If it reads something like .::1 localhost or anything else, then replace it with the line above. Make sure that every other line has a # at the start of the line, these are comments, not valid text for Windows to use. If you have anything else there uncommented, then comment it out. As usual in Windows, you need to restart.&lt;br /&gt;
&lt;br /&gt;
If these are right, and you still cannot access your Apache server after starting the XAMPP Controller, then it is suggested you not waste time on it, delete it all and reinstall, just make careful note of everything, normal or abnormal, that happens during the install process. Don&#039;t panic here, if it does not work first time, it will the second, or third, or...&lt;br /&gt;
&lt;br /&gt;
== My test Moodle won&#039;t start even after I run XAMPP&#039;s &amp;quot;Moodle Start.exe&amp;quot;, the localhost changes to &amp;lt;nowiki&amp;gt;http://localhost/xampp/&amp;lt;/nowiki&amp;gt; ==&lt;br /&gt;
Basically your browser does not know where Moodle is located. This could be for any number of reasons. Usually this is an issue with an Apache configuration or with the browser address.&lt;br /&gt;
&lt;br /&gt;
Browser address alternatives. Try:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/xampp/moodle&amp;lt;/nowiki&amp;gt; or&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/moodle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Remember, there are two different Xampp packages, the one you get when you download from Moodle.org that has Moodle init, aka XamppLite, and afull package directly from Apache Friends. In an XAMPP package installed from Apachefriends.org, Moodle should be installed in the htdocs folder along with a folder called XAMPP. Edit the htdocs/index.htm file so that both a HTML link to the XAMPP and Moodle sites are shown.&lt;br /&gt;
&lt;br /&gt;
You could check or change the Apache httpd.conf file so that the web server links directly to Moodle when &amp;quot;Localhost&amp;quot; or the desktop&#039;s IP is typed by another machine on the local network.&lt;br /&gt;
&lt;br /&gt;
Go to &#039;&#039;&#039;C:\Moodle\server\apache\conf&#039;&#039;&#039; (or whatever your path may be)&lt;br /&gt;
Open &#039;&#039;&#039;httpd.conf&#039;&#039;&#039; file in your text editor. &lt;br /&gt;
DocumentRoot variable should read:&lt;br /&gt;
  DocumentRoot &amp;quot;C:/Moodle/server/moodle&amp;quot; (Your path to the Moodle index.php file)&lt;br /&gt;
and the Directory&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;Directory &amp;quot;C:/Moodle/server/moodle&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt; (Your path to the Moodle index.php file)&lt;br /&gt;
Make sure the paths specified are correct. &lt;br /&gt;
&lt;br /&gt;
After that, check the &#039;&#039;&#039;moodle/config.php&#039;&#039;&#039; file which is located in your Directory path folder.&lt;br /&gt;
Look for the line:&lt;br /&gt;
  $CFG-&amp;gt;wwwroot   = &amp;lt;nowiki&amp;gt;&#039;http://localhost&#039;&amp;lt;/nowiki&amp;gt;;&lt;br /&gt;
If the wwwroot variable reads anything else, then change it to read the same as above. &lt;br /&gt;
&lt;br /&gt;
If none of these things work, then delete your Moodle and reinstall, most likely something has not installed properly.&lt;br /&gt;
&lt;br /&gt;
== Can I use Moodle pages from the XAMPP Installer to upgrade a production server? ==&lt;br /&gt;
Yes, of course you can. There is no difference between the two in the Moodle PHP pages, just the environments in which they sit. If you have the &#039;&#039;&#039;patience&#039;&#039;&#039; and the understanding, you can reverse a XAMPP installation and remove XAMPP altogether, or rather, extract Apache, PHP, MySQL and Moodle from the XAMPP shell, and it will still run. Why bother, it is easier to just install Apache, MySQL and PHP as standalone applications.&lt;br /&gt;
&lt;br /&gt;
== Can I use XAMPP installed Moodle on a network? ==&lt;br /&gt;
Yes, of course. There are some limitations though. This installer was never designed for a production site, so it has some issues with hardware resources. The more people that are on line simultaneously, the greater the demands, obviously. However, the memory requirement for the server increases dramatically and therefore uses up system resources too quickly. &lt;br /&gt;
&lt;br /&gt;
Perhaps a good application of the XAMPP Moodle across a network is for a course developer Moodle. That is, instead of tying up the production site, your course writers, Teachers, Course Creators, whomever, have a localized Moodle that they alone have access to prepare courses, which are then uploaded to the production site.&lt;br /&gt;
&lt;br /&gt;
== If we do use XAMPP Installer that way, can courses be directly uploaded to our production site? ==&lt;br /&gt;
Yes, there is a couple of ways of doing it, either backup and restore, usually the fastest, or copy and paste, time-consuming but can assure complete accuracy. But there is a couple of issues in copy and pasting. The first is that images do not copy and paste. You still have to upload your images to your production site then you have to make sure that the url pointers are aiming at the right files. Be careful here, do not get fooled into thinking that the images are OK, just because they are displaying. The production site is referencing the XAMPP site for images, which works only as long as the XAMPP Moodle is online. The same applies to links, cross referencing, and other links to documentation.&lt;br /&gt;
&lt;br /&gt;
== How can I make my XAMPP Moodle accessible/viewable across a small LAN? ==&lt;br /&gt;
The same way it is done for every other Moodle. The XAMPP Moodle installs to a &amp;quot;localhost&amp;quot; and if you go to the config.php file in the Moodle folder, you will find the line:&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$CFG-&amp;gt;wwwroot   = &amp;quot;http://localhost/&amp;quot;;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
Change that to read &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;$CFG-&amp;gt;wwwroot   = &amp;quot;http://192.168.1.109/&amp;quot;;&amp;lt;/nowiki&amp;gt; //or whatever you have given as an address of your server machine.&lt;br /&gt;
That should allow your Moodle to be accessible from elsewhere. The restriction here is that this address is not set by DHCP, it is fixed.&lt;br /&gt;
&lt;br /&gt;
== I keep getting the message that the maintainence cron file has not run in the last 24 hours. How can I stop that? ==&lt;br /&gt;
Run the cron job. Most Windows users are unfamiliar with the term &amp;quot;cron job&amp;quot; but essentially, it is a batch file that can be automated. Perhaps the simplest way of dealing with it is to set up a [https://docs.moodle.org/en/Cron#Managing_Cron_on_Windows_systems Scheduled Task]. The problem is that the Windows Scheduler does not always do its job like it is supposed to in Windows XP.&lt;br /&gt;
&lt;br /&gt;
== I want to install and use MediaWiki in my XAMPP installed Moodle, but how? ==&lt;br /&gt;
This is not that difficult. In the XAMPP installed Moodle the Server Root can lie, for example, in the C:/Server/Apache folder and Document Root lies in C:/Server/Moodle folder, both paths are generally the same. The installation of the MediaWiki can then occur in the Moodle folder. There are no special provisions for the different use of database engines, Moodle using ISAM and MediaWiki using InnoDB, that can all be taken care of by PHP and MySQL. To make it work properly though, you may want to consider using VHosts in Apache, segmenting the server.&lt;br /&gt;
&lt;br /&gt;
== Can I use the Moodle XAMPP Installer for a portable webserver ==&lt;br /&gt;
It is best not to try actually. There are a number of &amp;quot;Webservers On a Stick&amp;quot;, WOS, available, Server2Go to name just one of these is more appropriate for a portable Moodle. Download and instal a WOS that has as native, Apache, PHP and MySQL, or a similar configuration, then install Moodle to the Document Root in the WOS. You could also have a look at Poodle (portable Moodle) developed by MAF Learning Technologies for use in isolated and remote areas  [http://bit.ly/crRGsl]&lt;br /&gt;
&lt;br /&gt;
== We have outgrown XAMPP so what is next? ==&lt;br /&gt;
At this point you need to carefully consider just what do you want in the way of a Moodle. The XAMPP is a good learning and development environment for Teachers and Course Creators, but it is, more or less, a benign environment. All the major problems have been taken care of which allows it to fulfill its primary purpose, a standalone installation for teachers to develop courses in, outside of normal hours and without threatening the production site. What is nxt is what server environment do you want to use? [https://docs.moodle.org/en/index.php?title=Beginning_Administration_FAQ#Installation_on_a_Windows_or_a_Linux_server Windows or Linux?] For your web server, Apache is credible. It is scalable and, despite its apocryphal beginnings, is a stable and popular server. PHP is required, irrespective of the environment - Moodle is written in it. &lt;br /&gt;
&lt;br /&gt;
The database environment is your choice, as long as it is SQL compliant, it should make little difference what database server you choose. In saying that though, realize that each database manufacturer uses their own implementation of SQL. The Moodle database interoperability layer is incredibly complex and is limited to 3 database environments, MySQL, MSSQL and PostGres because of the implementation of the SQL in the database environments. In the main, this is OK, but in detail, it can be something of a minefield for anyone not fully conversant with all the different flavors of SQL. However, in these pages the majority support seems to be for MySQL. This could be because it is relatively easy to install, the right price and, if I have Moodle history right, the first database used in Moodle. This creates the &amp;quot;AMP&amp;quot; part of the acronym - Apache, MySQL, PHP, with either Windows or Linux making up the first letter. &lt;br /&gt;
&lt;br /&gt;
To install Moodle in this environment is a little more demanding than XAMPP, but you end up with a stable and scalable Moodle. You can also add in so much, like a MediaWiki, if you do not like the native Moodle Wiki, or any other web tools or applications you like. You can also use Moodle for your public site - in your own server. You can also add in Mahara, or create a Joomla or Drupal site, adding Moodle, Mahara and MediaWiki, the environment is seriously flexible. &lt;br /&gt;
&lt;br /&gt;
One issue that is not always clear, is that of accessing your database. You may have gotten used to using the [http://moodle.org/mod/data/view.php?d=13&amp;amp;rid=448 phpMyAdmin plugin] to look inside your database and find yourself somewhat at a loss to realise that your new server model Moodle does not include that as a standard Module. Download it from the link above and unzip it to the Moodle/admin folder. Go to the Administration &amp;gt; Server &amp;gt; Database page and phpMyAdmin will automatically install. Alternatively, if you want to, you can download a full version of phpMyAdmin and unzip it to its own folder. As long as you have the password and Root user name correct, phpMyAdmin can act as an additional supervisory tool for accessing any and all SQL databases you use in you web site.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Installation_FAQ&amp;diff=154759</id>
		<title>Installation FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Installation_FAQ&amp;diff=154759"/>
		<updated>2025-11-24T16:20:08Z</updated>

		<summary type="html">&lt;p&gt;Tsala: /* What Dynamic Extensions do I really need uncommented in my php.ini file? What else do I need to change? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
== System information needed for Installation problems forum ==&lt;br /&gt;
When posting questions to the [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum], try to provide as much background information as possible about your Moodle system. Consider providing some or all of the following:&lt;br /&gt;
* Server Operating System name (version also if possible): &lt;br /&gt;
* PHP version (e.g. PHP 5.4.4)&lt;br /&gt;
* Database server type and version (e.g. MySQL 5.5.18)&lt;br /&gt;
* Browser and version (e.g. Firefox, IE8):&lt;br /&gt;
* Moodle version (e.g. 3.0):&lt;br /&gt;
* Moodle install type? (New/Upgrade):&lt;br /&gt;
* Moodle config.php attached (please remove passwords):&lt;br /&gt;
* Phpinfo attached?:&lt;br /&gt;
&lt;br /&gt;
Make sure you provide a sensible description (never HELP! or URGENT!) and a full description of what you did and what happened. Copy and paste any error messages accurately in full. &#039;Nothing&#039; is not a symptom, even a blank page is something!&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
==PHP - is it installed and what version do I have?==&lt;br /&gt;
&lt;br /&gt;
Make a new file on your web site called &#039;&#039;info.php&#039;&#039;, containing the following text, and call it from your browser:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
&amp;lt;?PHP phpinfo() ?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If nothing happens then you don&#039;t have PHP installed or your webserver is not configured to handle .php files properly. See the installation docs for some information about where to download it for your computer. See the [[phpinfo]] page for details about the content of this page.&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==I am being told that I need the &#039;&#039;&#039;intl php plugin&#039;&#039;&#039; to continue to install Moodle 2.x==&lt;br /&gt;
The intl.dll from Zend is part of the PHP 5.2.8 release and later. It is aimed at improving the internationalization of php pages and Moodle 2.x uses it as part of this process. If your install is on a local machine or network, then you can download the latest version of PHP and update your PHP. You then have to uncomment all the required dynamic extensions you need, including the php_intl.dll extension. The problem is then solved. If the install is on a host server, then you need to contact your host and ask them to do the same. As an alternative, you can unzip/untar the download file, copy and paste the intl.dll file to your php/ext folder and include the line:&lt;br /&gt;
  extension=php_intl.dll&lt;br /&gt;
in the Dynamic Extensions section of your php.ini file.&lt;br /&gt;
&lt;br /&gt;
You can also set the error level using:&lt;br /&gt;
  intl.error_level = E_WARNING &lt;br /&gt;
but this is not essential&lt;br /&gt;
&lt;br /&gt;
If you are using a Linux install, use your system package manager or specify compilation flag.&lt;br /&gt;
    * Debian 5.0 (&amp;amp; Ubuntu) use: apt-get install php-intl or apt-get install php5-intl &lt;br /&gt;
    * CentOS 5.5 (&amp;amp; RedHat) you should (probably) be using php 5.3 from remi and then use: yum install php-intl&lt;br /&gt;
&lt;br /&gt;
This technique can be applied to any updated dynamic extension from Zend. You may want to use later dll files in your php/ext folder, you can do so by doing the same as above, but be careful, your version may not be able to take full advantage of the extension, or some very new extensions may cause an unexpected instability. The best option is still to update on a regular basis, perhaps once a year or so for the PHP.&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
===What Dynamic Extensions do I really need uncommented in my php.ini file? What else do I need to change?===&lt;br /&gt;
This assumes you have complete control over the installation and running of your server, if your Moodle is hosted, you need to do something different, which is also discussed below. In the php.ini you need to delete the semi-colon, the ;, from the start of any line to uncomment it. For Moodle, you really should only need to change some values, and make sure the extensions you require are available. These are:&lt;br /&gt;
&lt;br /&gt;
Resource Limits&lt;br /&gt;
  memory_limit = 128M     //This is the maximum it requires and on a shared server you may get much less. &lt;br /&gt;
&lt;br /&gt;
Data Handling &lt;br /&gt;
  post_max_size = 512M    //This allows postings of up to 512MB, but set it to suit yourself and your circumstances&lt;br /&gt;
&lt;br /&gt;
Paths and Directories&lt;br /&gt;
  doc_root =&amp;quot;driveletter:\path\to\server\active\web\directory&amp;quot;  (e.g. d:\Apache\htdocs or e:\iis\wwwroot )&lt;br /&gt;
  and&lt;br /&gt;
  extension_dir = &amp;quot;driveletter:\path\to\php\ext&amp;quot; (e.g. d:\php\ext or e:\iis\php\ext)&lt;br /&gt;
&lt;br /&gt;
File Uploads&lt;br /&gt;
  upload_max_filesize = 512M    (This is different from the post_max_size this is for file uploads.)&lt;br /&gt;
&lt;br /&gt;
Dynamic Extensions (&#039;&#039;&#039;Windows Only&#039;&#039;&#039;)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PHP 5.3.x&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  extension=php_curl.dll&lt;br /&gt;
  extension=php_gd2.dll&lt;br /&gt;
  extension=php_gettext.dll&lt;br /&gt;
  extension=php_intl.dll&lt;br /&gt;
  extension=php_imap.dll&lt;br /&gt;
  extension=php_ldap.dll&lt;br /&gt;
  extension=php_mbstring.dll&lt;br /&gt;
  extension=php_exif.dll      ; Must be after mbstring as it depends on it&lt;br /&gt;
  extension=php_mysql.dll&lt;br /&gt;
  extension=php_mysqli.dll&lt;br /&gt;
  extension=php_openssl.dll&lt;br /&gt;
  extension=php_pdo_mssql.dll&lt;br /&gt;
  extension=php_pdo_mysql.dll&lt;br /&gt;
  extension=php_soap.dll&lt;br /&gt;
  extension=php_sockets.dll&lt;br /&gt;
  extension=php_sqlite.dll&lt;br /&gt;
  extension=php_xmlrpc.dll&lt;br /&gt;
  extension=php_zip.dll&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These edits and Dynamic extensions cover a range of options here, there are a number of other possibilities, but these listed are the most common ones. Unless you have a specific need, there may not be any reason to deviate from these settings, but if you do, make sure you know what is going to happen. These extensions will also allow you to successfully install and run many other PHP applications. &lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
==What &amp;amp; where are Moodle&#039;s configuration settings stored?==&lt;br /&gt;
Configuration settings are stored in the config.php file stored in your moodle folder. This file is created during the installation process. If there is a problem and the installation cannot create the file, you can try creating it manually from the [[Configuration file]] docs. &lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
==What external domains does a Moodle site contact?==&lt;br /&gt;
A new installation of Moodle contacts a number of outside domains (using standard HTTP(S) ports) for certain tasks. &lt;br /&gt;
&lt;br /&gt;
- Checking for available updates for core and its plugins is on by default. The endpoint is https://download.moodle.org/api/1.3/updates.php. This is controlled by the setting &#039;&#039;Site administration &amp;gt; Server &amp;gt; Automatically check for available updates&#039;&#039;, which can be adjusted in the Scheduled task &#039;Check for updates&#039;.&lt;br /&gt;
&lt;br /&gt;
- Site registration checks once a week if you are registered or not. This is on by default. Even if you don&#039;t register, it still checks at the domain stats.moodle.org. This is controlled by the Scheduled task &#039;Site registration&#039;.&lt;br /&gt;
&lt;br /&gt;
- Installed language packs are updated by the Scheduled task &#039;Update all installed language packs&#039; which by default runs daily at 04:19. This is on by default. It goes to https://download.moodle.org/langpack/ and its subfolders for the various packs it is checking on. When this task runs, is also updates the list of Available language packs as well.&lt;br /&gt;
&lt;br /&gt;
- The Moodle Campaign tool which is on the &#039;&#039;Site administration &amp;gt; Notifications&#039;&#039; page makes updates to get image banners, at least. Details are here in the original tracker: https://tracker.moodle.org/browse/MDL-68320. This was added to Moodle 3.9. There is no administration setting to control this. Currently, the only way to disable this is to add a CFG setting in the config.php file. How to do that is documented in the tracker above, using $CFG-&amp;gt;showcampaigncontent = false; about which also see the config-dist.php file as well. &lt;br /&gt;
&lt;br /&gt;
- The MathJax filter is on by default and connects to https://cdn.jsdelivr.net/npm/mathjax@2.7.8/MathJax.js - even if you aren&#039;t using it, it still tries to connect. This is controlled in &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Filters &amp;gt; MathJax &amp;gt; Settings&#039;&#039;. To stop it, remove the default MathJax URL settings there and leave it blank.&lt;br /&gt;
&lt;br /&gt;
- H5P library updates are on by default. This is controlled by the Scheduled task &#039;Download available H5P content types from h5p.org&#039; which runs by default once a month on the first day of the month.&lt;br /&gt;
&lt;br /&gt;
==Downloading previous releases of Moodle==&lt;br /&gt;
&lt;br /&gt;
Previous versions of Moodle that are not found on [http://download.moodle.org Moodle downloads] may be downloaded from &amp;lt;nowiki&amp;gt;http://download.moodle.org/stable[version_number]/&amp;lt;/nowiki&amp;gt; where [version_number] is the number without a point. For example http://download.moodle.org/stable22/ or http://download.moodle.org/stable27/&lt;br /&gt;
&lt;br /&gt;
You&#039;ll see a directory tree with the files displayed. Click on the one you want and download as normal. If you require the latest update of the version, scroll to the end of the list and download the &amp;quot;moodle-latest&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Windows Packages&#039;&#039;&#039;: To download other releases not found in [http://download.moodle.org/windows/ Moodle packages for Windows], use this URL:&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;http://download.moodle.org/windows/MoodleWindowsInstaller-latest-[version_number].zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Mac Packages&#039;&#039;&#039;: To download other releases not found in [https://download.moodle.org/macosx/ Mac packages], use this URLs:&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;https://download.moodle.org/macosx/Moodle4Mac-[version_number].zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For details of how to download a particular weekly version, see the post [https://moodle.org/mod/forum/discuss.php?d=346698#p1398162 Looking for VERY specific release of older Moodle].&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
== How to enable and check PHP error logs==&lt;br /&gt;
PHP can be set up to log errors in a variety of different ways: two of these involve the use of the php.ini file and the ini_set command.  See [[dev:PHP error logs|PHP_error_logs]].&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Could not find a top level course&amp;quot; ==&lt;br /&gt;
If this appears immediately after you have attempted to install Moodle it almost certainly means that the installation did not complete. A complete installation will ask you for the administrator profile and to name the site just before it completes. Check your logs for errors. Then drop the database and start again. If you used the web-based installer try the command line one. Does your computer definitely have sufficient resource to run Moodle?&lt;br /&gt;
&lt;br /&gt;
==Email copies are not being sent from my forums==&lt;br /&gt;
&lt;br /&gt;
You &#039;&#039;must&#039;&#039; set up cron properly if you want Moodle to send out automatic email from forums, assignments etc. This same process also performs a number of clean-up tasks such as deleting old unconfirmed users, unenrolling old students and so on. Please refer to the [[Cron|cron instructions]].&lt;br /&gt;
&lt;br /&gt;
Tips:&lt;br /&gt;
* Try the default settings in &#039;&#039; Site administration &amp;gt; Server &amp;gt; Email&#039;&#039;. This generally works. Except...&lt;br /&gt;
* On a Windows server you *must* supply the address of an SMTP server (Windows, unlike Unix, does not have a build in mail server) in the above settings page&lt;br /&gt;
* Make sure that &#039;&#039;allowuseremailcharset&#039;&#039; in &#039;&#039;Site administration &amp;gt; Server &amp;gt; Email &amp;gt; Outgoing mail configuration&#039;&#039; is set to No unless you really know what you are doing. Setting this to Yes can cause a problem in some versions of Moodle.&lt;br /&gt;
* Check your firewall or ask your network administrator. Many mail servers are heavily locked down and you may need permission to send mail through them.&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
==I can&#039;t log in - I just stay stuck on the login screen==&lt;br /&gt;
&lt;br /&gt;
This may also apply if you are seeing  “Your session has timed out. Please login again” or &amp;quot;A server error that affects your login session was detected. Please login again or restart your browser&amp;quot; and cannot log in.&lt;br /&gt;
&lt;br /&gt;
The following are possible causes and actions you can take (in no particular order):&lt;br /&gt;
&lt;br /&gt;
* Check first that your main admin account (which will be a manual account) is also a problem. If your users are using an external authentication method (e.g. LDAP) that could be the problem. Isolate the fault and make sure it really is Moodle before going any further.&lt;br /&gt;
* Check that your hard disk is not full or if your server is on shared hosting check that you have not reached your disk space quota. This will prevent new sessions being created and nobody will be able to log in. &lt;br /&gt;
* Carefully check the permissions in your &#039;moodledata&#039; area. The web server needs to be able to write to the &#039;sessions&#039; subdirectory. &lt;br /&gt;
* Your own computer (not your Moodle server) may have a firewall that is stripping referrer information from the browser. Here are some instructions for fixing [http://service1.symantec.com/SUPPORT/nip.nsf/46f26a2d6dafb0a788256bc7005c3fa3/b9b47ad7eddd343b88256c6b006a85a8?OpenDocument&amp;amp;src=bar_sch_nam Norton firewall products].&lt;br /&gt;
* Try deleting the &#039;&#039;sessions&#039;&#039; folder in your moodledata directory (anybody currently logged in will be thrown out)&lt;br /&gt;
* Try deleting cookies on your computer and/or try another browser or another client computer&lt;br /&gt;
* In &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; Session Handling&#039;&#039;, try setting a value for &#039;Cookie prefix&#039;. You can also do this by setting &amp;lt;code&amp;gt;$CFG-&amp;gt;sessioncookie=&#039;something&#039;;&amp;lt;/code&amp;gt; in config.php. This is especially true if you are using multiple Moodles on the same browser. &lt;br /&gt;
* Make sure you have not removed or changed the [[Password salting|Password Salt]] value(s) in config.php. If passwords were created using a salt the correct salt must be in config.php for those passwords to continue to work. This is easily done if you recreate config.php while performing an upgrade and forget to transfer the salt values. &lt;br /&gt;
* Do you have a .htaccess file in your Moodle folder (or its parent directories). If so, is there anything in there that might be causing trouble (strange redirects, access restrictions etc.)?&lt;br /&gt;
* Check the value of &#039;&#039;&#039;mnet_localhost_id&#039;&#039;&#039; in the mdl_config database table. It&#039;s normally 1 but must match the &#039;&#039;&#039;mnet_hostid&#039;&#039;&#039; field in your user records in the mdl_user table for the user to be recognised. It can sometimes get changed spuriously during upgrades or site migrations. &lt;br /&gt;
* Check config.php - it should NOT have any spaces/new lines at the end of code.&lt;br /&gt;
* You are using the correct username and password, yes?&lt;br /&gt;
&lt;br /&gt;
If you are still having problems, read the [[Can not log in|Cannot log in]] page. You &#039;&#039;&#039;could&#039;&#039;&#039; also try changing the admin password. Proceed as if you have lost it - see [[Administration FAQ]].&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
==I log in but the login link doesn&#039;t change. I am logged in and can navigate freely.==&lt;br /&gt;
&lt;br /&gt;
Make sure the URL in your &amp;lt;code&amp;gt;$CFG-&amp;gt;wwwroot&amp;lt;/code&amp;gt; setting is exactly the same as the one you are actually using to access the site.&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
==Uploaded files give &amp;quot;File not found&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
For example: Not Found: The requested URL /moodle/file.php/2/myfile.jpg was not found on this server.&lt;br /&gt;
&lt;br /&gt;
This indicates that slash arguments are not enabled on your web server. Please see [[Using slash arguments]] for details.&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
==Why are all my pages blank?==&lt;br /&gt;
&lt;br /&gt;
One reason might be that PHP has not been configured to support MySQL (or whatever other database you are using). This is common on RedHat and OpenBSD installations. In this case, an error is generated, but since error displays are often disabled by default, all that is seen on the browser is a blank screen. To enable PHP error displays see [[Installation FAQ#How to enable and check PHP error logs|How to enable and check PHP error logs]].&lt;br /&gt;
&lt;br /&gt;
To determine if database support is your problem, insert this as the second line in your &#039;&#039;config.php&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
phpinfo();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then reload the web page. Examine the output closely to see if you chosen database is supported. If not, look for a package you are missing.&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
== Why is a particular page blank or incomplete? ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Check your web server log files!!&#039;&#039;&#039; &lt;br /&gt;
:If a particular page is blank or incomplete (it doesn&#039;t display the footer), before you do anything else switch on [[Debugging]] and  [[Installation FAQ#How to enable and check PHP error logs|check your PHP error logs]]. Having established that PHP error logging is working, reproduce the error. Immediately check the error log file right at the end. Hopefully you will see a PHP error message at or very near the end of the file. This may solve your problem directly or makes it a lot easier to diagnose the problem in the Moodle forums.&lt;br /&gt;
&lt;br /&gt;
*If you are &#039;&#039;&#039;upgrading to a new version of Moodle&#039;&#039;&#039;, check that you do not have an old version of a non-standard block or module installed. Remove any such blocks or modules installed using the admin settings page and start the install process again. However, do also make sure that you have included all optional plugins that were required by your courses. This is particularly common with &amp;quot;editing on&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*If you &#039;&#039;&#039;do not see any blocks listed&#039;&#039;&#039;, turn editing on and remove any blocks that you have added to that page and try reloading.&lt;br /&gt;
&lt;br /&gt;
*You may get this error immediately after &#039;&#039;&#039;selecting a language&#039;&#039;&#039;. At this stage of the installation process your Moodle computer may need to connect to the Internet and download a language pack, so check that the computer can access the Internet by using a browser. Check also that your PHP settings are as given in the Moodle [[Installing Moodle#Requirements|Moodle Requirements]] page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also&#039;&#039;&#039;:&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=97734 PHP configuration error] forum discussion&lt;br /&gt;
&lt;br /&gt;
==Installation hangs when setting-up database tables==&lt;br /&gt;
Sometimes the installation will hang when setting up tables, where only half the page displayed in the browser and/or other outputs are removed.  You may see truncated MySQL statements, or the “Scroll to continue” link is displayed but no “Continue” button is there. &lt;br /&gt;
&lt;br /&gt;
See [[Unexpected installation halts]] for more about solutions that involve:&lt;br /&gt;
*Checking for MySQL limits&lt;br /&gt;
*Checking the .htaccess files &lt;br /&gt;
*Code customizations issues&lt;br /&gt;
*Checking memory limit &lt;br /&gt;
*Upgrade incrementally&lt;br /&gt;
*Fix fopen function&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
==Why can&#039;t I upload a new image into my profile?==&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t see anything on your user profile pages to let you upload user images then it&#039;s usually one of the following:&lt;br /&gt;
*The permissions associated with the role you are using are preventing you from changing your profile picture.&lt;br /&gt;
* GD is not installed, or is not enabled on your server. Make sure &#039;&#039;&#039;GD has been included in your PHP installation&#039;&#039;&#039;. You can check this by going to &#039;&#039;Site Administration &amp;gt; Server &amp;gt; PHP info&#039;&#039; and looking for the gdversion setting. This setting is chosen automatically every time you visit that page. If it shows GD version 1 or version 2 then everything should be fine. Save that configuration page and go back to your user profile.&lt;br /&gt;
* GD is installed, but is in some way corrupt. For instance, [http://moodle.org/mod/forum/discuss.php?d=44271#p386194 see this discussion on empty lines or white spaces in config files.]&lt;br /&gt;
GD is a library that allows image processing. For example, when all is well with your system, and you upload a new profile image, GD compresses the image and produces two thumbnails, one is 100x100 pixels, and the other is 35x35 pixels.&lt;br /&gt;
&lt;br /&gt;
If Moodle thinks GD is not installed, then you will need to &#039;&#039;&#039;install the GD library&#039;&#039;&#039;. &lt;br /&gt;
*On Unix you may need to re-compile PHP with arguments something like this:&lt;br /&gt;
&lt;br /&gt;
 ./configure --with-apxs=/usr/local/apache/bin/apxs --with-xml --with-gd &lt;br /&gt;
 --with-jpeg-dir=/usr/local --with-png-dir=/usr --with-ttf --enable-gd-native-ttf &lt;br /&gt;
 --enable-magic-quotes --with-mysql --enable-sockets --enable-track-vars &lt;br /&gt;
 --enable-versioning --with-zlib&lt;br /&gt;
&lt;br /&gt;
* On Windows this is usually a matter of &amp;quot;turning on&amp;quot; the extension in PHP by editing your php.ini file. To do this remove the semicolon for the php_gd2.dll extension - check that this file is actually present in your php extensions  folder first (search your php.ini for extension_dir to determine where this points to on your hard disk). You should then have a line that looks like this:&lt;br /&gt;
 extension=php_gd2.dll&lt;br /&gt;
&lt;br /&gt;
:Windows users should see the [[Installing AMP|installation instructions]] for further help. &lt;br /&gt;
&lt;br /&gt;
3. Remember to &#039;&#039;&#039;restart your webserver&#039;&#039;&#039; (if possible) and re-visit the Moodle configuration page after making any changes to PHP so it can pick up the correct version of GD.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;See also&#039;&#039;&#039;: Using Moodle forum discussion [http://moodle.org/mod/forum/discuss.php?d=44271 Profile pictures] for additional information.&lt;br /&gt;
&lt;br /&gt;
== Why doesn&#039;t my Moodle site display the time and date correctly? ==&lt;br /&gt;
&lt;br /&gt;
Please check the timezone settings in settings in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Location &amp;gt; Location settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== How do I uninstall Moodle?==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Webhost/manual installation&#039;&#039;&#039;: If you have installed Moodle manually or have installed onto a webhost, follow these steps:&lt;br /&gt;
*Delete the moodle database using this mysql command (or delete using your mysql client, e.g. PHPMyAdmin):&lt;br /&gt;
&amp;lt;pre&amp;gt;sql&amp;gt;DROP DATABASE moodle;&amp;lt;/pre&amp;gt;&lt;br /&gt;
:In the above example replace &#039;moodle&#039; with the name of the moodle database you created when installing.&lt;br /&gt;
*Delete the moodledata directory. If you, or your users, have uploaded materials into this directory take a copy of these before deleting this directory.&lt;br /&gt;
*Delete the moodle directory itself. This will delete all of the moodle PHP script files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;XAMPP windows installation&#039;&#039;&#039;: If you have installed Moodle on windows through the XAMPP package, follow these steps:&lt;br /&gt;
*Open cmd.exe and navigate to this directory within your installation directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;server/mysql/bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Run this command, replacing USERNAME with your database username (the default is &amp;quot;root&amp;quot;) and DATABASE with your database name (the default is &amp;quot;moodle&amp;quot;):&lt;br /&gt;
&amp;lt;pre&amp;gt;mysqladmin.exe -u USERNAME -p drop DATABASE&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Enter your database password at the prompt (the default is &amp;quot;&amp;quot; [blank]).&lt;br /&gt;
*Enter &amp;quot;y&amp;quot; to confirm the database drop.&lt;br /&gt;
*Delete the moodledata directory. If you, or your users, have uploaded materials into this directory take a copy of these before deleting this directory.&lt;br /&gt;
*Delete the moodle directory itself. This will delete all of the moodle PHP script files.&lt;br /&gt;
&lt;br /&gt;
==Migrating Moodle to a new site or server==&lt;br /&gt;
Migrating Moodle means that you have to move the current installation to a new server, and so may have to change IP addresses or DNS entries. To do this you will need to change the $CFG-&amp;gt;wwwroot value in the config.php on the new server. You will also have to change any absolute links stored in the database backup file (before restoring the file on the new server) either using the [[Search and replace tool]], your text editor or another &amp;quot;search and replace&amp;quot; tool, e.g. sed. For more details see the [[Moodle migration|Moodle Migration]] page.&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
==Why does my new installation display correctly on the server, but when I view it from a different machine, styles and images are missing?==&lt;br /&gt;
In the installation instructions, one of the suggested settings for &#039;webroot&#039; is &#039;localhost&#039;. This is fine if all you want to do is some local testing of your new Moodle installation. If, however, you want to view your new installation from another machine on the same local area network, or view your site on the internet, you will have to change this setting:&lt;br /&gt;
*For local testing, &#039;localhost&#039; is fine for the webroot ($CFG-&amp;gt;wwwroot in config.php). &lt;br /&gt;
*If you want to test your site from other machines on the same local area network (LAN), then you will have to use the private ip address of the serving machine, (e.g. 192.168.1.2/moodle) or the network name of the serving computer (e.g. network_name_of_serving_machine/moodle) as the web root. Depending on your LAN setup, it may be better to use the network name of the computer rather than its (private) ip address, because the ip address can and will change from time to time. If you don&#039;t want to use the network name, then you will have to speak to your network administrator and have them assign a permanent ip address to the serving machine.&lt;br /&gt;
*Finally, if you want to test your new installation across the internet, you will have to use either a domain name or a permanent (public) ip address/moodle as your web root. To handle both types of access, see [https://docs.moodle.org/en/masquerading masquerading].&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
==Maximum upload file size - how to change it?==&lt;br /&gt;
There are several places to change the maximum file upload size. The first place to check is in Site administration &amp;gt; Security &amp;gt; Site security settings and look for &amp;quot;Maximum uploaded file size&amp;quot;.  This is the &amp;quot;maxbyte&amp;quot; variable found in older versions of Moodle (under Admin &amp;gt; Variables). Teachers may also set the maximum file size by the [[Course settings#Maximum upload size|course administration block]].&lt;br /&gt;
&lt;br /&gt;
If the above does not provide a large enough figure you will need to make changes in your server settings. The usual place is in your php.ini file (go to Site administration &amp;gt; Server &amp;gt; PHPinfo and check a few lines down for its location). Look for settings &#039;&#039;&#039;upload_max_filesize&#039;&#039;&#039; and &#039;&#039;&#039;post_max_size&#039;&#039;&#039;, setting them both to your desired new value (e.g. &#039;64MB&#039;). You will need to restart the web server for these changes to take effect - e.g. on Linux, &#039;&#039;&#039;/etc/init.d/apache2 force-reload&#039;&#039;&#039;. Check your documentation or just reboot the server. [http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size NGINX] system administrators should also add client_max_body_size=XXX to the &amp;quot;http&amp;quot; section of their nginx main configuration file. ([https://rtcamp.com/tutorials/php/increase-file-upload-size-limit/#change-in-nginx-config see more info])&lt;br /&gt;
&lt;br /&gt;
For more help see:&lt;br /&gt;
*[[Administration FAQ#How do the limits on uploaded files work.3F]]&lt;br /&gt;
*[[Installing Moodle#Recheck PHP settings]]&lt;br /&gt;
*[[Installing Moodle#Using a .htaccess file for webserver and PHP settings]]&lt;br /&gt;
*[[Site policies#Maximum uploaded file size]]&lt;br /&gt;
*These forum posts: http://moodle.org/mod/forum/discuss.php?d=63840#287960 and http://moodle.org/mod/forum/discuss.php?d=93882#p414650&lt;br /&gt;
&lt;br /&gt;
[[#top|Top]]&lt;br /&gt;
&lt;br /&gt;
==Moodle claims PHP float handling is not compatible==&lt;br /&gt;
&lt;br /&gt;
The symptom is that when you try to install or upgrade your Moodle, you get a message &amp;quot;Detected unexpected problem in handling of PHP float numbers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[http://moodle.org/mod/forum/discuss.php?d=114945 This forum thread] and MDL-18253 have more information. In short, this problem should not happen, you can help us by telling posting information about exactly which version of PHP, and OS you are using. That may let us find a way to work around this problem.&lt;br /&gt;
&lt;br /&gt;
You may be able to solve this issue by installing a more recent PHP versions. If you compile PHP yourself from source, changing the compilation options may help. However, since we don&#039;t understand the cause, we don&#039;t really know. If you do find a solution that works for you, please do tell us about it.&lt;br /&gt;
&lt;br /&gt;
Update: we have a guess that the problem may be the [http://au2.php.net/manual/en/ini.core.php#ini.precision &#039;precision&#039; setting in your php.ini file]. In a default PHP install this is set of 14. On at least one server that exhibited this problem it had been changed to a smaller value. So, if you see this problem, please try adding &lt;br /&gt;
 ini_set(&#039;precision&#039;, 14);&lt;br /&gt;
to your config.php file, and report your success in MDL-18253.&lt;br /&gt;
&lt;br /&gt;
== How do I run multiple instances of Moodle without duplicating base code? ==&lt;br /&gt;
&lt;br /&gt;
See [http://moodle.org/mod/forum/discuss.php?d=13211 this thread] for a detailed explanation by [[User:Martin Langhoff|Martin Langhoff]].&lt;br /&gt;
&lt;br /&gt;
== How do I install a plugin? ==&lt;br /&gt;
&lt;br /&gt;
Please see [[Installing plugins]].&lt;br /&gt;
&lt;br /&gt;
==I can&#039;t enable a plugin on the Plugins overview page because the icon is not clickable==&lt;br /&gt;
The open and closed eye icon on the Plugins overview page is simply there to show whether or not a plugin is enabled. You can&#039;t edit plugins from this screen. If you wish to enable a plugin, go to the appropriate page for managing the type of plugin you need, for instance &#039;&#039;Settings&amp;gt;Site administration&amp;gt;Plugins&amp;gt;Repositories&amp;gt;Manage repositories&#039;&#039; or &#039;&#039;Settings&amp;gt;Site administration&amp;gt;Plugins&amp;gt;Activity modules&amp;gt;Manage activities.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Errors FAQ]]&lt;br /&gt;
* [http://moodle.org/mod/forum/view.php?id=28 Installing and upgrading help forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
Installing Moodle in a shared web hosting environment:&lt;br /&gt;
* [[Finding and Selecting A Web Host|Finding and Selecting a web host]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[es:FAQ Instalación]]&lt;br /&gt;
[[fr:FAQ d&#039;installation]]&lt;br /&gt;
[[ja:インストールFAQ]]&lt;br /&gt;
[[de:Installation FAQ]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/501/en/index.php?title=Installing_MySQL_on_Windows&amp;diff=154758</id>
		<title>Installing MySQL on Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/501/en/index.php?title=Installing_MySQL_on_Windows&amp;diff=154758"/>
		<updated>2025-11-24T16:19:07Z</updated>

		<summary type="html">&lt;p&gt;Tsala: removing Oracle (MDL-83172)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;After installing Apache, then PHP, the third leg is to install MySQL. MySQL appears to be the preferred database for Moodle, but it does have its quirks. You may want to use PostGres, which is an excellent database tool, or [https://docs.moodle.org/en/Installing_MSSQL_for_PHP MSSQL].&lt;br /&gt;
&lt;br /&gt;
It is assumed here that the file you have downloaded is the mysql-5.1.38-win32.msi file. This installation is for a standalone test server, in preparation for when it is ready to be uploaded to our production site. However, the same principles of installation are applied even to a Windows Server. &lt;br /&gt;
&lt;br /&gt;
== Installing the MySQL Server ==&lt;br /&gt;
When downloaded, right click the &#039;&#039;&#039;mysql-5.1.38-win32.msi&#039;&#039;&#039; file (the file I downloaded, but yours may have a different version number.) Select Install and then &amp;quot;Run&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Select &amp;quot;Custom Setup&amp;quot;&lt;br /&gt;
[[Image:mysql01.gif|thumb|center|Start MySQL installation process]]&lt;br /&gt;
Change path to what you want, say g:\mySQL so select new path New Folder navigate to G:\ and add mySQL as a destination folder name. (What you use is up to you.)&lt;br /&gt;
[[Image:mysql02.gif|thumb|center|Destination path for MySQL installation]][[Image:mysql04.gif|thumb|center|Setting up the destination path]]&lt;br /&gt;
Do not try to change destination of the &#039;&#039;&#039;data folder&#039;&#039;&#039;, it will get frustrating. Click &amp;quot;Install&amp;quot; and it will copy all the files it needs to the destination. &lt;br /&gt;
[[Image:mysql05.gif|thumb|center|Start MySQL installation]]&lt;br /&gt;
In some versions of the installer there is a set of ads for MySQL Enterprise version which you can safely ignore.&lt;br /&gt;
&lt;br /&gt;
It will take you to the &amp;quot;Wizard Complete screen, and ask you if you want to configure MySQL now and register. &lt;br /&gt;
[[Image:mysql07.gif|thumb|center|Installation Wizard completed]]&lt;br /&gt;
You can always register later, so uncheck the box and click Finish which will take you to the Configuration Wizard.&lt;br /&gt;
&lt;br /&gt;
== Configuring MySQL ==&lt;br /&gt;
After installing MySQL, you now need to make it usable in Windows, to configure it to what you need. &lt;br /&gt;
[[Image:mysql09.gif|thumb|center|Start MySQL configuration wizard]]&lt;br /&gt;
Click next and it will ask you if you want a &amp;quot;Detailed Configuration&amp;quot; or &amp;quot;Standard Configuration&amp;quot; for our purposes, we want a Detailed Configuration and click Next.&lt;br /&gt;
[[Image:mysql10.gif|thumb|center|Start Detailed configuration of MySQL installation]]&lt;br /&gt;
The next screen basically asks for what kind of use are you putting the MySQL server to, for out purposes we want a generic server machine, and click Next&lt;br /&gt;
[[Image:mysql11.gif|thumb|center|What server type is going to be used?]]&lt;br /&gt;
Select Multifunctional database here, we do not know what we will want MySQL to be doing next year, so play it safe, select the generic option. Click Next.&lt;br /&gt;
[[Image:mysql12.gif|thumb|center|Start MySQL installation]]&lt;br /&gt;
The InnoDB TableSpace Settings can go into the same path as our database. Click Next.&lt;br /&gt;
[[Image:mysql13.gif|thumb|center|InnoDB Tablespace settings]]&lt;br /&gt;
For our purposes, we need only set a  manual operation for no more than 15 connections. If you were installing a production site, you would want OLTP. Click Next.&lt;br /&gt;
[[Image:mysql14.gif|thumb|center|Select the number of concurrent connections]]&lt;br /&gt;
Enable TCP/IP, and accept the default port setting, but make sure you click the Add firewall exception option. Accept the Enable Strict Mode as well.  Click Next.&lt;br /&gt;
[[Image:mysql15.gif|thumb|center|Setting the networking options]]&lt;br /&gt;
Here we need to remember that Moodle uses a Collation and the UTF-8 character set, so MySQL needs to accommodate this. Select &amp;quot;Manual Selected Default Character Set/Collation&amp;quot; option. From the drop down list, select UTF-8. &lt;br /&gt;
[[Image:mysql16.gif|thumb|center|Selecting the Collation and UTF-8 Charset for MySQL]]&lt;br /&gt;
Accept installation as a Windows Service, but unless you are developing a database, you may not think you need to select the &amp;quot;Include Bin Directory in Windows path&amp;quot; option. As a rule of thumb though, you may need to access mySQL from the command line at some stage, probably not, but sometimes, you may. Including this now is a set and forget option.  &lt;br /&gt;
[[Image:mysql17.gif|thumb|center|Setting the Windows Options]]&lt;br /&gt;
Here you need to enter a password, making sure it is the same password as you are going to use for your Moodle installation. For security purposes though, you may not want to enable root access from a remote machine, nor create an anonymous account. &lt;br /&gt;
[[Image:mysql18.gif|thumb|center|Setting the security options]]&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Makes sure you can easily remember the password you set here. You wll need to install Moodle properly.&lt;br /&gt;
[[Image:mysql19.gif|thumb|center|Ready to execute configuration settings]]&lt;br /&gt;
Thinking over what you have done, are you happy with the options you have selected, of so, select Execute and go and make a tea or a coffee, or what you want, while mySQL installs. &lt;br /&gt;
[[Image:mysql21.gif|thumb|center|The end is nigh - Finish to end]]&lt;br /&gt;
When complete, we can look to see if it is all installed properly. We know Apache and PHP are working, so now it is the turn of mySQL. &lt;br /&gt;
==Testing the MySQL Server Installation ==&lt;br /&gt;
MySQL should now appear in the Start Menu, so you can access mySQL, and MySQL Command line Client. &lt;br /&gt;
[[Image:mysql22.gif|thumb|center|Start MySQL installation]]&lt;br /&gt;
which brings up a Windows cmd dialogue box. At the prompt enter your password, and it should respond with &amp;quot;Welcome to the MySQL monitor...&amp;quot; with some more text and commands, ending with the mysql&amp;gt; prompt. If this works, then it is all well. &lt;br /&gt;
[[Image:mysql23.gif|frame|center|Start MySQL command line]]&lt;br /&gt;
[[Image:mysql24.gif|thumb|center|MySQL command line prompt, all is well]]&lt;br /&gt;
Enter exit and that should take you out of the cmd box as well. &lt;br /&gt;
&lt;br /&gt;
You can now prepare to install Moodle.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*[[Installing Apache on Windows]]&lt;br /&gt;
*[[Installing PHP on Windows]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Tsala</name></author>
	</entry>
</feed>