<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/310/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Scaroodle</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/310/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Scaroodle"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/Special:Contributions/Scaroodle"/>
	<updated>2026-05-15T19:48:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Mail_configuration&amp;diff=139218</id>
		<title>Mail configuration</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Mail_configuration&amp;diff=139218"/>
		<updated>2021-01-03T13:08:21Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Fix &amp;#039;AWS SES&amp;#039; external hyperlink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Server settings}}&lt;br /&gt;
==Outgoing mail configuration==&lt;br /&gt;
&lt;br /&gt;
Settings related to mail sent by Moodle can be found in &#039;Outgoing mail configuration&#039; in Site administration -&amp;gt; Server -&amp;gt; Email.&lt;br /&gt;
&lt;br /&gt;
The setting &#039;Allowed email domains&#039; (allowedemaildomains) allows you to enter domains allowed by your mail server so that forum post notification emails can be sent from users&#039; real addresses. It accepts a wildcard for conveniently adding a lot of domains (*.example.com - tim@first.example.com), or a strict match (example.com - tim@example.com). &lt;br /&gt;
&lt;br /&gt;
If allowed domains are set then the user&#039;s email address will be used in the &amp;quot;From&amp;quot; and &amp;quot;Reply to&amp;quot; field only in the following situations:&lt;br /&gt;
&lt;br /&gt;
* The email matches the allowed domains, and the user&#039;s setting is to display their email address to everyone.&lt;br /&gt;
* The email matches the allowed domains, and the user&#039;s setting is to display their email only to course members, and the email is to be delivered to a course member.&lt;br /&gt;
&lt;br /&gt;
All other situations use the no-reply address.&lt;br /&gt;
&lt;br /&gt;
The setting &#039;Email via information&#039; (emailfromvia) adds via information in the From section of outgoing email to inform the recipient where the email came from:&lt;br /&gt;
 Name (via shortname) &amp;lt;noreplyaddress&amp;gt;&lt;br /&gt;
&#039;shortname&#039; is the short name for the site as set in the front page settings.&lt;br /&gt;
&lt;br /&gt;
 NOTE: You can also use [[Email_setup_gmail|Google gMail]] servers or AMAZON [https://docs.bitnami.com/aws/how-to/use-ses/ AWS SES] Simple Email Services to setup SMTP relay for your outbound emails. &lt;br /&gt;
&lt;br /&gt;
===Test outgoing mail configuration===&lt;br /&gt;
&lt;br /&gt;
A link is available to send yourself a test email to check everything is working correctly.&lt;br /&gt;
&lt;br /&gt;
==Incoming mail configuration==&lt;br /&gt;
If incoming mail processing is enabled in &#039;Incoming mail configuration&#039; in Site administration, then users are able to reply to forum posts via email and send files to their private files as email attachments.&lt;br /&gt;
&lt;br /&gt;
===Mailbox configuration===&lt;br /&gt;
It is important to have a dedicated email address here. Don&#039;t use one you normally use for your personal emails. You do not need to add the @ sign. If you have set up the email mountorangeschool @ besteveremail.com then it would be entered as in the following screenshot:&lt;br /&gt;
[[File:emailexampleincoming.png|thumb|center|400px]]&lt;br /&gt;
&lt;br /&gt;
===Incoming mail server settings===&lt;br /&gt;
As an example, if you are using gmail you would use &#039;&#039;&#039;IMAP.gmail.com&#039;&#039;&#039; in the Incoming mail server (messageinbound_host) field. (If using gmail you also need to make sure that you&#039;ve enabled IMAP for yor gmail account - see https://support.google.com/mail/troubleshooter/1668960?hl=en )&lt;br /&gt;
&lt;br /&gt;
Note1: The SMTP server hosting the mailbox you&#039;ve configured above must support &#039;&#039;plus addressing&#039;&#039; i.e. any email sent to mountorangeschool+blahblahblah@besteveremail.com is still delivered to mountorangeschool@besteveremail.com.&lt;br /&gt;
&lt;br /&gt;
Note2 : The username and password  here must relate to the settings you entered earlier in Mailbox configuration. So if your address was mountorangeschool @ besteveremail.com and your username is &#039;&#039;mountorangeschool&#039;&#039;, then enter your username in this section along with the password you use to get into this email account.&lt;br /&gt;
&lt;br /&gt;
Note 3: You may also need to make sure that your host does not block outbound connections to the IMAP ports (some do by default).&lt;br /&gt;
&lt;br /&gt;
Note 4: If using gmail, you may find that IMAP does not work with Google&#039;s higher security setting.  If IMAP is not working with gmail, check out https://support.google.com/accounts/answer/6010255?hl=en-GB&lt;br /&gt;
&lt;br /&gt;
==Message handlers==&lt;br /&gt;
&lt;br /&gt;
===Email to Private files===&lt;br /&gt;
*If you enable this, then users will be able to send attachments via email directly to their private files. See [[Private files]] for details of how the feature works.&lt;br /&gt;
*Each user will be provided with  an address in their Private files to which they send the email and attached files. You can set the default expiry period for this address here.&lt;br /&gt;
*Checking the &#039;Validate sender address&#039; box will mean that if an email is sent to a user&#039;s private files from a different account from that registered with  user in Moodle, then Moodle will check first before allowing the file to be stored in the user&#039;s Private files.&lt;br /&gt;
&lt;br /&gt;
===Invalid recipient handler===&lt;br /&gt;
If a valid message is received but the sender cannot be authenticated, the message is stored on the email server and the user is contacted using the email address in their user profile. The user is given the chance to reply to confirm the authenticity of the original message.This handler processes those replies.&lt;br /&gt;
&lt;br /&gt;
It is not possible to disable sender verification of this handler because the user may reply from an incorrect email address if their email client configuration is incorrect.&lt;br /&gt;
&lt;br /&gt;
===Reply to forum posts===&lt;br /&gt;
*If you enable this, then users will be able to reply to forum posts directly from their email inbox. See the section on &#039;Reply to posts via email&#039; in [[Using Forum]] for details of how the feature works.&lt;br /&gt;
*You must leave empty the &#039;&#039;Site administration &amp;gt; Server &amp;gt; Email &amp;gt; Outgoing mail configuration &amp;gt; Allowed email domains&#039;&#039; setting; otherwise users will see the email of the forum poster instead.&lt;br /&gt;
*Each user will be provided with  reply-to address when they click to reply to a forum post via  email. You can set the default expiry period for this address here.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=277594 Need help configuring forum&#039;s &amp;quot;Reply to post&amp;quot; feature] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[es:Configuración del correo]]&lt;br /&gt;
[[de:Einstellungen für E-Mails]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Forum]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Embedded_Answers_(Cloze)_question_type&amp;diff=136937</id>
		<title>Embedded Answers (Cloze) question type</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Embedded_Answers_(Cloze)_question_type&amp;diff=136937"/>
		<updated>2020-04-27T12:42:17Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Typo in &amp;quot;seperator&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Questions}}&lt;br /&gt;
&#039;&#039;&#039;Embedded answers (Cloze)&#039;&#039;&#039; questions consist of a passage of text (in Moodle format) that has various answers embedded within it, including multiple choice, short answers and numerical answers.&lt;br /&gt;
&lt;br /&gt;
Until mid2013, there was no graphical interface to create these questions within your Moodle site - you needed to specify the question format using the text box or by importing them from external files.&lt;br /&gt;
&lt;br /&gt;
You can link to an external web site that does create these questions from a graphical interface, see the &#039;&#039;[http://projects.ael.uni-tuebingen.de/quiz/htmlarea/index.php Online Cloze Question quiz generator]&#039;&#039; below.&lt;br /&gt;
&lt;br /&gt;
There is an Excel-based [http://hbwubecc.wixsite.com/jordan/tools Cloze and GIFT Generator] that was presented at the 2017 Moodle Moot Japan.&lt;br /&gt;
&lt;br /&gt;
There is a [[Cloze editor for TinyMCE]] that will let you create these questions from a graphical interface within your Moodle site, but it will overwrite your current HTML editor and only works with the [[TinyMCE editor]] but not with [[Atto]]. In 2016 a [[Cloze editor for Atto]] additional plugin was created.&lt;br /&gt;
&lt;br /&gt;
Lots of people suggested that [[Hot Potatoes]] software is the easiest way to create Embedded answer (Cloze) questions.  Once you have created your questions on your PC, you can then import them into Moodle&#039;s quiz module.&lt;br /&gt;
&lt;br /&gt;
However, the flexibility of the Cloze question type is hard to equal and despite the minor coding that you need to create the questions, it has great worth in the Moodle Quiz.&lt;br /&gt;
&lt;br /&gt;
==Question set-up==&lt;br /&gt;
&lt;br /&gt;
#Select the question category&lt;br /&gt;
#Give the question a descriptive name - this allows you to identify it in the question bank.&lt;br /&gt;
#Enter the passage of text (in Moodle format - see [[Embedded_Answers_%28Cloze%29_question_type#Format|Format]] below) into the &#039;question text&#039; field.&lt;br /&gt;
#Select an image to display if you want to add a picture to the question. For the student, it appears immediately above the question text.&lt;br /&gt;
#Set the &#039;default question grade&#039; (i.e. the maximum number of marks for this question).&lt;br /&gt;
#Set the &#039;Penalty factor&#039; (see [[Embedded_Answers_%28Cloze%29_question_type#Penalty_factor|Penalty factor]] below).&lt;br /&gt;
#If you wish, add general feedback. This is text that appears to the student after he/she has answered the question.&lt;br /&gt;
#The editor has been modified and allows you to test if your syntax is good. The different questions elements decoded will be displayed and syntax errors pinpoint. However, it cannot check if the question decoded is two questions in one because of an error syntax (for example ~}, =~, etc.).&lt;br /&gt;
#Click Save changes to add the question to the category.&lt;br /&gt;
&lt;br /&gt;
=== Penalty factor ===&lt;br /&gt;
&lt;br /&gt;
The &#039;penalty factor&#039; only applies when the question is used in a quiz using adaptive mode - i.e. where the student is allowed multiple attempts at a question even within the same attempt at the quiz. If the penalty factor is more than 0, then the student will lose that proportion of the &#039;&#039;&#039;maximum&#039;&#039;&#039; grade upon each successive attempt. For example, if the default question grade is 10, and the penalty factor is 0.2, then each successive attempt after the first one will incur a penalty of 0.2 x 10 = 2 points.  The grading for the cloze question applies the penalty to each subpart of the question as a whole.  For example, if you have three fill in the blanks each worth 1 point each, then the penalty will only be incurred on the incorrect parts, not the questions as a whole.&lt;br /&gt;
&lt;br /&gt;
==Question rendering==&lt;br /&gt;
&lt;br /&gt;
The question answer entry space or INPUT HTML ELEMENT (for Short Answer and Numerical question types) and the dropdown list or SELECT HTML ELEMENT (for multichoice) are normally displayed in-line with the text.&lt;br /&gt;
&lt;br /&gt;
The size of the entry space or INPUT HTML ELEMENT ( Short and Numerical) will be adjustable to the length of the longest answer (good or bad) + a random number (0 to 15% total length).([[User:Pierre Pichet|Pierre Pichet]] 15:37, 26 January 2008 (CST))&lt;br /&gt;
&lt;br /&gt;
The size will adjust to the length of the student response when displayed in the grading and feedback process.&lt;br /&gt;
&lt;br /&gt;
The size of the dropdown list or SELECT HTML ELEMENT (multichoice) adjusts itself automatically to the longest answer.&lt;br /&gt;
&lt;br /&gt;
==Format==&lt;br /&gt;
&lt;br /&gt;
Questions consist of a passage of text (in Moodle format) that has various sub-questions embedded within it, including&lt;br /&gt;
&lt;br /&gt;
* short answers (SHORTANSWER or SA or MW), case is unimportant,&lt;br /&gt;
* short answers (SHORTANSWER_C or SAC or MWC), case must match,&lt;br /&gt;
* numerical answers (NUMERICAL or NM),&lt;br /&gt;
* multiple choice (MULTICHOICE or MC), represented as a dropdown menu in-line in the text,&lt;br /&gt;
* multiple choice (MULTICHOICE_V or MCV), represented as a vertical column of radio buttons, or&lt;br /&gt;
* multiple choice (MULTICHOICE_H or MCH), represented as a horizontal row of radio-buttons,&lt;br /&gt;
* multiple choice (MULTIRESPONSE or MR), represented as a vertical row of checkboxes&lt;br /&gt;
* multiple choice (MULTIRESPONSE_H or MRH), represented as a horizontal row of checkboxes&lt;br /&gt;
===Shuffle sub questions===&lt;br /&gt;
When the quiz question behavior shuffle option is set to &#039;&#039;&#039;YES&#039;&#039;&#039;, the following special multiple choice sub-questions elements will be shuffled:&lt;br /&gt;
* multiple choice (MULTICHOICE_S or MCS), represented as a dropdown menu in-line in the text,&lt;br /&gt;
* multiple choice (MULTICHOICE_VS or MCVS), represented as a vertical column of radio buttons, or&lt;br /&gt;
* multiple choice (MULTICHOICE_HS or MCHS), represented as a horizontal row of radio-buttons.&lt;br /&gt;
* multiple choice (MULTIRESPONSE_S or MRS), represented as a vertical row of checkboxes&lt;br /&gt;
* multiple choice (MULTIRESPONSE_HS or MRHS), represented as a horizontal row of checkboxes&lt;br /&gt;
&lt;br /&gt;
{{Note|MCS, MCVS, MCHS are new (Moodle 3.0) Cloze subquestion types with shuffling of answers. See MDL-38214.}}&lt;br /&gt;
&lt;br /&gt;
The structure of  each cloze sub-question is identical:&lt;br /&gt;
:&#039;&#039;&#039;{&#039;&#039;&#039;  start the cloze sub-question with a bracket (AltGr+7)&lt;br /&gt;
:&#039;&#039;&#039;1&#039;&#039;&#039; define a grade for each cloze by  a number (optional). This used for calculation of question grading. Note that this number can only be a positive integer (1, 2, 3, etc.)&lt;br /&gt;
:&#039;&#039;&#039;:SHORTANSWER:&#039;&#039;&#039; define the type of cloze sub-question. Definition is bounded by &#039;:&#039;. &lt;br /&gt;
:&#039;&#039;&#039;~&#039;&#039;&#039; is a separator between answer options&lt;br /&gt;
:&#039;&#039;&#039;=&#039;&#039;&#039; marks a correct answer&lt;br /&gt;
:&#039;&#039;&#039;#&#039;&#039;&#039; marks the beginning of an (optional) feedback message&lt;br /&gt;
:&#039;&#039;&#039;}&#039;&#039;&#039;  close the cloze sub-question at the end with a bracket (AltGr+0)&lt;br /&gt;
&lt;br /&gt;
Now a very simple example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{1:SHORTANSWER:=Berlin} is the capital of Germany.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For full details of the format for embedded-answers questions, see the [[Embedded_Answers_%28Cloze%29_question_type#Detailed_syntax_explanations|detailed syntax explanation]] below.&lt;br /&gt;
&lt;br /&gt;
NB: Be careful when copying a cloze type question into the WYSIWYG HTML editor, as line breaks tend to get added, which destroys the question.&lt;br /&gt;
&lt;br /&gt;
If the correct answer contains } # ~ / &amp;quot; or \ you will have to escape them by putting a \ in front of each such character. But [[https://moodle.org/mod/forum/discuss.php?d=275299 this is tricky]]. The { shouldn&#039;t be escaped, this can be vital in getting TeX expressions to work. In the feedback ~ and } must be escaped otherwise it will be interpreted as &#039;&#039;the next answer&#039;&#039; or &#039;&#039;end of the short answer section&#039;&#039; respectively. Quotation signs: &amp;quot; can lead to trouble anyhow in both places. Use the HTML entity: &amp;amp; quot; (without the space between &#039;&#039;&amp;amp;&#039;&#039; and &#039;&#039;quot;&#039;&#039;). If you want to have Mathematical symbols there can be problems with the \ used in TeX expressions. One alternative can be to use [[unicode]] characters. &lt;br /&gt;
&lt;br /&gt;
See the notes further down about numerical embedded question!&lt;br /&gt;
&lt;br /&gt;
===Examples===&lt;br /&gt;
&lt;br /&gt;
====Example 1====&lt;br /&gt;
The following text creates a simple embedded-answers question:&lt;br /&gt;
&lt;br /&gt;
 Match the following cities with the correct state:&lt;br /&gt;
 * San Francisco: {1:MULTICHOICE:=California#OK~Arizona#Wrong}&lt;br /&gt;
 * Tucson: {1:MULTICHOICE:California#Wrong~%100%Arizona#OK}&lt;br /&gt;
 * Los Angeles: {1:MULTICHOICE:=California#OK~Arizona#Wrong}&lt;br /&gt;
 * Phoenix: {1:MULTICHOICE:%0%California#Wrong~=Arizona#OK}&lt;br /&gt;
 The capital of France is {1:SHORTANSWER:%100%Paris#Congratulations!&lt;br /&gt;
 ~%50%Marseille#No, that is the second largest city in France (after&lt;br /&gt;
 Paris).~*#Wrong answer. The capital of France is Paris, of course.}.&lt;br /&gt;
&lt;br /&gt;
And the result will be:&lt;br /&gt;
 &lt;br /&gt;
[[Image:Cloze.gif|Cloze question type]] &lt;br /&gt;
&lt;br /&gt;
====Example 2====&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 1em;border: 1px dashed #FFB53A;color: black;background-color: #f9f9f9;font-family: monospace;font-size:1.2em;&amp;quot;&amp;gt;&lt;br /&gt;
This question consists of some text with an answer embedded right here {1:MULTICHOICE:Wrong answer#Feedback for this wrong answer~Another wrong answer#Feedback for the other wrong answer~=Correct answer#Feedback for correct answer~%50%Answer that gives half the credit#Feedback for half credit answer}&lt;br /&gt;
&lt;br /&gt;
and right after that you will have to deal with this short answer {1:SHORTANSWER:Wrong answer#Feedback for this wrong answer~=Correct answer#Feedback for correct answer~%50%Answer that gives half the credit#Feedback for half credit answer}&lt;br /&gt;
&lt;br /&gt;
and finally we have a floating point number {2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8~%50%23.8:2#Feedback for half credit answer in the nearby region of the correct answer}.&lt;br /&gt;
&lt;br /&gt;
The  multichoice question can also be shown in the vertical display of the standard moodle multiple choice.&lt;br /&gt;
{2:MCV:1. Wrong answer#Feedback for this wrong answer~2. Another wrong answer#Feedback for the other wrong answer~=3. Correct answer#Feedback for correct answer~%50%4. Answer that gives half the credit#Feedback for half credit answer}&lt;br /&gt;
&lt;br /&gt;
Or in an horizontal display that is included here in a table&lt;br /&gt;
{2:MCH:a. Wrong answer#Feedback for this wrong answer~b. Another wrong answer#Feedback for the other wrong answer~=c. Correct answer#Feedback for correct answer~%50%d. Answer that gives half the credit#Feedback for half credit answer}&lt;br /&gt;
&lt;br /&gt;
A shortanswer question where case must match. Write moodle in upper case letters {1:SHORTANSWER_C:moodle#Feedback for moodle in lower case ~=MOODLE#Feedback for MOODLE in upper case ~%50%Moodle#Feedback for only first letter in upper case}&lt;br /&gt;
&lt;br /&gt;
Note that addresses like www.moodle.org and smileys :-) all work as normal:&lt;br /&gt;
&lt;br /&gt;
a) How good is this? {:MULTICHOICE:=Yes#Correct~No#We have a different opinion}&lt;br /&gt;
&lt;br /&gt;
b) What grade would you give it? {3:NUMERICAL:=3:2}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[Image:Cloze example.png]]&lt;br /&gt;
&lt;br /&gt;
Some things to note:&lt;br /&gt;
* The individual embedded answers are represented by the code in braces {}.&lt;br /&gt;
* The number at the start is the &#039;weight&#039;, so in this case each answer contributes an equal share of the overall grade.&lt;br /&gt;
* The correct option in each case is preceded either by an = sign or by %100%. &lt;br /&gt;
* The text appearing after the # that follows each option is the feedback that the student will see if they choose that option.&lt;br /&gt;
* If the student enters &#039;Marseille&#039; in the final example, they score 50% of the total grade.&lt;br /&gt;
* The asterisk * preceding the &amp;quot;Wrong answer&amp;quot; feedback in the final example means that the student will see this feedback if they enter anything other than &amp;quot;Paris&amp;quot; or &amp;quot;Marseille&amp;quot;.&lt;br /&gt;
* For multiple choice vertical or horizontal rendering there is no automatic numbering, though can added at each answer.&lt;br /&gt;
&lt;br /&gt;
==Detailed syntax explanations==&lt;br /&gt;
# All question items within a cloze-type question are coded inside curled braces { }.&lt;br /&gt;
# The number which appears between the opening brace and the colon {1: is the weighting of that item; if it is set at 1 for all the items, it needs not be specified, so you can have {:.&lt;br /&gt;
# After the colon we have the item question type: MULTICHOICE, SHORTANSWER, NUMERICAL.&lt;br /&gt;
# &#039;&#039;&#039;NOTE&#039;&#039;&#039;.- If you have installed the [https://moodle.org/plugins/qtype_regexp REGEXP question type plugin] you can also use the REGEXP question type; see [https://docs.moodle.org/310/en/Regular_Expression_Short-Answer_question_type#Inserting_RegExp_sub-questions_in_Cloze_type_questions instructions here].&lt;br /&gt;
# The syntax for MULTICHOICE and SHORTANSWER is the same; the only difference is in the displaying of the item to the student.&lt;br /&gt;
# The order of the various answers is indifferent (except if you want a catch-all for wrong answers, see #13 below).&lt;br /&gt;
# A correct answer is preceded with the equal sign = or a percentage (usually %100%) - &#039;&#039;&#039;Note&#039;&#039;&#039;: [[Talk:Embedded_Answers_(Cloze)_question_type| The equal sign (=) doesn&#039;t seem to work with SHORTANSWER.]]&lt;br /&gt;
# A wrong answer is preceded with nothing or a percentage (usually %0%)but you can even use negative points by preceding with ~%-25% [not before Moodle 2.0]). Note that negative points are taken into account in all question behaviours except &amp;quot;Interactive with multiple tries&amp;quot;.&lt;br /&gt;
# You can allocate some points between 0 and 100 to some answers, if you put the appropriate percentage.&lt;br /&gt;
# All answers except the first one are separated from one another by the tilde ~ sign.&lt;br /&gt;
# Answers can be followed by an optional feedback message, preceded with the # sign; if there is no feedback message, the # sign can be present or absent, it does not matter.&lt;br /&gt;
# Note that the feedback message and the correct answer are displayed in a small popup window (if and when the correct and or feedback have been declared accessible to the students in the Quiz settings) upon mouse hovering. The popup window has a title &amp;quot;feedback&amp;quot; and you can use HTML tags to format your feedback. In some browsers (For example IE5.5) the form fields can cover part of the feedback windows. It can help to not have the formfields for the answers too close to each other.&lt;br /&gt;
# In the SHORTANSWER type you may want to put a catch-all (wrong) answer in order to send a &amp;quot;wrong, try again&amp;quot; feedback; you can do this by inserting an asterisk &#039;&#039;&#039;*&#039;&#039;&#039; as &#039;&#039;&#039;the very last expected answer&#039;&#039;&#039; in your formula.&lt;br /&gt;
# You should not have sequences such as %#, %~, %}, =#, =%, =}, ~#, ~% and ~} in the answer because you should not have empty answers or empty answer options. These two character sequences constitute error syntaxes, where the second character is interpreted as if it were escaped&amp;lt;sup&amp;gt;(why?)&amp;lt;/sup&amp;gt;, and gives unexpected results: the answer is decoded as one instead of two or more.&lt;br /&gt;
&lt;br /&gt;
==Numerical Cloze questions==	 &lt;br /&gt;
		 &lt;br /&gt;
From the student perspective, a numerical Cloze question looks just like a short-answer question or &#039;&#039;fill in the blanks&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The difference is that numerical answers are allowed to have an accepted error. This allows a continuous range of answers to be set. You can also express your answer in some different numerical formats. 23.4 23,4 (some countries use , as a decimal separator) and 2.34E+1 (meaning 2.34*10^1) would be interpreted as the same.&lt;br /&gt;
&lt;br /&gt;
=== False positives ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; the following examples of false positives do &#039;&#039;&#039;not&#039;&#039;&#039; apply to Moodle 1.8+, where you cannot use percentages or fractions as the answers in a numerical Cloze test; Moodle will generate an error if you try to save such a question. However the following may be relevant for earlier versions of Moodle.&lt;br /&gt;
&lt;br /&gt;
 More examples:	 &lt;br /&gt;
 0.5 accepts .5 0.5 ,5 0,5 0.500 5e-1 5E-1 but not 1/2 50% 	 &lt;br /&gt;
 50% accepts 50% 50.0% 5E1% 50/100 even &#039;&#039;&#039;50/1000 50&#039;&#039;&#039; but not 500/1000 0.5	 &lt;br /&gt;
 1/2 accepts 1/2 &#039;&#039;&#039;1/3 1twenty&#039;&#039;&#039; but not 2/4 0.5 0,5 3/6 50% ½	 &lt;br /&gt;
 ½ accepts ½	 &lt;br /&gt;
 HALF doesn&#039;t even accept HALF (maybe &#039;&#039;&#039;0&#039;&#039;&#039;?)	 &lt;br /&gt;
&lt;br /&gt;
If you want to accept several variants you can have them in the same {} but &#039;&#039;&#039;be careful, notice the &amp;quot;false positives&amp;quot; in bold&#039;&#039;&#039;!&lt;br /&gt;
&lt;br /&gt;
===Syntax for numerical Cloze questions===&lt;br /&gt;
&lt;br /&gt;
The format of a NUMERICAL Cloze question is similar to that of the other Cloze types and they can be mixed in the same question. As with other Cloze tests, you write your question or incomplete text, and add the Cloze code at the point where the student is supposed to enter their numerical answer.&lt;br /&gt;
&lt;br /&gt;
An example of the syntax used is shown below:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: &#039;&#039;&#039; It is preferable to write the code in &#039;source code&#039; mode. The WSIWYG editor can insert linebreaks that make the question not function. The linebreak in the example box below is for readability only! A problem with these questions is the readability of the code! :(	&lt;br /&gt;
		 &lt;br /&gt;
 {2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8	 &lt;br /&gt;
 ~%50%23.8:2#Feedback for ½credit near correct answer}. 	 &lt;br /&gt;
	 &lt;br /&gt;
In this example:&lt;br /&gt;
* 2: is the question point weight, which means that this question has twice the weight in the final point(s) for this question as other partial answers with weight 1 (or no declared weight - you can start with {: for the default weight 1) in the same question.&lt;br /&gt;
* NUMERICAL: says what kind of question it is. It must be in CAPS. &lt;br /&gt;
* =23.8:0.1 = or %100% means correct if the answer is 23.8 with an accepted error of 0.1, then any number between 23.7 and 23.9 will be accepted as correct. (In the GIFT numerical question one can express an interval like this 13..15 or 14:1 but in Cloze only 14:1 works.)	 &lt;br /&gt;
* #Feedback for correct answer 23.8 is preceded by #&lt;br /&gt;
* ~%50%23.8:2 ~ is the separator for answer alternatives %50% means this answer would get 50% of the score that the more precise answer had gotten. Because the tolerance here is 2, 21.8 to 25.8 would get this point and feedback.&lt;br /&gt;
&lt;br /&gt;
The feedback (which is seen within a popup window when the user hovers over the answer space) is formattable with HTML tags. For example, if you want an exponent, surround it with superscript tags: &amp;amp;lt;sup&amp;amp;gt; &amp;amp;lt;/sup&amp;amp;gt;. You can even include pictures in the feedback popup, but you must clean out all &amp;quot; characters and save while still in source code mode (not WYSIWYG). So, this works in feedback popup:&lt;br /&gt;
 #See this picture:&amp;amp;lt;br&amp;amp;gt;&amp;amp;lt;img src=Something.gif /&amp;gt;}	 &lt;br /&gt;
but not this:&lt;br /&gt;
 #See this picture:&amp;amp;lt;br&amp;amp;gt;&amp;amp;lt;img src=&amp;quot;Something.gif&amp;quot; /&amp;gt;}	 &lt;br /&gt;
&lt;br /&gt;
(ALGEBRA and TEX filters don&#039;t work in the feedback popups, but they can be very useful in the question writing for math/science expressions). But you can use [[Unicode]] characters.	 &lt;br /&gt;
&lt;br /&gt;
If you want to give feedback for any answer that didn&#039;t fit the intervals you already have specified feedback for, add some BIG general intervals, like for positive answers (if they aren&#039;t bigger than 20000 you could add:	 &lt;br /&gt;
 ~%0%10000.0001:10000#Feedback for unspecified not_right answers}	 &lt;br /&gt;
This would give feedback for anything from 0.0001 to 20000.0001 (that hadn&#039;t already gotten feedback). I didn&#039;t want to include 0 since that special case as well as negative ought to have specific reactions.	 &lt;br /&gt;
 ~%0%0#Hey! It can&#039;t be zero	 &lt;br /&gt;
 ~%0%-10000.0001:10000#We just want the size here,	 &lt;br /&gt;
 so a negative value is not what we want}			 &lt;br /&gt;
&lt;br /&gt;
Numerical questions could, before version 1.7, also have case-insensitive non-numerical answers. This is useful whenever the answer for a numerical question is something like +inf, -inf, NaN etc.&lt;br /&gt;
==Importing CLOZE questions==&lt;br /&gt;
If you try importing directly as CLOZE this text:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Single line per question! Match the following cities with the correct state:&lt;br /&gt;
* San Francisco: {1:MULTICHOICE:=California#OK~Arizona#Wrong}&lt;br /&gt;
* Tucson: {1:MULTICHOICE:California#Wrong~%100%Arizona#OK}&lt;br /&gt;
* Los Angeles: {1:MULTICHOICE:=California#OK~Arizona#Wrong}&lt;br /&gt;
* Phoenix: {1:MULTICHOICE:%0%California#Wrong~=Arizona#OK}&lt;br /&gt;
&lt;br /&gt;
The capital of France is {1:SHORTANSWER:%100%Paris#Congratulations!~%50%Marseille#No, that is the second largest city in France (after Paris).~*#Wrong answer. The capital of France is Paris, of course.}.&lt;br /&gt;
&lt;br /&gt;
23+ 0.8 = {2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8 ~%50%23.8:2#Feedback for ½credit near correct answer}. 	 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You would get all three questions as different parts of &#039;&#039;&#039;ONE question&#039;&#039;&#039;. (NOTE see that there are no linebreaks between the { } !)&lt;br /&gt;
&lt;br /&gt;
Multiple CLOZE questions can be imported using the XML format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;quiz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- question: 1  --&amp;gt;&lt;br /&gt;
&amp;lt;question type=&amp;quot;cloze&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;&amp;lt;text&amp;gt;Book Test #1&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;questiontext&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;&amp;lt;![CDATA[..............]]&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/questiontext&amp;gt;&lt;br /&gt;
&amp;lt;generalfeedback&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/generalfeedback&amp;gt;&lt;br /&gt;
&amp;lt;shuffleanswers&amp;gt;0&amp;lt;/shuffleanswers&amp;gt;&lt;br /&gt;
&amp;lt;/question&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- question: 2 --&amp;gt;&lt;br /&gt;
&amp;lt;question type=&amp;quot;cloze&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;&amp;lt;text&amp;gt;Book Test #2&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;questiontext&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;&amp;lt;![CDATA[............]]&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/questiontext&amp;gt;&lt;br /&gt;
&amp;lt;generalfeedback&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/generalfeedback&amp;gt;&lt;br /&gt;
&amp;lt;shuffleanswers&amp;gt;0&amp;lt;/shuffleanswers&amp;gt;&lt;br /&gt;
&amp;lt;/question&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/quiz&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You would put the question text including CLOZE code in the  .......  spaces.&lt;br /&gt;
&lt;br /&gt;
==Online Cloze Question generator==&lt;br /&gt;
* There is a website to generate CLOZE quizzes for Moodle (1.9 and 2.x and 3.x versions) and/or to try out the CLOZE editor integration for Moodle.&lt;br /&gt;
* This editor was built at the Chair of Applied English Linguistics at Universitaet Tuebingen, Germany, by Andreas Glombitza (andiglombitza(at)googlemail.com) and Achim Skuta (achim.skuta(at)googlemail.com).&lt;br /&gt;
* The authors are currently maintaining this software and webservice as a private project.&lt;br /&gt;
&lt;br /&gt;
Website: [http://projects.ael.uni-tuebingen.de/quiz/htmlarea/index.php http://projects.ael.uni-tuebingen.de/quiz/htmlarea/index.php]&lt;br /&gt;
 &lt;br /&gt;
==Cloze editor plugin for TinyMCE==&lt;br /&gt;
* You can download a [https://moodle.org/plugins/view.php?plugin=other_cloze Moodle plugin from the Moodle plugins database] that will let you create these questions from a graphical interface within your Moodle site. There are versions available for Moodle 1.9, 2.x and 3.x.&lt;br /&gt;
&lt;br /&gt;
==Cloze editor plugin for Atto==&lt;br /&gt;
This [[Cloze editor for Atto|new plugin for Moodle 3.1+]] was developed by Daniel Thies and is available for download and install from the Moodle plugins database..&lt;br /&gt;
&lt;br /&gt;
==Question with 1 media (e.g. audio) and several subquestions==&lt;br /&gt;
As described in [https://moodle.org/mod/forum/discuss.php?d=376874 this forum post], you can easily make a question where the student inspect a media (e.g. an audio file) and then has to answer several small multiple choice questions. The example below is from a Moodle 3.5.2+ site using the new Record audio tool in the Atto editor. The Record video tool will also let you add video as part of the question, if you want to.&lt;br /&gt;
&lt;br /&gt;
[[File:CLOZE question with 1 audio and 3 sub-questions.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Questions with student notes and feedback for teacher==&lt;br /&gt;
You can easily make one/many/all question(s) with an optional field for student notes and/or feedback for the teacher, as requested in [https://moodle.org/mod/forum/discuss.php?d=353587 this forum thread]. Note that only the first MULTICHOICE question is marked, and the two optional fields do not score positive nor negative points:&lt;br /&gt;
&lt;br /&gt;
[[File:CLOZE question with student comment and teacher feedback.png]]&lt;br /&gt;
&lt;br /&gt;
The full question for the above example is:&lt;br /&gt;
&lt;br /&gt;
 Which of the following options is the right answer ?&lt;br /&gt;
 {1:MULTICHOICE_VS:~A wrong answer~Another wrong answer~Yet another wrong answer~%100%This is the only right answer}&lt;br /&gt;
 Optionally:Write a personal note: {0:SHORTANSWER:~%0%I want to have a longer input box for the note.~%100%*}&lt;br /&gt;
 Optionally:Send feedback to teacher:{0:SHORTANSWER:~%0%I want to have a longer input box for the feedback.~%100%*}&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting: The equal sign (=) doesn&#039;t seem to work with SHORTANSWER. ==&lt;br /&gt;
&lt;br /&gt;
On occasion, the Atto editor can insert HTML code, without your knowledge, into the text between { and } with the result that the Cloze question does not work as expected.&lt;br /&gt;
&lt;br /&gt;
For example, if you have the following question text:&lt;br /&gt;
&lt;br /&gt;
 Moodle is the {:SA:=best~=leading} LMS.&lt;br /&gt;
&lt;br /&gt;
the question must contain exactly {:SA:=best~=leading}. However, it is possible that the Atto editor has inserted an HTML tag, for example a &amp;amp;lt;span&amp;amp;gt; tag as follows:&lt;br /&gt;
&lt;br /&gt;
 Moodle is the {:SA:=best~&amp;amp;lt;span&amp;amp;gt;=&amp;amp;lt;/span&amp;amp;gt;leading} LMS.&lt;br /&gt;
&lt;br /&gt;
This can only be revealed if you view the HTML code of the question text. Check [https://docs.moodle.org/310/en/Text_editor#Displaying_the_HTML_code Displaying the HTML code] to see how to do it.&lt;br /&gt;
&lt;br /&gt;
So, if the Cloze question is not working as it should, check that it does not contain intrusive HTML tags. All you have to do is edit the HTML code of the question text and remove these tags.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* See the [http://projects.ael.uni-tuebingen.de/quiz/htmlarea/index.php online Cloze question generator].&lt;br /&gt;
* Download the newest version of the [[Cloze editor for TinyMCE]] for Moodle 1.9 and for Moodle 2.0 to 3.3 from [https://moodle.org/plugins/view.php?plugin=tinymce_clozeeditor the Moodle plugins database]&lt;br /&gt;
* Easily edit embedded answer questions with the additional plugin [[Cloze editor for Atto]] for Moodle 2.7+&lt;br /&gt;
&lt;br /&gt;
This information was drawn from:&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=36521 Is there a guide to using the cloze format?] forum discussion&lt;br /&gt;
*Using Moodle [http://moodle.org/mod/forum/discuss.php?d=36430&amp;amp;parent=170308 Cloze-type question syntax] forum post&lt;br /&gt;
&lt;br /&gt;
[[Category:Language teaching]]&lt;br /&gt;
&lt;br /&gt;
[[de:Fragetyp Lückentext (Cloze)]]&lt;br /&gt;
[[es:Tipo de Pregunta con respuestas incrustadas (Cloze)]]&lt;br /&gt;
[[fr:Question Cloze à réponses intégrées]]&lt;br /&gt;
[[ja: 穴埋め問題 ( Cloze ) タイプ]]&lt;br /&gt;
[[zh:填空題(克漏字)]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Session_handling&amp;diff=136770</id>
		<title>Session handling</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Session_handling&amp;diff=136770"/>
		<updated>2020-03-18T14:00:04Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Add missing Redis configuration settings&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;
&lt;br /&gt;
==Use database for session information==&lt;br /&gt;
&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;
&lt;br /&gt;
==Timeout==&lt;br /&gt;
&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;
&lt;br /&gt;
==Cookie prefix==&lt;br /&gt;
&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;
&lt;br /&gt;
==Cookie path==&lt;br /&gt;
&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;
&lt;br /&gt;
==Cookie domain==&lt;br /&gt;
&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;
&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 config-dist.php file.&lt;br /&gt;
&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;code php&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;/code&amp;gt;&lt;br /&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;
&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;
&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;code php&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;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* File based sessions require file system that supports file locking.&lt;br /&gt;
&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;
&lt;br /&gt;
&amp;lt;code php&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;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* DB sessions are not compatible with MyISAM database engine.&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;
&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;code php&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_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;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&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;
&lt;br /&gt;
There is an experimental feature in Moodle 3.9 allowing 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;
&lt;br /&gt;
Details TBA&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Sessions FAQ]]&lt;br /&gt;
&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>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Email_setup_gmail&amp;diff=136690</id>
		<title>Email setup gmail</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Email_setup_gmail&amp;diff=136690"/>
		<updated>2020-03-04T17:19:01Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Add a ref to https://tracker.moodle.org/browse/MDL-61921&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Google&#039;s mail servers can be set up as the SMTP server for Moodle, although in many cases may not be suitable for a production system (see first heading below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Is Google mail suitable for your requirements? ==&lt;br /&gt;
&lt;br /&gt;
Before spending any time trying to get Gmail to work as your SMTP server, please read the following two points carefully and make sure you understand the limitations. It is also worth reading [https://moodle.org/mod/forum/discuss.php?d=65156&amp;amp;parent=988492 this forum post] which suggests what is probably a more suitable solution.&lt;br /&gt;
&lt;br /&gt;
Google mail has a couple of limitations which make it unsuitable for many Moodle installs. Please check the following two points before continuing.&lt;br /&gt;
# &#039;&#039;&#039;No support for multiple &amp;quot;From&amp;quot; addresses.&#039;&#039;&#039; When sending emails, Moodle attempts to send them &amp;quot;From&amp;quot; the email address of the user writing the message, this allows the recipient to reply directly to the sender via email. Google, both in their Gmail and Apps for Education product do not allow this - so any emails sent from the system will be from the account you use to authenticate on the SMTP server. To make things more confusing, the name will be the recipients, but the email address will be the SMTP account&#039;s email address, for example: &amp;quot;Dr Fred Bloggs&amp;quot; &amp;lt;moodlemail@mycollege.edu&amp;gt;. If you wanted to use Gmail&#039;s SMTP regardless, you would be advised to use a dedicated account for the purpose, and have an auto response so that messages to the address bounce back with an instruction to click on the link in the email and reply through Moodle.&lt;br /&gt;
# &#039;&#039;&#039;Daily limit of 500 sent messages.&#039;&#039;&#039; There is a daily limit on any one google account of [http://googlesystem.blogspot.com/2008/06/gmails-limitations-for-sending-messages.html 500 individual email messages, or 2000 recipients across all emails]. Your account can get blocked if you go over this on a regular basis. If you have more than 500 users, it will only take one message to the front page news forum to exceed this quota. &lt;br /&gt;
&lt;br /&gt;
== GMail SMTP with Moodle ==&lt;br /&gt;
Using Gmail&#039;s SMTP servers is a very straight forward process. First navigate to the following location:&lt;br /&gt;
&lt;br /&gt;
Location: &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; Email &amp;gt; Outgoing mail configuration&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the SMTP servers functioning, only four values need to be set:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP hosts:&#039;&#039;&#039; smtp.gmail.com:465   &#039;&#039;NOTE: Leave out the port (:465) in 1.9.2 or lower&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP security:&#039;&#039;&#039; SSL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP username:&#039;&#039;&#039; Your email address @gmail.com or your own domain if using Google Apps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP password:&#039;&#039;&#039; password for the above email account&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may get an email from Gmail saying that an external application is trying to access your account and Google will actually&lt;br /&gt;
prevent this login process from succeeding. &lt;br /&gt;
&lt;br /&gt;
To prevent this from happening, log into your gmail.com account and then visit: [https://accounts.google.com/DisplayUnlockCaptcha https://accounts.google.com/DisplayUnlockCaptcha]&lt;br /&gt;
&lt;br /&gt;
And you will then see the following message:&lt;br /&gt;
&lt;br /&gt;
 Sign in using the application you want to authorize access to your account within the next ten minutes.&lt;br /&gt;
 Google will remember the application after it signs in, and will allow it to access your account in the future&lt;br /&gt;
 as long as it uses the correct password.&lt;br /&gt;
&lt;br /&gt;
After you have done this, you will then be able to send emails through the Google SMTP server.&lt;br /&gt;
&lt;br /&gt;
== See also==&lt;br /&gt;
&lt;br /&gt;
*Email settings in [[Messaging settings]]&lt;br /&gt;
* Root CA certificates should be up-to-date [https://moodle.org/mod/forum/discuss.php?d=366514#p1478917 to avoid connections issues]&lt;br /&gt;
* Look at MDL-61921 for [https://developers.google.com/gmail/imap/xoauth2-protocol XOAUTH2] support&lt;br /&gt;
&lt;br /&gt;
[[ja:GmailでのEメール設定]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Installing_Oracle_for_PHP&amp;diff=132916</id>
		<title>Installing Oracle for PHP</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Installing_Oracle_for_PHP&amp;diff=132916"/>
		<updated>2019-01-02T20:45:47Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Fixed broken link. Credits goes to Visvanath Ratnaweera (https://moodle.org/mod/forum/discuss.php?d=380452#p1533665)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html&lt;br /&gt;
* http://moodle.org/mod/forum/discuss.php?d=65488#p308002 (with attached html document)&lt;br /&gt;
* http://es.php.net/oci8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing Moodle on Windows with Oracle Express Edition ==&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
This section explains how to install Moodle with Oracle Express Edition on Windows. I&#039;m using it for &#039;&#039;&#039;debugging&#039;&#039;&#039; purpose. It&#039;s definitively not a production environment. The goal is to setup easily and quickly a Moodle/Windows/Oracle environment.&lt;br /&gt;
&lt;br /&gt;
=== Install Oracle ===&lt;br /&gt;
# Download Oracle Express Edition on [http://www.oracle.com/technology/products/database/xe/index.html Oracle web site].&lt;br /&gt;
# You will also need the Instant client [http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html from here] (free account sign up needed). Copy everything from the unzipped folder into apache/bin.&lt;br /&gt;
# Install both.&amp;lt;br /&amp;gt;&lt;br /&gt;
# Access to the oracle console at http://127.0.0.1:8080/apex (Login=SYS Password=the_one_you_entered_during_the_installation).&lt;br /&gt;
# Create a new user and give it all rights (including DBA).&lt;br /&gt;
# Go to the SQL Commands page and grant your new user the dmbs_lock permission...&amp;lt;code sql&amp;gt;&lt;br /&gt;
grant execute on dbms_lock to XXXXX;&lt;br /&gt;
&amp;lt;/code&amp;gt;...where XXXXX is the username of your new user.&lt;br /&gt;
# Log out and log in as the new user.&lt;br /&gt;
# Run the script found in the Moodle codebase at /lib/dml/oci_native_moodle_package.sql. If you can not run this script directly, you can run its parts (separated by slashes) independently via the SQL Commands page.&lt;br /&gt;
&lt;br /&gt;
Note: Oracle Express Edition 10g is limited at one database called &#039;XE&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Set up your Oracle extension ===&lt;br /&gt;
&lt;br /&gt;
This document does not explain how to setup apache/php for Oracle. You can have more information on [http://www.oracle.com/technology/tech/php/htdocs/php-oracle-tutorial.html Oracle Documentation].&lt;br /&gt;
&lt;br /&gt;
Edit your phi.ini file, uncomment (remove the leading semicolon) the php_oci8 extension. In a WAMP setup, this is listed as...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
extension=php_oci8.dll&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, if you are going to use the installation for development/testing purposes, uncomment the following line and set the value to zero. It&#039;s not needed for normal operations (it causes a BIG slowdown of the system!).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
oci8.statement_cache_size = 0&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need to uncomment php_oracle, php_pdo_oci, php_pdo_oci8 in some set-ups.&lt;br /&gt;
&lt;br /&gt;
=== Install Moodle ===&lt;br /&gt;
On the database setup page:&amp;lt;br /&amp;gt;&lt;br /&gt;
Driver: Oracle oci8 (in the config file it should read &amp;quot;oci8po&amp;quot; for a 1.9.x install and &amp;quot;oci&amp;quot; for a 2.0.x install)&amp;lt;br /&amp;gt;&lt;br /&gt;
Host: empty the field&amp;lt;br /&amp;gt;&lt;br /&gt;
Database: //localhost:1521/XE&amp;lt;br /&amp;gt;&lt;br /&gt;
User: the user that you created&amp;lt;br /&amp;gt;&lt;br /&gt;
Password: the password you gave to the user&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure Apache ===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re running Moodle on Oracle with Apache on Linux, you might have issues with PHP being able to see the system environment variables.  To resolve this, you can edit /etc/sysconfig/apache2 and add the following lines to the bottom:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2# Set LANG Variables for UTF-8&amp;lt;br /&amp;gt;&lt;br /&gt;
NLS_LANG=AMERICAN_AMERICA.AL32UTF8&amp;lt;br /&amp;gt;&lt;br /&gt;
LANG=en_US.UTF-8&amp;lt;br /&amp;gt;&lt;br /&gt;
LC_ALL=en_US.UTF-8&amp;lt;br /&amp;gt;&lt;br /&gt;
LC_COLLATE=en_US.UTF-8&amp;lt;br /&amp;gt;&lt;br /&gt;
LC_CTYPE=en_US.UTF-8&amp;lt;br /&amp;gt;&lt;br /&gt;
LC_MESSAGES=en_US.UTF-8&amp;lt;br /&amp;gt;&lt;br /&gt;
LC_MONETARY=en_US.UTF-8&amp;lt;br /&amp;gt;&lt;br /&gt;
LC_NUMERIC=en_US.UTF-8&amp;lt;br /&amp;gt;&lt;br /&gt;
LC_TIME=en_US.UTF-8&amp;lt;br /&amp;gt;&lt;br /&gt;
NLS_NUMERIC_CHARACTERS=&#039;.,&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
export LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIM NLS_LANG LD_LIBRARY_PATH NLS_NUMERIC_CHARACTERS&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Also need to add those two lines to ~/.bashrc so that the PHP command-line client can see it too. &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing Oracle Express on Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
I needed to test an installation of Oracle with Moodle, here&#039;s what I did&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 14.04.1 LTS 64 bit&lt;br /&gt;
* Oracle 11g Release 2 Express Edition&lt;br /&gt;
* SQL Developer 4.0.3.16&lt;br /&gt;
&lt;br /&gt;
=== Oracle Express and SQL Developer ===&lt;br /&gt;
&lt;br /&gt;
Ignore all other sites and follow these instructions - http://blog.whitehorses.nl/2014/03/18/installing-java-oracle-11g-r2-express-edition-and-sql-developer-on-ubuntu-64-bit/&lt;br /&gt;
&lt;br /&gt;
Log out of Chrome before doing this bit though because Chrome uses the same folder and it will instantly crash.&lt;br /&gt;
&lt;br /&gt;
 sudo rm -rf /dev/shm&lt;br /&gt;
 sudo mkdir /dev/shm&lt;br /&gt;
 sudo mount -t tmpfs shmfs -o size=4096m /dev/shm&lt;br /&gt;
&lt;br /&gt;
Also, change 4096m to whatever half your memory is.&lt;br /&gt;
&lt;br /&gt;
If you get a fatal error when running sqldeveloper then&lt;br /&gt;
&lt;br /&gt;
 gksudo gedit /opt/sqldeveloper/sqldeveloper/bin/sqldeveloper&lt;br /&gt;
&lt;br /&gt;
and add these 2 lines at the top&lt;br /&gt;
&lt;br /&gt;
 unset GNOME_DESKTOP_SESSION_ID&lt;br /&gt;
 unset DBUS_SESSION_BUS_ADDRESS&lt;br /&gt;
&lt;br /&gt;
Found the answer here http://linuxsagas.digitaleagle.net/2014/01/28/fixing-sql-developer-4-0/&lt;br /&gt;
&lt;br /&gt;
After installing and when creating a connection, the default username is SYSTEM and use the password created in the step sudo /etc/init.d/oracle-xe configure&lt;br /&gt;
&lt;br /&gt;
In gnome classic - The menus for Oracle are under Other, sqldeveloper is under Programming&lt;br /&gt;
&lt;br /&gt;
=== Create a user ===&lt;br /&gt;
&lt;br /&gt;
Probably easiest to use the application express:&lt;br /&gt;
&lt;br /&gt;
* Go to &amp;quot;Get Started With Oracle Database 11g Express Edition&amp;quot; - either from the applications -&amp;gt; other menu (in gnome) or via the desktop icon that was created when installing.&lt;br /&gt;
* This will open a page in your browser.&lt;br /&gt;
* Login as SYSTEM&lt;br /&gt;
* Click on the application express tab&lt;br /&gt;
* Create a user and password&lt;br /&gt;
* Then go to SQL Developer (In Gnome classic - go to applications -&amp;gt; programming -&amp;gt; sqldeveloper) and create and open a connection using the newly created user&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
&lt;br /&gt;
Follow these instructions - https://help.ubuntu.com/community/PHPOracle&lt;br /&gt;
&lt;br /&gt;
Add extension=oci8.so to both /etc/php5/apache2/php.ini and /etc/php5/cli/php.ini otherwise the client php cron won&#039;t work&lt;br /&gt;
&lt;br /&gt;
Restart apache2&lt;br /&gt;
&lt;br /&gt;
Then test with this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
error_reporting( -1 );&lt;br /&gt;
ini_set( &#039;display_errors&#039;, 1 );&lt;br /&gt;
&lt;br /&gt;
$conn = oci_connect(&#039;USERNAME&#039;, &#039;password&#039;, &#039;localhost/XE&#039;);&lt;br /&gt;
if (!$conn) {&lt;br /&gt;
    $e = oci_error();&lt;br /&gt;
    trigger_error(htmlentities($e[&#039;message&#039;], ENT_QUOTES), E_USER_ERROR);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Prepare the statement&lt;br /&gt;
$sql = &amp;quot;SELECT * FROM atable&amp;quot;; // Change this.&lt;br /&gt;
$stid = oci_parse($conn, $sql);&lt;br /&gt;
if (!$stid) {&lt;br /&gt;
    $e = oci_error($conn);&lt;br /&gt;
    trigger_error(htmlentities($e[&#039;message&#039;], ENT_QUOTES), E_USER_ERROR);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Perform the logic of the query&lt;br /&gt;
$r = oci_execute($stid);&lt;br /&gt;
if (!$r) {&lt;br /&gt;
    $e = oci_error($stid);&lt;br /&gt;
    trigger_error(htmlentities($e[&#039;message&#039;], ENT_QUOTES), E_USER_ERROR);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Fetch the results of the query&lt;br /&gt;
print &amp;quot;&amp;lt;table border=&#039;1&#039;&amp;gt;\n&amp;quot;;&lt;br /&gt;
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {&lt;br /&gt;
    print &amp;quot;&amp;lt;tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
    foreach ($row as $item) {&lt;br /&gt;
        print &amp;quot;    &amp;lt;td&amp;gt;&amp;quot; . ($item !== null ? htmlentities($item, ENT_QUOTES) : &amp;quot;&amp;amp;nbsp;&amp;quot;) . &amp;quot;&amp;lt;/td&amp;gt;\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    print &amp;quot;&amp;lt;/tr&amp;gt;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;lt;/table&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
oci_free_statement($stid);&lt;br /&gt;
oci_close($conn);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related links ==&lt;br /&gt;
*[http://lewiscarr.co.uk/2009/01/installing-oracle-drivers-with-php/ Installing ORACLE drivers with PHP]&lt;br /&gt;
*[[Installing MSSQL for PHP]]&lt;br /&gt;
*[[PHP]]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=134729#p588963 Can i install Moodle with Oracle database]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=65488 Who uses Oracle]&lt;br /&gt;
*[https://docs.moodle.org/en/Step-by-step_Install_Guide_for_Solaris_10_with_Oracle_10 Step by step Install Guide for Solaris 10 with Oracle 10]&lt;br /&gt;
*[http://learningischange.com/2009/05/29/install-moodle-on-an-oracle-database-in-25-minutes-or-less/ Install Moodle on an Oracle Database (in 25 minutes or less)]. The related Using Moodle forum discussion is [http://moodle.org/mod/forum/discuss.php?d=124629 here].&lt;br /&gt;
*[http://www.mguhlin.org/2009/05/moodle-on-oracle-database.html Moodle on Oracle Database] discussion on Miguel Guhlin&#039;s blog &lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:XMLDB]]&lt;br /&gt;
[[Category:DB]]&lt;br /&gt;
[[Category:SQL databases]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Internet_Information_Services&amp;diff=131833</id>
		<title>Internet Information Services</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Internet_Information_Services&amp;diff=131833"/>
		<updated>2018-08-30T14:05:10Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Fixed typo and URLs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}[[Internet Information Services]] (&#039;&#039;&#039;IIS&#039;&#039;&#039;) is the web server software bundled with Windows Server, as well as certain client versions of Windows. Please note Apache web server has much better community support and there are usually fewer problems when running Moodle on Apache. Windows OS is not suitable for large installations because PHP is limited to 32bit even in 64bit Windows, please consider using Linux or other unix-like operating systems instead.&lt;br /&gt;
&lt;br /&gt;
==IIS installation steps (Windows 7 and above)==&lt;br /&gt;
&lt;br /&gt;
# Go to Control panel, click on Programs and Turn Windows features on or off&lt;br /&gt;
# Tick &amp;quot;Internet Information Services&amp;quot; and &amp;quot;Internet Information Services / Application Development Features / CGI&amp;quot;&lt;br /&gt;
# Install [http://www.microsoft.com/web/downloads/platform.aspx Microsoft Web Platform Installer]&lt;br /&gt;
&lt;br /&gt;
==PHP installation steps==&lt;br /&gt;
&lt;br /&gt;
It is strongly recommended to use only the official MS Platform installer, it automatically installs all necessary components and facilitates easy configuration with PHP manager. Manual installation attempts often fail or may not allow Moodle to function properly. Unfortunately MS does not usually distribute up-to-date version of PHP, you may need to download them manually.&lt;br /&gt;
&lt;br /&gt;
# Install [http://www.microsoft.com/web/downloads/platform.aspx Microsoft Web Platform Installer]&lt;br /&gt;
# Install latest PHP 7.2.x using Web Platform Installer&lt;br /&gt;
# [Optional] Install URL Rewrite 2.0 using Web Platform Installer&lt;br /&gt;
&lt;br /&gt;
Optionally you may install the required components manually:&lt;br /&gt;
# Download [http://phpmanager.codeplex.com PHP manager for IIS] and install it&lt;br /&gt;
# Download latest PHP 7.2.x VC15 x64 Non Thread Safe from [http://windows.php.net/download/ http://windows.php.net/download/]. On 64bit Windows you should go for x64; otherwise, x86&lt;br /&gt;
# Extract the Zip file to a directory such as C:\PHP\&lt;br /&gt;
# Install the Visual C++ Redistributable for Visual Studio 2017 [https://aka.ms/vs/15/release/VC_redist.x86.exe] - on 64bit Windows install both [https://aka.ms/vs/15/release/VC_redist.x86.exe x86] and [https://aka.ms/vs/15/release/VC_redist.x64.exe x64]&lt;br /&gt;
# Open the Internet Information Service (IIS) Manager - right click on This computer and select Manage&lt;br /&gt;
# Click on PHP Manager icon&lt;br /&gt;
# Register new PHP version - select C:\PHP\php-cgi.exe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning: PHP needs to be configured via FastCGI in IIS, older CGI interface is known to have problems with some file names.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==PHP configuration steps==&lt;br /&gt;
&lt;br /&gt;
# Set PHP configuration to values recommended by PHP Manager&lt;br /&gt;
# Enable required extensions in the PHP manager: php_intl.dll, php_pgsql.dll&lt;br /&gt;
# Enable [[OPcache]] extension&lt;br /&gt;
# Set your timezone in PHP.ini&lt;br /&gt;
# Set appropriate memory limits in PHP.ini&lt;br /&gt;
&lt;br /&gt;
==IIS configuration steps==&lt;br /&gt;
&lt;br /&gt;
# Setup URL rewriting described below&lt;br /&gt;
# Configure IIS to show detailed error pages.&lt;br /&gt;
# Set very long CGI timeout - 1 hour or better more.&lt;br /&gt;
# In IIS Manager add Moodle dirroot directory as a new virtual directory or set it as site directory&lt;br /&gt;
&lt;br /&gt;
===Slasharguments===&lt;br /&gt;
&lt;br /&gt;
The function &#039;&#039;slash arguments&#039;&#039; is required for various features in Moodle to work correctly, as described in [[Using slash arguments]].&lt;br /&gt;
&lt;br /&gt;
IIS 7 should support relative path arguments by default. If it does not work try enabling the following in php.ini&lt;br /&gt;
&lt;br /&gt;
 cgi.fix_pathinfo = 1&lt;br /&gt;
&lt;br /&gt;
===URL rewriting===&lt;br /&gt;
If you can not modify registry as described below you may try manual configuration of rewrite rules, the PHP installation via &#039;&#039;Microsoft Web Platform Installer&#039;&#039; installs necessary &#039;&#039;URL Rewrite 2.0&#039;&#039; module.&lt;br /&gt;
&lt;br /&gt;
[[File:Rewrite_rule_-_Internet_Information_Services_(IIS)_Manager.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add following rewrite rule to enable support for unicode file names in Moodle and to work around internal file length limitation breaking YUI file serving:&lt;br /&gt;
&lt;br /&gt;
* Matches the Pattern - Regular Expressions - &amp;lt;code&amp;gt;^([^\?]+?\.php)(\/.+)$&amp;lt;/code&amp;gt;&lt;br /&gt;
* Action - Rewrite - &amp;lt;code&amp;gt;{R:1}\?file={R:2}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Append query string - enabled&lt;br /&gt;
* Stop processing of subsequent rules - enabled&lt;br /&gt;
&lt;br /&gt;
===Optional UTF-8 file name fix===&lt;br /&gt;
&lt;br /&gt;
By default IIS is unable to handle unicode characters in files uploaded into Moodle. This may result in not working Javascript on Moodle site (impossible to expand navigation, etc.) or broken CSS styles.&lt;br /&gt;
&lt;br /&gt;
See [http://www.iis.net/learn/application-frameworks/install-and-configure-php-on-iis/configuring-the-fastcgi-extension-for-iis-60#utf8servervars Using UTF-8 Encoding for Server Variables] and [http://support.microsoft.com/kb/2277918/ How to get UTF-8 Encoding support in IIS 7.5 in Windows 7 and Windows Server 2008 R2 with the KB 2277918 hotfix].&lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGI timeouts===&lt;br /&gt;
&lt;br /&gt;
By default IIS is configured to stop execution of any PHP script after 5 minutes of activity, this interferes with long running Moodle scripts such as upgrade or cron. The timeout should be increased to at least one hour.&lt;br /&gt;
&lt;br /&gt;
==Directory permissions==&lt;br /&gt;
&lt;br /&gt;
The default IIS account is &#039;&#039;IIS_IUSRS&#039;&#039;, make sure it has appropriate access right to Moodle dirroot (read only) and dataroot (read/write) directories.&lt;br /&gt;
&lt;br /&gt;
==Debugging problems==&lt;br /&gt;
&lt;br /&gt;
By default, IIS uses custom error pages that intentionally hide error details on production sites:&lt;br /&gt;
[[Image:scratch1_77F5DD11.jpg|frame|center|IIS default error message]]&lt;br /&gt;
&lt;br /&gt;
But when you&#039;re diagnosing problems in Moodle that&#039;s not very useful. You can temporarily disable these default error messages in IIS so that you see a specific Moodle error message. To achieve that set the &amp;quot;existingResponse&amp;quot; setting for Custom Error Pages in IIS to “PassThrough” for your Moodle site. The result will be that Moodle displays a more specific message about the error when a problem occurs:&lt;br /&gt;
[[Image:scratch2_243263F6.jpg|frame|center|Useful error message]]&lt;br /&gt;
The generic IIS &amp;quot;404&amp;quot; error message which normally does not reveal any details about the problem will no longer be displayed.&lt;br /&gt;
&lt;br /&gt;
The debugging option in &#039;&#039;Settings&amp;gt;Site administration&amp;gt;Development&amp;gt;Debugging&#039;&#039; should also be enabled so that you see the debug messages.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Installing MSSQL for PHP]]&lt;br /&gt;
* [http://www.iis.net  The Official Microsoft IIS Site]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Internet_Information_Services Wikipedia article on IIS]&lt;br /&gt;
* [http://php.iis.net/ PHP installer for IIS]&lt;br /&gt;
* [http://blogs.iis.net/kehand/archive/2009/08/09/php-and-custom-error-pages.aspx Kern Handa&#039;s blog post about IIS error messages]&lt;br /&gt;
&lt;br /&gt;
[[ja:IIS]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Internet_Information_Services&amp;diff=131832</id>
		<title>Internet Information Services</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Internet_Information_Services&amp;diff=131832"/>
		<updated>2018-08-30T13:54:23Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: 3.5 requires 7.0.x and 7.2.x is supported. 7.0.x has actual 64bit support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}[[Internet Information Services]] (&#039;&#039;&#039;IIS&#039;&#039;&#039;) is the web server software bundled with Windows Server, as well as certain client versions of Windows. Please note Apache web server has much better community support and there are usually fewer problems when running Moodle on Apache. Windows OS is not suitable for large installations because PHP is limited to 32bit even in 64bit Windows, please consider using Linux or other unix-like operating systems instead.&lt;br /&gt;
&lt;br /&gt;
==IIS installation steps (Windows 7 and above)==&lt;br /&gt;
&lt;br /&gt;
# Go to Control panel, click on Programs and Turn Windows features on or off&lt;br /&gt;
# Tick &amp;quot;Internet Information Services&amp;quot; and &amp;quot;Internet Information Services / Application Development Features / CGI&amp;quot;&lt;br /&gt;
# Install [http://www.microsoft.com/web/downloads/platform.aspx Microsoft Web Platform Installer]&lt;br /&gt;
&lt;br /&gt;
==PHP installation steps==&lt;br /&gt;
&lt;br /&gt;
It is strongly recommended to use only the official MS Platform installer, it automatically installs all necessary components and facilitates easy configuration with PHP manager. Manual installation attempts often fail or may not allow Moodle to function properly. Unfortunately MS does not usually distribute up-to-date version of PHP, you may need to download them manually.&lt;br /&gt;
&lt;br /&gt;
# Install [http://www.microsoft.com/web/downloads/platform.aspx Miscrosoft Web Platform Installer]&lt;br /&gt;
# Install latest PHP 7.2.x using Web Platform Installer&lt;br /&gt;
# [Optional] Install URL Rewrite 2.0 using Web Platform Installer&lt;br /&gt;
&lt;br /&gt;
Optionally you may install the required components manually:&lt;br /&gt;
# Download [http://phpmanager.codeplex.com PHP manager for IIS] and install it&lt;br /&gt;
# Download latest PHP 7.2.x VC15 x64 Non Thread Safe from [http://windows.php.net/download/]. On 64bit Windows you should go for x64; otherwise, x86&lt;br /&gt;
# Extract the Zip file to a directory such as C:\PHP\&lt;br /&gt;
# Install the Visual C++ Redistributable for Visual Studio 2017 [https://aka.ms/vs/15/release/VC_redist.x86.exe] - on 64bit Windows install both x86 and [x64 https://aka.ms/vs/15/release/VC_redist.x64.exe]&lt;br /&gt;
# Open the Internet Information Service (IIS) Manager - right click on This computer and select Manage&lt;br /&gt;
# Click on PHP Manager icon&lt;br /&gt;
# Register new PHP version - select C:\PHP\php-cgi.exe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning: PHP needs to be configured via FastCGI in IIS, older CGI interface is known to have problems with some file names.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==PHP configuration steps==&lt;br /&gt;
&lt;br /&gt;
# Set PHP configuration to values recommended by PHP Manager&lt;br /&gt;
# Enable required extensions in the PHP manager: php_intl.dll, php_pgsql.dll&lt;br /&gt;
# Enable [[OPcache]] extension&lt;br /&gt;
# Set your timezone in PHP.ini&lt;br /&gt;
# Set appropriate memory limits in PHP.ini&lt;br /&gt;
&lt;br /&gt;
==IIS configuration steps==&lt;br /&gt;
&lt;br /&gt;
# Setup URL rewriting described below&lt;br /&gt;
# Configure IIS to show detailed error pages.&lt;br /&gt;
# Set very long CGI timeout - 1 hour or better more.&lt;br /&gt;
# In IIS Manager add Moodle dirroot directory as a new virtual directory or set it as site directory&lt;br /&gt;
&lt;br /&gt;
===Slasharguments===&lt;br /&gt;
&lt;br /&gt;
The function &#039;&#039;slash arguments&#039;&#039; is required for various features in Moodle to work correctly, as described in [[Using slash arguments]].&lt;br /&gt;
&lt;br /&gt;
IIS 7 should support relative path arguments by default. If it does not work try enabling the following in php.ini&lt;br /&gt;
&lt;br /&gt;
 cgi.fix_pathinfo = 1&lt;br /&gt;
&lt;br /&gt;
===URL rewriting===&lt;br /&gt;
If you can not modify registry as described below you may try manual configuration of rewrite rules, the PHP installation via &#039;&#039;Microsoft Web Platform Installer&#039;&#039; installs necessary &#039;&#039;URL Rewrite 2.0&#039;&#039; module.&lt;br /&gt;
&lt;br /&gt;
[[File:Rewrite_rule_-_Internet_Information_Services_(IIS)_Manager.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add following rewrite rule to enable support for unicode file names in Moodle and to work around internal file length limitation breaking YUI file serving:&lt;br /&gt;
&lt;br /&gt;
* Matches the Pattern - Regular Expressions - &amp;lt;code&amp;gt;^([^\?]+?\.php)(\/.+)$&amp;lt;/code&amp;gt;&lt;br /&gt;
* Action - Rewrite - &amp;lt;code&amp;gt;{R:1}\?file={R:2}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Append query string - enabled&lt;br /&gt;
* Stop processing of subsequent rules - enabled&lt;br /&gt;
&lt;br /&gt;
===Optional UTF-8 file name fix===&lt;br /&gt;
&lt;br /&gt;
By default IIS is unable to handle unicode characters in files uploaded into Moodle. This may result in not working Javascript on Moodle site (impossible to expand navigation, etc.) or broken CSS styles.&lt;br /&gt;
&lt;br /&gt;
See [http://www.iis.net/learn/application-frameworks/install-and-configure-php-on-iis/configuring-the-fastcgi-extension-for-iis-60#utf8servervars Using UTF-8 Encoding for Server Variables] and [http://support.microsoft.com/kb/2277918/ How to get UTF-8 Encoding support in IIS 7.5 in Windows 7 and Windows Server 2008 R2 with the KB 2277918 hotfix].&lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGI timeouts===&lt;br /&gt;
&lt;br /&gt;
By default IIS is configured to stop execution of any PHP script after 5 minutes of activity, this interferes with long running Moodle scripts such as upgrade or cron. The timeout should be increased to at least one hour.&lt;br /&gt;
&lt;br /&gt;
==Directory permissions==&lt;br /&gt;
&lt;br /&gt;
The default IIS account is &#039;&#039;IIS_IUSRS&#039;&#039;, make sure it has appropriate access right to Moodle dirroot (read only) and dataroot (read/write) directories.&lt;br /&gt;
&lt;br /&gt;
==Debugging problems==&lt;br /&gt;
&lt;br /&gt;
By default, IIS uses custom error pages that intentionally hide error details on production sites:&lt;br /&gt;
[[Image:scratch1_77F5DD11.jpg|frame|center|IIS default error message]]&lt;br /&gt;
&lt;br /&gt;
But when you&#039;re diagnosing problems in Moodle that&#039;s not very useful. You can temporarily disable these default error messages in IIS so that you see a specific Moodle error message. To achieve that set the &amp;quot;existingResponse&amp;quot; setting for Custom Error Pages in IIS to “PassThrough” for your Moodle site. The result will be that Moodle displays a more specific message about the error when a problem occurs:&lt;br /&gt;
[[Image:scratch2_243263F6.jpg|frame|center|Useful error message]]&lt;br /&gt;
The generic IIS &amp;quot;404&amp;quot; error message which normally does not reveal any details about the problem will no longer be displayed.&lt;br /&gt;
&lt;br /&gt;
The debugging option in &#039;&#039;Settings&amp;gt;Site administration&amp;gt;Development&amp;gt;Debugging&#039;&#039; should also be enabled so that you see the debug messages.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Installing MSSQL for PHP]]&lt;br /&gt;
* [http://www.iis.net  The Official Microsoft IIS Site]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Internet_Information_Services Wikipedia article on IIS]&lt;br /&gt;
* [http://php.iis.net/ PHP installer for IIS]&lt;br /&gt;
* [http://blogs.iis.net/kehand/archive/2009/08/09/php-and-custom-error-pages.aspx Kern Handa&#039;s blog post about IIS error messages]&lt;br /&gt;
&lt;br /&gt;
[[ja:IIS]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Email_setup_gmail&amp;diff=130244</id>
		<title>Email setup gmail</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Email_setup_gmail&amp;diff=130244"/>
		<updated>2018-03-07T23:23:39Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: /* See also */ Added a reference about keeping root CA certificates up-to-date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Google&#039;s mail servers can be set up as the SMTP server for Moodle, although in many cases may not be suitable for a production system (see first heading below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Is Google mail suitable for your requirements? ==&lt;br /&gt;
&lt;br /&gt;
Before spending any time trying to get Gmail to work as your SMTP server, please read the following two points carefully and make sure you understand the limitations. It is also worth reading [https://moodle.org/mod/forum/discuss.php?d=65156&amp;amp;parent=988492 this forum post] which suggests what is probably a more suitable solution.&lt;br /&gt;
&lt;br /&gt;
Google mail has a couple of limitations which make it unsuitable for many Moodle installs. Please check the following two points before continuing.&lt;br /&gt;
# &#039;&#039;&#039;No support for multiple &amp;quot;From&amp;quot; addresses.&#039;&#039;&#039; When sending emails, Moodle attempts to send them &amp;quot;From&amp;quot; the email address of the user writing the message, this allows the recipient to reply directly to the sender via email. Google, both in their Gmail and Apps for Education product do not allow this - so any emails sent from the system will be from the account you use to authenticate on the SMTP server. To make things more confusing, the name will be the recipients, but the email address will be the SMTP account&#039;s email address, for example: &amp;quot;Dr Fred Bloggs&amp;quot; &amp;lt;moodlemail@mycollege.edu&amp;gt;. If you wanted to use Gmail&#039;s SMTP regardless, you would be advised to use a dedicated account for the purpose, and have an auto response so that messages to the address bounce back with an instruction to click on the link in the email and reply through Moodle.&lt;br /&gt;
# &#039;&#039;&#039;Daily limit of 500 sent messages.&#039;&#039;&#039; There is a daily limit on any one google account of [http://googlesystem.blogspot.com/2008/06/gmails-limitations-for-sending-messages.html 500 individual email messages, or 2000 recipients across all emails]. Your account can get blocked if you go over this on a regular basis. If you have more than 500 users, it will only take one message to the front page news forum to exceed this quota. &lt;br /&gt;
&lt;br /&gt;
== GMail SMTP with Moodle ==&lt;br /&gt;
Using Gmail&#039;s SMTP servers is a very straight forward process. First navigate to the following location:&lt;br /&gt;
&lt;br /&gt;
Location: &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Email&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To get the SMTP servers functioning, only four values need to be set:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP hosts:&#039;&#039;&#039; smtp.gmail.com:465   &#039;&#039;NOTE: Leave out the port (:465) in 1.9.2 or lower&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP security:&#039;&#039;&#039; SSL&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP username:&#039;&#039;&#039; Your email address @gmail.com or your own domain if using Google Apps&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SMTP password:&#039;&#039;&#039; password for the above email account&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You may get an email from Gmail saying that an external application is trying to access your account and Google will actually&lt;br /&gt;
prevent this login process from succeeding. &lt;br /&gt;
&lt;br /&gt;
To prevent this from happening, log into your gmail.com account and then visit: [https://accounts.google.com/DisplayUnlockCaptcha https://accounts.google.com/DisplayUnlockCaptcha]&lt;br /&gt;
&lt;br /&gt;
And you will then see the following message:&lt;br /&gt;
&lt;br /&gt;
 Sign in using the application you want to authorize access to your account within the next ten minutes.&lt;br /&gt;
 Google will remember the application after it signs in, and will allow it to access your account in the future&lt;br /&gt;
 as long as it uses the correct password.&lt;br /&gt;
&lt;br /&gt;
After you have done this, you will then be able to send emails through the Google SMTP server.&lt;br /&gt;
&lt;br /&gt;
== See also==&lt;br /&gt;
&lt;br /&gt;
*Email settings in [[Messaging settings]]&lt;br /&gt;
* Root CA certificates should be up-to-date [https://moodle.org/mod/forum/discuss.php?d=366514#p1478917 to avoid connections issues]&lt;br /&gt;
&lt;br /&gt;
[[ja:GmailでのEメール設定]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Antivirus_plugins&amp;diff=130107</id>
		<title>Antivirus plugins</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Antivirus_plugins&amp;diff=130107"/>
		<updated>2018-02-11T18:31:39Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Added a couple of Community refs about SElinux and PrivateTmp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Security}}&lt;br /&gt;
An administrator can enable and configure virus scanners for use on uploaded files via &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Antivirus plugins &amp;gt; Manage antivirus plugins&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
ClamAV antivirus is available as a standard plugin. It&#039;s likely that more antivirus plugins will be available in future from the [https://moodle.org/plugins/ Moodle plugins directory].&lt;br /&gt;
&lt;br /&gt;
==ClamAV antivirus==&lt;br /&gt;
&lt;br /&gt;
To make use of ClamAV antivirus, ClamAV® should be installed on your server. See http://www.clamav.net for more information.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* RHEL/CentOS and [https://en.wikipedia.org/wiki/Security-Enhanced_Linux SELinux]: https://moodle.org/mod/forum/discuss.php?d=316066&lt;br /&gt;
* RHEL/CentOS and [https://access.redhat.com/blogs/766093/posts/1976243 PrivateTmp]: https://moodle.org/mod/forum/discuss.php?d=364706&lt;br /&gt;
&lt;br /&gt;
[[Category:Site administration]]&lt;br /&gt;
&lt;br /&gt;
[[eu:Antibirusa]]&lt;br /&gt;
[[de:Antivirus]]&lt;br /&gt;
[[es:Plugins antivirus]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Nginx&amp;diff=130106</id>
		<title>Nginx</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Nginx&amp;diff=130106"/>
		<updated>2018-02-11T14:52:46Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Be more explicit about the rewrite rule approach being deprecated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}[[Nginx]] [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. The nginx project started with a strong focus on high concurrency, high performance and low memory usage. It is licensed under the 2-clause BSD-like license and it runs on Linux, BSD variants, Mac OS X, Solaris, AIX, HP-UX, as well as on other *nix flavours. It also has a proof of concept port for Microsoft Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The following is community-contributed documentation on Nginx configuration. Amendments and additions are welcome.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Nginx configuration ==&lt;br /&gt;
&lt;br /&gt;
=== PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Nginx is usually configured to interface with PHP via [http://php.net/manual/en/install.fpm.php php-fpm]. This is both fast and robust.&lt;br /&gt;
&lt;br /&gt;
PHP-FPM&#039;s default behaviour for pools is usually to restrict the execution of scripts to a specific extension, i.e. .php. You should ensure that this behaviour is configured within your particular package/distribution, e.g. for debian,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/php5/fpm/pool.d/www.conf&#039;&#039;&#039;&lt;br /&gt;
 security.limit_extensions = .php&lt;br /&gt;
&lt;br /&gt;
=== Nginx ===&lt;br /&gt;
&lt;br /&gt;
Add the following &#039;slash arguments&#039; compatible &#039;location&#039; block to your vhosts &#039;server&#039; in your nginx configuration (further explanation at &#039;[[Using slash arguments]]&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nginx.conf location:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ~ [^/]\.php(/|$) {&lt;br /&gt;
    fastcgi_split_path_info  ^(.+\.php)(/.+)$;&lt;br /&gt;
    fastcgi_index            index.php;&lt;br /&gt;
    fastcgi_pass             127.0.0.1:9000 (or your php-fpm socket);&lt;br /&gt;
    include                  fastcgi_params;&lt;br /&gt;
    fastcgi_param   PATH_INFO       $fastcgi_path_info;&lt;br /&gt;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you find that this does not work (scripts, styles, and images not loading) &#039;&#039;&#039;and&#039;&#039;&#039; that there are &amp;lt;code&amp;gt;open() &amp;quot;...&amp;quot; failed (20: Not a directory)&amp;lt;/code&amp;gt; lines appearing in your logs: Check whether there are any directives related to static content &#039;&#039;&#039;before&#039;&#039;&#039; this block and try moving them &#039;&#039;&#039;after&#039;&#039;&#039; this block.&lt;br /&gt;
&lt;br /&gt;
===== XSendfile aka X-Accel-Redirect =====&lt;br /&gt;
&lt;br /&gt;
Setting Moodle and Nginx to use XSendfile functionality is a big win as it frees PHP from delivering files allowing Nginx to do what it does best, i.e. deliver files. &lt;br /&gt;
&lt;br /&gt;
Enable xsendfile for Nginx in Moodles config.php, this is documented in the config-dist.php, a minimal configuration look like this,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;xsendfile = &#039;X-Accel-Redirect&#039;;&lt;br /&gt;
$CFG-&amp;gt;xsendfilealiases = array(&lt;br /&gt;
    &#039;/dataroot/&#039; =&amp;gt; $CFG-&amp;gt;dataroot&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Accompany this with a matching &#039;location&#039; block in your nginx server configuration.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location /dataroot/ {&lt;br /&gt;
    internal;&lt;br /&gt;
    alias &amp;amp;lt;full_moodledata_path&amp;amp;gt;; # ensure the path ends with /&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The definition of &#039;internal&#039; here is &#039;&#039;&#039;critical&#039;&#039;&#039; as it prevents client access to your dataroot.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Real &amp;lt;tt&amp;gt;PATH_INFO&amp;lt;/tt&amp;gt; support:&lt;br /&gt;
** https://moodle.org/mod/forum/discuss.php?d=278916&lt;br /&gt;
** https://moodle.org/mod/forum/discuss.php?d=307388&lt;br /&gt;
* &#039;&#039;&#039;[Deprecated]&#039;&#039;&#039; Internal rewriting to the HTTP GET &amp;lt;tt&amp;gt;file&amp;lt;/tt&amp;gt; parameter:&lt;br /&gt;
** https://moodle.org/mod/forum/discuss.php?d=83445&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
[[es:Nginx]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=admin/environment/php_extension/fileinfo&amp;diff=129929</id>
		<title>admin/environment/php extension/fileinfo</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=admin/environment/php_extension/fileinfo&amp;diff=129929"/>
		<updated>2018-01-25T21:15:01Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Improved since the statement is not so clear enough out of the original context. E.g.: https://moodle.org/mod/forum/discuss.php?d=364609#p1470464&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [https://pecl.php.net/package/Fileinfo Fileinfo PECL package has been superseded], but is still maintained for bugs and security fixes. Indeed the &#039;&#039;&#039;fileinfo&#039;&#039;&#039; extension has been moved to php sources [php-src/ext/fileinfo https://pecl.php.net/package/php-src/ext/fileinfo] since 5.3.0: you should enable it, since it should be already installed by default with your PHP installation. Look for more specific details for your OS environment and/or contact your Hosting Provider.&lt;br /&gt;
&lt;br /&gt;
[[es:admin/environment/php extension/fileinfo]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Secure_Moodle_on_Raspberry_Pi_Model_2,_Gentoo_Linux_and_Nginx_server&amp;diff=128317</id>
		<title>Secure Moodle on Raspberry Pi Model 2, Gentoo Linux and Nginx server</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Secure_Moodle_on_Raspberry_Pi_Model_2,_Gentoo_Linux_and_Nginx_server&amp;diff=128317"/>
		<updated>2017-07-23T11:53:10Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Fixed MS&amp;#039; user link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi,&lt;br /&gt;
&lt;br /&gt;
I want to share my experiences when I installed Moodle on a &#039;&#039;&#039;Raspberry Pi Model 2&#039;&#039;&#039; hardware, on which is running &#039;&#039;&#039;Gentoo Linux&#039;&#039;&#039; operating system and the &#039;&#039;&#039;Nginx&#039;&#039;&#039; web server. It can reach here: [https://www.cspl.hu/moodle]&lt;br /&gt;
&lt;br /&gt;
First I installed Gentoo Linux on my Raspberry Pi Model 2 hardware by following this guide:&lt;br /&gt;
[https://wiki.gentoo.org/wiki/Raspberry_Pi/Quick_Install_Guide]&lt;br /&gt;
&lt;br /&gt;
Then I installed and did setup Nginx web server by following these guids:&lt;br /&gt;
[https://wiki.gentoo.org/wiki/Nginx]&lt;br /&gt;
[https://www.nginx.com/blog/nginx-https-101-ssl-basics-getting-started/]&lt;br /&gt;
&lt;br /&gt;
My &#039;&#039;&#039;nginx.config&#039;&#039;&#039; file is:&lt;br /&gt;
&amp;lt;code bash&amp;gt;user nginx nginx;&lt;br /&gt;
worker_processes 1;&lt;br /&gt;
&lt;br /&gt;
error_log /var/log/nginx/error_log info;&lt;br /&gt;
&lt;br /&gt;
events {&lt;br /&gt;
        worker_connections 1024;&lt;br /&gt;
        use epoll;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
http {&lt;br /&gt;
        include /etc/nginx/mime.types;&lt;br /&gt;
        default_type application/octet-stream;&lt;br /&gt;
&lt;br /&gt;
        log_format main&lt;br /&gt;
        &#039;$remote_addr - $remote_user [$time_local] &#039;&lt;br /&gt;
        &#039;&amp;quot;$request&amp;quot; $status $bytes_sent &#039;&lt;br /&gt;
        &#039;&amp;quot;$http_referer&amp;quot; &amp;quot;$http_user_agent&amp;quot; &#039;&lt;br /&gt;
        &#039;&amp;quot;$gzip_ratio&amp;quot;&#039;;&lt;br /&gt;
&lt;br /&gt;
        client_max_body_size 15m;&lt;br /&gt;
        client_header_timeout 10m;&lt;br /&gt;
        client_body_timeout 10m;&lt;br /&gt;
        send_timeout 10m;&lt;br /&gt;
&lt;br /&gt;
        connection_pool_size 256;&lt;br /&gt;
        client_header_buffer_size 1k;&lt;br /&gt;
        large_client_header_buffers 4 2k;&lt;br /&gt;
        request_pool_size 4k;&lt;br /&gt;
&lt;br /&gt;
        gzip off;&lt;br /&gt;
&lt;br /&gt;
        output_buffers 1 32k;&lt;br /&gt;
        postpone_output 1460;&lt;br /&gt;
&lt;br /&gt;
        sendfile on;&lt;br /&gt;
        tcp_nopush on;&lt;br /&gt;
        tcp_nodelay on;&lt;br /&gt;
&lt;br /&gt;
        keepalive_timeout 75 20;&lt;br /&gt;
&lt;br /&gt;
        ignore_invalid_headers on;&lt;br /&gt;
&lt;br /&gt;
        index index.html index.php;&lt;br /&gt;
&lt;br /&gt;
        add_header Strict-Transport-Security &amp;quot;max-age=15768000; includeSubDomains&amp;quot; always;&lt;br /&gt;
&lt;br /&gt;
        server {&lt;br /&gt;
                listen 443 ssl http2;&lt;br /&gt;
                listen [::]:443 ssl http2;&lt;br /&gt;
&lt;br /&gt;
                server_name www.cspl.hu;&lt;br /&gt;
&lt;br /&gt;
                root /var/www/localhost/htdocs;&lt;br /&gt;
                location = /KisTechTavOktKulcsosPicike.ico {&lt;br /&gt;
                log_not_found off;&lt;br /&gt;
                access_log off;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                ssl_certificate /etc/ssl/certs/chained.pem;&lt;br /&gt;
                ssl_certificate_key /etc/ssl/private/domain.key;&lt;br /&gt;
                ssl_session_timeout 5m;&lt;br /&gt;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;&lt;br /&gt;
                ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-S&lt;br /&gt;
HA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-&lt;br /&gt;
AES256-SHA:DHE-RSA-AES128-SHA:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:&lt;br /&gt;
RSA+3DES:!MD5;&lt;br /&gt;
                ssl_session_cache shared:SSL:50m;&lt;br /&gt;
                ssl_dhparam /etc/ssl/certs/dhparam.pem;&lt;br /&gt;
                ssl_prefer_server_ciphers on;&lt;br /&gt;
&lt;br /&gt;
                access_log /var/log/nginx/localhost.access_log main;&lt;br /&gt;
                error_log /var/log/nginx/localhost.error_log info;&lt;br /&gt;
&lt;br /&gt;
                access_log /var/log/nginx/localhost.ssl_access_log main;&lt;br /&gt;
                error_log /var/log/nginx/localhost.ssl_error_log info;&lt;br /&gt;
&lt;br /&gt;
                location ~ [^/]\.php(/|$) {&lt;br /&gt;
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;&lt;br /&gt;
                if (!-f $document_root$fastcgi_script_name) {&lt;br /&gt;
                return 404;&lt;br /&gt;
                }&lt;br /&gt;
                &lt;br /&gt;
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;&lt;br /&gt;
                fastcgi_index index.php;&lt;br /&gt;
                include fastcgi_params;&lt;br /&gt;
                include fastcgi.conf;&lt;br /&gt;
&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                location /dataroot/ {&lt;br /&gt;
                internal;&lt;br /&gt;
                alias /var/www/localhost/moodle/; # ensure the path ends with /&lt;br /&gt;
                }&lt;br /&gt;
                &lt;br /&gt;
                location /moodlelib/ {&lt;br /&gt;
                internal;&lt;br /&gt;
                alias /var/www/localhost/htdocs/moodle/lib/; # ensure the path ends with /&lt;br /&gt;
                }&lt;br /&gt;
                &lt;br /&gt;
                location /moodlepix/ {&lt;br /&gt;
                internal;&lt;br /&gt;
                alias /var/www/localhost/htdocs/moodle/pix/; # ensure the path ends with /&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                location /moodletheme/ {&lt;br /&gt;
                internal;&lt;br /&gt;
                alias /var/www/localhost/htdocs/moodle/theme/; # ensure the path ends with /&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
                server {&lt;br /&gt;
                        listen          80;&lt;br /&gt;
                        listen          [::]:80;&lt;br /&gt;
                        server_name     www.cspl.hu;&lt;br /&gt;
                        return          301 https://$server_name$request_uri;&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
My &#039;&#039;&#039;fastcgi.config&#039;&#039;&#039; file is:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;&lt;br /&gt;
fastcgi_param  QUERY_STRING       $query_string;&lt;br /&gt;
fastcgi_param  REQUEST_METHOD     $request_method;&lt;br /&gt;
fastcgi_param  CONTENT_TYPE       $content_type;&lt;br /&gt;
fastcgi_param  CONTENT_LENGTH     $content_length;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;&lt;br /&gt;
fastcgi_param  REQUEST_URI        $request_uri;&lt;br /&gt;
fastcgi_param  DOCUMENT_URI       $document_uri;&lt;br /&gt;
fastcgi_param  DOCUMENT_ROOT      $document_root;&lt;br /&gt;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;&lt;br /&gt;
fastcgi_param  REQUEST_SCHEME     $scheme;&lt;br /&gt;
fastcgi_param  HTTPS              $https if_not_empty;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;&lt;br /&gt;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param  REMOTE_ADDR        $remote_addr;&lt;br /&gt;
fastcgi_param  REMOTE_PORT        $remote_port;&lt;br /&gt;
fastcgi_param  SERVER_ADDR        $server_addr;&lt;br /&gt;
fastcgi_param  SERVER_PORT        $server_port;&lt;br /&gt;
fastcgi_param  SERVER_NAME        $server_name;&lt;br /&gt;
&lt;br /&gt;
# PHP only, required if PHP was built with --enable-force-cgi-redirect&lt;br /&gt;
fastcgi_param  REDIRECT_STATUS    200;&lt;br /&gt;
&amp;lt;/code &amp;gt;&lt;br /&gt;
&lt;br /&gt;
My &#039;&#039;&#039;fastcgi_params&#039;&#039;&#039; file is:&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
fastcgi_param  PATH_INFO          $fastcgi_path_info;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param  QUERY_STRING       $query_string;&lt;br /&gt;
fastcgi_param  REQUEST_METHOD     $request_method;&lt;br /&gt;
fastcgi_param  CONTENT_TYPE       $content_type;&lt;br /&gt;
fastcgi_param  CONTENT_LENGTH     $content_length;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;&lt;br /&gt;
fastcgi_param  REQUEST_URI        $request_uri;&lt;br /&gt;
fastcgi_param  DOCUMENT_URI       $document_uri;&lt;br /&gt;
fastcgi_param  DOCUMENT_ROOT      $document_root;&lt;br /&gt;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;&lt;br /&gt;
fastcgi_param  REQUEST_SCHEME     $scheme;&lt;br /&gt;
fastcgi_param  HTTPS              $https if_not_empty;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;&lt;br /&gt;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param  REMOTE_ADDR        $remote_addr;&lt;br /&gt;
fastcgi_param  REMOTE_PORT        $remote_port;&lt;br /&gt;
fastcgi_param  SERVER_ADDR        $server_addr;&lt;br /&gt;
fastcgi_param  SERVER_PORT        $server_port;&lt;br /&gt;
fastcgi_param  SERVER_NAME        $server_name;&lt;br /&gt;
&lt;br /&gt;
# PHP only, required if PHP was built with --enable-force-cgi-redirect&lt;br /&gt;
fastcgi_param  REDIRECT_STATUS    200;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I obtain a certificate from here: [https://gethttpsforfree.com/]&lt;br /&gt;
&lt;br /&gt;
Finally I did followings, in that order:&lt;br /&gt;
# remove previous moodle installation with help of webapp-config:&lt;br /&gt;
## &amp;lt;code bash&amp;gt;webapp-config -C moodle 3.2.3&amp;lt;/code&amp;gt; &lt;br /&gt;
## ( I had installed 3.2.3 version of moodle prior to move my Moodle site from HTTP to HTTPS )&lt;br /&gt;
# remove the Gentoo moodle package with emerge&lt;br /&gt;
## &amp;lt;code bash&amp;gt;emerge --depclean www-apps/moodle&amp;lt;/code&amp;gt;&lt;br /&gt;
# uninstall, then install again webapp-config package because of ghost installs ( look here for this: [https://wiki.gentoo.org/wiki/Webapp-config#Troubleshooting]&lt;br /&gt;
## &amp;lt;code&amp;gt;emerge --unmerge app-admin/webapp-config&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code bash&amp;gt;rm -rf /var/db/webapps/&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code bash&amp;gt;emerge -a app-admin/webapp-config&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code bash&amp;gt;dispatch-conf&amp;lt;/code&amp;gt;&lt;br /&gt;
### here I choose &#039;u&#039; but then must to edit &#039;&#039;&#039;/etc/vhosts/webapp-config&#039;&#039;&#039; &lt;br /&gt;
### &amp;lt;code&amp;gt;vhost_server=&amp;quot;nginx&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# install moodle package again ( but this one is a newer 3.3.1 version  )&lt;br /&gt;
## &amp;lt;code bash&amp;gt;emerge -a www-apps/moodle&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code bash&amp;gt;webapp-config -I moodle 3.3.1&amp;lt;/code&amp;gt;&lt;br /&gt;
## after installation I get message &#039;POST-INSTALL INSTRUCTIONS&#039; in which is a guid how to proceed with Moodle site installation, eg. about mysql and postgresql databases, commands to run, etc.&lt;br /&gt;
# set up config.php file:&lt;br /&gt;
&lt;br /&gt;
My &#039;&#039;&#039;config.php&#039;&#039;&#039; file is:&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
unset($CFG);  // Ignore this line&lt;br /&gt;
global $CFG;  // This is necessary here for PHPUnit execution&lt;br /&gt;
$CFG = new stdClass();&lt;br /&gt;
&lt;br /&gt;
$CFG-&amp;gt;dbtype    = &#039;pgsql&#039;;       // &#039;pgsql&#039;, &#039;mariadb&#039;, &#039;mysqli&#039;, &#039;mssql&#039;, &#039;sqlsrv&#039; or &#039;oci&#039;&lt;br /&gt;
$CFG-&amp;gt;dblibrary = &#039;native&#039;;     // &#039;native&#039; only at the moment&lt;br /&gt;
$CFG-&amp;gt;dbhost    = &#039;localhost&#039;;  // eg &#039;localhost&#039; or &#039;db.isp.com&#039; or IP&lt;br /&gt;
$CFG-&amp;gt;dbname    = &#039;moodle&#039;;     // database name, eg moodle&lt;br /&gt;
$CFG-&amp;gt;dbuser    = &#039;postgres&#039;;   // your database username&lt;br /&gt;
$CFG-&amp;gt;dbpass    = &#039;secret_password&#039;;   // your database password&lt;br /&gt;
$CFG-&amp;gt;prefix    = &#039;mdl_&#039;;       // prefix to use for all table names&lt;br /&gt;
$CFG-&amp;gt;dboptions = array(&lt;br /&gt;
    &#039;dbpersist&#039; =&amp;gt; false,       // should persistent database connections be&lt;br /&gt;
                                //  used? set to &#039;false&#039; for the most stable&lt;br /&gt;
                                //  setting, &#039;true&#039; can improve performance&lt;br /&gt;
                                //  sometimes&lt;br /&gt;
    &#039;dbsocket&#039;  =&amp;gt; &#039;/var/run/postgresql/&#039;,       // should connection via UNIX socket be used?&lt;br /&gt;
                                //  if you set it to &#039;true&#039; or custom path&lt;br /&gt;
                                //  here set dbhost to &#039;localhost&#039;,&lt;br /&gt;
                                //  (please note mysql is always using socket&lt;br /&gt;
                                //  if dbhost is &#039;localhost&#039; - if you need&lt;br /&gt;
                                //  local port connection use &#039;127.0.0.1&#039;)&lt;br /&gt;
    &#039;dbport&#039;    =&amp;gt; &#039;&#039;,          // the TCP port number to use when connecting&lt;br /&gt;
                                //  to the server. keep empty string for the&lt;br /&gt;
                                //  default port&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
$CFG-&amp;gt;wwwroot   = &#039;https://www.cspl.hu/moodle&#039;;&lt;br /&gt;
$CFG-&amp;gt;dataroot  = &#039;/var/www/localhost/moodle&#039;;&lt;br /&gt;
$CFG-&amp;gt;directorypermissions = 02777;&lt;br /&gt;
&lt;br /&gt;
$CFG-&amp;gt;admin = &#039;admin&#039;;&lt;br /&gt;
&lt;br /&gt;
$CFG-&amp;gt;slasharguments = true;&lt;br /&gt;
&lt;br /&gt;
$CFG-&amp;gt;xsendfile = &#039;X-Accel-Redirect&#039;;&lt;br /&gt;
$CFG-&amp;gt;xsendfilealiases = array(&lt;br /&gt;
&#039;/dataroot/&#039; =&amp;gt; $CFG-&amp;gt;dataroot,&lt;br /&gt;
&#039;/moodlelib/&#039; =&amp;gt; &#039;/var/www/localhost/htdocs/moodle/lib&#039;,&lt;br /&gt;
&#039;/moodlepix/&#039; =&amp;gt; &#039;/var/www/localhost/htdocs/moodle/pix&#039;,&lt;br /&gt;
&#039;/moodletheme/&#039; =&amp;gt; &#039;/var/www/localhost/htdocs/moodle/theme&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
require_once(dirname(__FILE__) . &#039;/lib/setup.php&#039;); // Do not edit&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, I would like to thank those people who helped me: [[User:Matteo_Scaramuccia|Matteo Scaramuccia]], [[User:Ken Task|Ken Task]], and many others too.&lt;br /&gt;
&lt;br /&gt;
--[[User:Pál Csányi|Pál Csányi]] ([[User talk:Pál Csányi|talk]]) 04:01, 22 July 2017 (AWST)&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=User:Matteo_Scaramuccia&amp;diff=128316</id>
		<title>User:Matteo Scaramuccia</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=User:Matteo_Scaramuccia&amp;diff=128316"/>
		<updated>2017-07-23T11:50:55Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Initial release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;blockquote&amp;gt;everyone is a beginner once and no one is an expert at everything&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Find me in the Moodle Community: https://moodle.org/user/profile.php?id=1075386&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=SCORM_FAQ&amp;diff=121845</id>
		<title>SCORM FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=SCORM_FAQ&amp;diff=121845"/>
		<updated>2015-12-19T07:48:43Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Added a Community ref in the See Also section.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SCORM}}&lt;br /&gt;
==What is SCORM?==&lt;br /&gt;
&lt;br /&gt;
SCORM was developed as a result of collaboration in the public and private sectors. The President of the United States, Bill Clinton issued an Executive Order that created an agency (ADL) to oversee the standard for developing and distributing online learning.  All Federal agencies are mandated to use programs that meet those standards.  SCORM is one result of that order.  &lt;br /&gt;
&lt;br /&gt;
There&#039;s a really simple &amp;quot;What is SCORM&amp;quot; introduction here: http://moodle.org/mod/forum/discuss.php?d=3757#p18828&lt;br /&gt;
&lt;br /&gt;
A slightly more detailed introduction here: http://www.rusticisoftware.com/resources/whatisscorm/What%20Is%20SCORM.ht&lt;br /&gt;
&lt;br /&gt;
==Should I make my Moodle courses as SCORM or use Moodle&#039;s features?==&lt;br /&gt;
It depends how you intend to use it. If you are planning on exporting and using in another LMS then SCORM would make this easier. If you want something shiny, then a SCORM package can fit the bill. However, reporting and grading work better in Moodle and for many educators the standard features do the job perfectly and do not require learning a new program. There is a useful form post discussing the pros and cons of SCORM in Moodle here: http://moodle.org/mod/forum/discuss.php?d=200242&lt;br /&gt;
&lt;br /&gt;
==SCORM Information==&lt;br /&gt;
&lt;br /&gt;
Advanced Distributed Learning (ADL) is the organization that wrote the SCORM standard. You can download documentation and samples form ADL&#039;s Web site. Documentation for SCORM 1.2 in several languages is available  [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2%2fDocumentation%20Suite%20(SCORM%201.2)&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} here].&lt;br /&gt;
&lt;br /&gt;
Philip Hutchison provides an AS3 and JavaScript wrapper, as well as a sample package: &lt;br /&gt;
http://pipwerks.com/downloads/&lt;br /&gt;
&lt;br /&gt;
==SCORM Package Contents==&lt;br /&gt;
&lt;br /&gt;
A SCORM package must contains in the root of zip a file named imsmanifest.xml which defines SCORM course structure, resource location and many other things. Other files used in the package, such as HTML files, XML files, multimedia files, and JavaScript for the SCORM API must be listed in this file. The LMS parses the manifest, and provides the files listed there to the content package during runtime.&lt;br /&gt;
&lt;br /&gt;
==AICC Package Contents==&lt;br /&gt;
&lt;br /&gt;
An AICC package is defined by several files (from 4 to 7) with defined extensions as follows:&lt;br /&gt;
&lt;br /&gt;
* CRS - Course Description file (mandatory)&lt;br /&gt;
* AU - Assignable Unit file (mandatory)&lt;br /&gt;
* DES - Descriptor file (mandatory)&lt;br /&gt;
* CST - Course Structure file (mandatory)&lt;br /&gt;
* ORE - Objective Relationship file (optional)&lt;br /&gt;
* PRE - Prerequisites file (optional)&lt;br /&gt;
* CMP - Completition Requirements file (optional)&lt;br /&gt;
&lt;br /&gt;
==Basic Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
* Make sure you are running Moodle 2.1 or higher, a large number of SCORM related bugs are present in previous versions.&lt;br /&gt;
*Make sure you (and your users) have JavaScript enabled. SCORM requires JavaScript.&lt;br /&gt;
* Make sure your SCORM object is SCORM compliant - check it in an external SCORM player like [https://docs.moodle.org/en/Tools_for_creating_SCORM_content#Reload Reload] to see if it works there.&lt;br /&gt;
* Upload a copy of your SCORM object to a [http://en.wikipedia.org/wiki/File_hosting_service File Hosting Service] and post a message asking for help in the forums, linking to your SCORM object explaining exactly what you expect to happen, and what is happening instead.&lt;br /&gt;
* Read Dan Marsden&#039;s blog post [http://danmarsden.com/blog/2012/08/08/scorm-doesnt-work-in-moodle here] (Maintainer of SCORM Module in Moodle)&lt;br /&gt;
&lt;br /&gt;
==Does Moodle Generate SCORM Content?==&lt;br /&gt;
&lt;br /&gt;
Moodle &#039;&#039;&#039;does not&#039;&#039;&#039; generate scorm content. Moodle presents the content in SCORM packages to learners, and saves data from learner interactions with the SCORM package.&lt;br /&gt;
&lt;br /&gt;
==Can I add a password for access to my SCORM package?==&lt;br /&gt;
No, although there is a tracker request for this: MDL-46403 As a workaround you could add your SCORM package using the single activity course format - see [[Course formats]] - and add an enrolment key to the course.&lt;br /&gt;
&lt;br /&gt;
==Supported Versions==&lt;br /&gt;
&lt;br /&gt;
* SCORM 1.2 is supported in Moodle 2.1(or higher) and passes all the tests in the ADL Conformance test suite 1.2.7 for SCORM 1.2. The best place for information on SCORM 1.2 conformance is the [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Previous%20Versions/SCORM%201.2/Conformance%20Test%20Suite%20(SCORM%201.2)/SCORM_1.2_ConformanceReq.pdf SCORM Comformance Requirements documentation (PDF 3.4MB)].&lt;br /&gt;
&lt;br /&gt;
* SCORM 2004 is not supported in Moodle. Parts of the API have been implemented, but others such as Navigation and Sequencing have not. Development on native SCORM 2004 support in Moodle [https://moodle.org/mod/forum/discuss.php?d=227906 has stopped]. If you require a fully certified SCORM 2004 Player in Moodle, [http://www.scorm.com Rustici Software] have a [http://support.scorm.com/entries/20394726-scorm-cloud-moodle-module Moodle plugin] which connects to their commercial [http://www.scorm.com/scorm-solved/scorm-cloud/ SCORM Cloud] service turning Moodle into a fully compliant SCORM 2004 LMS.&lt;br /&gt;
&lt;br /&gt;
* AICC objects are supported in Moodle 2.1 and higher.&lt;br /&gt;
&lt;br /&gt;
* Moodle does not support Tin Can at this stage.&lt;br /&gt;
&lt;br /&gt;
==Asking for Help in the SCORM Forum==&lt;br /&gt;
&lt;br /&gt;
When trying to engage the community to help with a problem you are facing, you will get a better response if you follow a few simple guidelines:&lt;br /&gt;
* Always start your report with &#039;&#039;&#039;version information&#039;&#039;&#039; - preferably the information displayed on the Admin -&amp;gt; Environment panel eg. http://localhost/moodle/admin/environment.php where http://localhost/moodle is your particular prefix.  With this it will be clear how you are running your Moodle instance, on what platform, and at which version.  This will quickly expose issues where a simple upgrade will solve your problem.&lt;br /&gt;
* Be prepared to &#039;&#039;&#039;provide the SCORM package&#039;&#039;&#039; that illustrates your problem - if you don&#039;t then it will be very difficult for anyone offering assistance to recreate your situation - a real barrier to help.&lt;br /&gt;
* &#039;&#039;&#039;Screenshots&#039;&#039;&#039; are very helpful. Provide a screenshot of all error messages, and any instance where something seems to go wrong in the interface.&lt;br /&gt;
* Nonstandard themes can introduce SCORM issues. Be sure to tell us &#039;&#039;&#039;what theme you&#039;re using&#039;&#039;&#039;.&lt;br /&gt;
* If you have admin privileges, and have access to a localhost install or other place where real-time users won&#039;t be disturbed, be sure to turn on debugging. Navigate to &#039;&#039;&#039;Site Administration &amp;gt; Development &amp;gt; Debugging&#039;&#039;&#039; and set &#039;&#039;&#039;Debug messages: Developer&#039;&#039;&#039; and &#039;&#039;&#039;Display debug messages: Yes&#039;&#039;&#039;. Access the SCORM content. If there are errors printed to the page, include them in your forum post. &lt;br /&gt;
* Use [https://developers.google.com/chrome-developer-tools/docs/console Chrome&#039;s JavaScript Console] or [https://developer.mozilla.org/en-US/docs/Tools/Web_Console Firebug&#039;s JavaScript console] to check that there are no JavaScript errors on the page when the content loads. &lt;br /&gt;
* Run your problematic SCORM package through &#039;&#039;&#039;API debugging&#039;&#039;&#039; (see below) and include the text of that API log with your post. That way we can see right away if the right function calls are not taking place.&lt;br /&gt;
* If you&#039;re using a content development suite which publishes to SCORM, such as Articulate, Captivate, Lectora, LessonBuilder, Udutu, or some other product, then include that in your post. Every authoring software has its ticks, and if you&#039;ve run into one, it&#039;s likely that someone else has also dealt with it, and will recognize it. However, please keep in mind that &#039;&#039;&#039;this is a place to get help with Moodle issues, not help with your SCORM package authoring suite&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging ==&lt;br /&gt;
&lt;br /&gt;
# Debugging settings are located at Settings &amp;gt; Site Administration &amp;gt; Plugins &amp;gt; Activities &amp;gt; Scorm.&lt;br /&gt;
# Check the checkbox for &#039;&#039;&#039;Activate API debug...&#039;&#039;&#039;&lt;br /&gt;
# Set the api mask. You can use the mask to enable debugging under certain conditions. For example, if you are logged in using the admin user (username admin) you can set the api mask to: &amp;lt;cite&amp;gt;admin.*&amp;lt;/cite&amp;gt;  Users not logged in as admin will not see the debugging log. The &amp;quot;Default&amp;quot; api mask is &amp;lt;cite&amp;gt;.*&amp;lt;/cite&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What does the debugging log mean?==&lt;br /&gt;
&lt;br /&gt;
The SCO commonly sends the following communications through the API:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;LMSInitialize();&#039;&#039;&#039; opens the connection between the SCO and Moodle&lt;br /&gt;
* &#039;&#039;&#039;LMSGetValue( &#039;valuename&#039; );&#039;&#039;&#039; gets a value from Moodle&lt;br /&gt;
* &#039;&#039;&#039;LMSSetValue( &#039;valuename&#039; , &#039;value&#039; );&#039;&#039;&#039; sends a value to Moodle&lt;br /&gt;
* &#039;&#039;&#039;LMSCommit();&#039;&#039;&#039; saves values sent to Moodle via LMSSetValue() and should be called after every LMSSetValue()&lt;br /&gt;
* &#039;&#039;&#039;LMSFinish()&#039;&#039;&#039; saves values sent to Moodle and closes the connection between the SCO And Moodle&lt;br /&gt;
&lt;br /&gt;
Red lines in the debugging log means there was an error in the communication through the API. &lt;br /&gt;
&lt;br /&gt;
If LMSInitialize() fails, returns an error, then no subsequent values sent to Moodle will be saved. &lt;br /&gt;
&lt;br /&gt;
Click through the entire SCORM package. Then access the scorm report for your attempt, and compare the saved values in the debugging log with Moodle&#039;s report of the attempt. If the values set in the debug log do not match the values saved to Moodle, then there may be a problem with Moodle. Otherwise it&#039;s likely to be an issue with the SCO or the SCORM activity settings not giving you the functionality you need.&lt;br /&gt;
&lt;br /&gt;
==SCORM and the Gradebook==&lt;br /&gt;
Please see [https://docs.moodle.org/en/SCORM_FAQ#My_SCORM_Module_doesn.27t_function_properly FAQ:My SCORM Module doesn&#039;t function properly] and  [https://docs.moodle.org/en/SCORM_FAQ#Handling_of_Multiple_Attempts FAQ:Handling of Multiple Attempts]&lt;br /&gt;
&lt;br /&gt;
Some SCORM packages report both cmi.core.lesson_status and cmi.core.score.raw. Others report only cmi.core.lesson_status, or only cmi.core.score.raw. The &#039;&#039;&#039;Grading Method&#039;&#039;&#039; setting for SCORM objects is meant to account for that.  &lt;br /&gt;
&lt;br /&gt;
If you have the &#039;&#039;&#039;Grading Method&#039;&#039;&#039; set to &#039;&#039;&#039;Highest grade&#039;&#039;&#039;, &#039;&#039;&#039;Average grade&#039;&#039;&#039;, or &#039;&#039;&#039;Sum grade&#039;&#039;&#039;, and your learning object does not report a score, only, cmi.core.lesson_status, then there will be no numerical score to pass to the gradebook. &lt;br /&gt;
&lt;br /&gt;
If your SCOs do not report cmi.core.score.raw, then the best &#039;&#039;&#039;Grading Method&#039;&#039;&#039; setting is &#039;&#039;&#039;Learning Objects&#039;&#039;&#039;. This reports either a 1 or a 0 as a score for each learning object. The gradebook value for that SCORM activity is the percent of scos in the package for which learners got a 1. &lt;br /&gt;
&lt;br /&gt;
On the other hand, if your SCOs do not report a lesson_status, then select one of the score-based &#039;&#039;&#039;Grading Method&#039;&#039;&#039; options, such as &#039;&#039;&#039;Highest grade&#039;&#039;&#039;, &#039;&#039;&#039;Average grade&#039;&#039;&#039;, or &#039;&#039;&#039;Sum grade&#039;&#039;&#039;, and not &#039;&#039;&#039;Learning Objects&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you do not know what your SCOs are reporting to the LMS, then run them through to completion with debugging on.&lt;br /&gt;
&lt;br /&gt;
Much of the way SCORM objects are graded is controlled inside the SCORM Authoring process before it is packaged for use in an LMS like Moodle - make sure all your grading settings are set correctly.&lt;br /&gt;
&lt;br /&gt;
==SCORM Administration Options==&lt;br /&gt;
&lt;br /&gt;
See [[SCORM settings]]&lt;br /&gt;
&lt;br /&gt;
==Common Solutions==&lt;br /&gt;
&lt;br /&gt;
===Difficulty Displaying a SCORM Package===&lt;br /&gt;
If you have difficulty displaying a SCORM, try loading the SCORM in [http://www.reload.ac.uk Reload] and re-saving it, then save the folder as a .zip package and try again.&lt;br /&gt;
&lt;br /&gt;
===Character Display Errors===&lt;br /&gt;
When you notice there is a problem displaying characters correctly, it could be a misconfiguration of your server. Make sure that both httpd.conf (when using Apache) and php.ini are set to DefaultCharacterset = utf8 or switch the sending of a default character set off.&lt;br /&gt;
&lt;br /&gt;
===slash arguments warning when I add/update SCORM objects in my course===&lt;br /&gt;
Some web servers don&#039;t support a function called &#039;&#039;&#039;slash arguments&#039;&#039;&#039; and so Moodle allows you to turn it off, but SCORM packages require &#039;&#039;&#039;slash arguments&#039;&#039;&#039; to be enabled on the web server in order to work properly.&lt;br /&gt;
&lt;br /&gt;
See [[Using slash arguments]] for more details.&lt;br /&gt;
&lt;br /&gt;
===SCORM doesn&#039;t work on Godaddy Host===&lt;br /&gt;
Godaddy hosts give a 404 file not found error - this is because by default they do not allow slash arguments which SCORM requires. The best way to test this is to visit http://yourmoodlesite/admin/tool/health/index.php - but the fix involves adding a php.ini or php5.ini file with the following text:&lt;br /&gt;
 AcceptPathInfo&lt;br /&gt;
 cgi.fix_pathinfo=1&lt;br /&gt;
&lt;br /&gt;
===My Flash-Based Content Loads, then Stalls===&lt;br /&gt;
This issue is most commonly associated with zlib compression. Classic presentation is that the base HTML file and SWF are loaded into the SCORM player, but the SWF is not able to load any audio or video assets, and therefore stalls. You can watch the loading of SWFs and assets using Chrome&#039;s Developer Tools or other. &lt;br /&gt;
&lt;br /&gt;
Check your site&#039;s zlib compression settings as an admin by loading up the Server &amp;gt; phpinfo page. zlib compression is not a Moodle setting but a server setting, so you&#039;ll need a server admin to disable it. Be sure to Purge All Caches, and clear browser caches, before confirming the change. &lt;br /&gt;
&lt;br /&gt;
===Zlib warning when I add/update SCORM objects in my course===&lt;br /&gt;
Zlib is a php compression setting made in a websites PHP configuration - unfortunately some browsers don&#039;t handle this well (especially Internet Explorer 6) Some webhosts enable this setting, but it will likely cause issues for your users when they attempt to view/use the SCORM object. You will need to contact your server administrator to turn this off. The setting to change in php configuration is &amp;quot;zlib.output_compression&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Incorrect file package - missing imsmanifest.xml or AICC structure===&lt;br /&gt;
This means that Moodle cannot find a file called imsmanifest.xml inside the SCORM object. Reasons for this could be:&lt;br /&gt;
* imsmanifest.xml needs to be immediately inside the scorm directory, NOT inside a directory inside of that. So if the zipped scorm package is package.zip, the unzipped package directory should contain immediately inside of it the imsmanifest.xml. This is a common mistake and normally occurs when a SCORM author creates a package themselves and then selects that folder to compress. This places the content folder inside of another folder, The imsmanifest.xml is there, but it is 2 directories deep. To avoid this problem when zipping scorm content into a package, go INSIDE of the exported scorm folder, select all files inside, and compress them while all are selected. The resultant compressed directory has the imsmanifest.xml file in the first directory, immediately available to the moodle scorm loading process. &lt;br /&gt;
* when using linux based systems the filename imsmanifest.xml must be all in lowercase not IMSmanifest.xml or Imsmanifest.XML&lt;br /&gt;
* The SCORM authoring tool Articulate sometimes fails to create the imsmanifest.xml -Try exporting the package again and see if the manifest is generated.&lt;br /&gt;
* The SCORM authoring tool Articulate Presenter will publish packages where the imsmanifest.xml file is in the correct place, but there are several lines of white space in the manifest file if you do not fill out the Reporting and Tracking Options in Articulate Presenter for Keywords and LMS Description. Moodle will give a &amp;quot;Manifest not found&amp;quot; error when encountering this. To fix this problem select the Reporting and Tracking Options in the Articulate Presenter publish dialog and fill in the LMS Description and Keywords.&lt;br /&gt;
&lt;br /&gt;
===File not found error===&lt;br /&gt;
You have this error if the scorm package is created in moodle, and the scorm menu loads, but inside of the viewing area for the scorm content, you get a page with a 404 file not found error, usually showing the current Moodle theme. &lt;br /&gt;
&lt;br /&gt;
What this means is that one of the files listed in the imsmanifest.xml is not in the scorm package or not in the correct directory.&lt;br /&gt;
&lt;br /&gt;
Download and unzip the package, open up imsmanifest.xml. At the bottom of the xml file, below any metadata, you&#039;ll find a place where organizations and resources for those organizations are designated: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;organizations default=&amp;quot;TOC1&amp;quot;&amp;gt; &lt;br /&gt;
         &amp;lt;organization identifier=&amp;quot;TOC1&amp;quot;&amp;gt; &lt;br /&gt;
            &amp;lt;title&amp;gt;SCORM Test&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;item identifier=&amp;quot;I_SCO0&amp;quot; identifierref=&amp;quot;SCO0&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;title&amp;gt;Library Quiz&amp;lt;/title&amp;gt;&lt;br /&gt;
            &amp;lt;adlcp:masteryscore&amp;gt;0&amp;lt;/adlcp:masteryscore&amp;gt;&lt;br /&gt;
         &amp;lt;/item&amp;gt;&lt;br /&gt;
         &amp;lt;/organization&amp;gt;&lt;br /&gt;
      &amp;lt;/organizations&amp;gt;&lt;br /&gt;
      &amp;lt;resources&amp;gt;&lt;br /&gt;
         &amp;lt;resource identifier=&amp;quot;SCO0&amp;quot; type=&amp;quot;webcontent&amp;quot; adlcp:scormtype=&amp;quot;sco&amp;quot; href=&amp;quot;scorm.html&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;file href=&amp;quot;scorm.html&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;dependency identifierref=&amp;quot;ALLRESOURCES&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;/resource&amp;gt; &lt;br /&gt;
         &amp;lt;resource identifier=&amp;quot;ALLRESOURCES&amp;quot; type=&amp;quot;webcontent&amp;quot; adlcp:scormtype=&amp;quot;asset&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;file href=&amp;quot;scorm.html&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;file href=&amp;quot;scorm.js&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;file href=&amp;quot;swfobject.js&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;file href=&amp;quot;scorm.swf&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;file href=&amp;quot;scormwrapper.js&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;/resource&amp;gt;&lt;br /&gt;
      &amp;lt;/resources&amp;gt;&lt;br /&gt;
   &amp;lt;/manifest&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this xml, we have a single organization, and in that organization is a single resource, a single sco. There are 5 files necessary for that resource to work correctly. The scorm.html file is loaded first. It loads 3 external js files and a swf. &lt;br /&gt;
&lt;br /&gt;
What you need to do now is go to the directory containing imsmanifest.xml, and check that all of those listed files are available at the correct path from imsmanfiest.xml, as listed in imsmanifest.xml. If any one of those files is missing (especially the html file or the swf), or if the paths in imsmanifest.xml are incorrect, then it&#039;s very likely that the scorm object won&#039;t be able to load at all. &lt;br /&gt;
&lt;br /&gt;
Sometimes the files aren&#039;t missing, but are simply misnamed in the manifest, or placed in the wrong directory. You can fix this by moving the files to the correct places, or updating their names so that the imsmanifest and the actual file names match up. In the case of a misnamed file, change the manifest rather than the actual file names, since the the files also reference one another in other places!&lt;br /&gt;
&lt;br /&gt;
===Unzip issues===&lt;br /&gt;
If you get a blank page after filling in the title, description, and selecting a large SCORM file, it&#039;s likely you haven&#039;t installed the PHP-zip lib which is required for Moodle 2.x for more info see [[admin/environment/php_extension/zip]]&lt;br /&gt;
&lt;br /&gt;
===Clear an Attempt===&lt;br /&gt;
To clear attempts by a student:&lt;br /&gt;
&lt;br /&gt;
# Go to the SCORM activity and select the link &amp;quot;View reports for x users&amp;quot;&lt;br /&gt;
# Select the attempt or attempts you want to clear using the checkbox&lt;br /&gt;
# Select Delete in the drop-down box at the bottom of the page&lt;br /&gt;
&lt;br /&gt;
===Handling of Multiple Attempts===&lt;br /&gt;
SCORM is designed to allow a learner to exit and return at a later date to the same point they left from. This means that each time they enter the SCORM they are using the same single attempt. Some SCORM packages are intelligent about handling re-entry, many are not. What this means is that if the learner re-enters an existing attempt, if the SCORM content does not have internal logic to avoid overwriting cmi.core.lesson_status and cmi.core.score.raw, they can be overwritten by a lower score, confusing the learner.&lt;br /&gt;
&lt;br /&gt;
When a SCORM sets the cmi.core.lesson_status value to &#039;completed&#039;, &#039;passed&#039; or &#039;failed&#039; then Moodle allows the user to create a new attempt by adding a &#039;&#039;&#039;Start new attempt&#039;&#039;&#039; checkbox to the entry page. If cmi.core.lesson_status is set to &#039;incomplete&#039;, &#039;browsed&#039; or &#039;notattempted&#039; the learner can only re-enter the existing attempt. If you are using the setting &#039;Student skip content structure page&#039;, this checkbox will never be shown to the user.&lt;br /&gt;
&lt;br /&gt;
Moodle provides a range of settings to allow this to be controlled, some of these settings are hidden by default as advanced options.&lt;br /&gt;
* Number of attempts&lt;br /&gt;
:This allows the teacher to set how many SCORM attempts the learner may create - this is not how many times a learner can re-enter a SCORM attempt.&lt;br /&gt;
* Attempts grading&lt;br /&gt;
:This allows the teacher to set how multiple SCORM attempts(not re-entries) are graded. It is important to note that a &#039;failed&#039; cmi.core_lesson_status allows a new attempt to be generated but the attempts grading setting &amp;quot;last completed attempt&amp;quot; only includes &#039;completed&#039; and &#039;passed&#039; values in it&#039;s calculations.&lt;br /&gt;
* Display attempt status&lt;br /&gt;
:This displays a users SCORM attempts and how their final grade is calculated on the SCORM entry page and the My Moodle page for the learner.&lt;br /&gt;
* Force completed&lt;br /&gt;
:This is a setting that can be used to force a SCORM package to report a &#039;completed&#039; cmi.core.lesson_status if it doesn&#039;t currently set the value.&lt;br /&gt;
* Force new attempt&lt;br /&gt;
:This hides the &#039;&#039;&#039;Start new attempt&#039;&#039;&#039; checkbox and will force a new attempt if the previous attempt has cmi.core.lesson_status value to &#039;completed&#039;, &#039;passed&#039; or &#039;failed&#039; - this setting can also be used to make sure a new attempt is generated when the &#039;Student skip content structure page&#039; setting is used.&lt;br /&gt;
* Lock after final attempt&lt;br /&gt;
:This prevents access to the SCORM after the total number of attempts have been used - if this is not set the learner can re-enter their last attempt and potentially change/overwrite their score each time depending on how the SCORM package supports multiple re-entries.&lt;br /&gt;
&lt;br /&gt;
===Reducing Load Time with Captivate===&lt;br /&gt;
* Modify the percent that must be downloaded before the content starts to play. In Captivate 4, there&#039;s a setting in: Preferences / Project / Start and End / Preload. Reduce that to 50%.&lt;br /&gt;
* If you use audio in your Cp file (as background or element attachment), try to put a gap of 0,1 second at the beginning of each element including audio on your slides. If you don&#039;t do that, Cp merge all the audio files in one big audio file it need to download before playing the project. This problem have been report many times from the Cp community.&lt;br /&gt;
&lt;br /&gt;
===Moodle changes cmi.core.lesson_status from &amp;quot;completed&amp;quot; or &amp;quot;passed&amp;quot; to &amp;quot;failed&amp;quot;===&lt;br /&gt;
Many SCORM authorware suites generate a masteryscore node in the imsmanifest.xml by default. This node is not necessary to the XML file. But when it is there, the SCORM standard designates specific behavior with regard to the value set there. &lt;br /&gt;
&lt;br /&gt;
Here&#039;s what is in the scorm standard, on page 35 of 155 in SCORM_1.2_ConformanceReq.pdf, numbered page 2-19 ([http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201%2e2%2fDocumentation%20Suite%20%28SCORM%201%2e2%29&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View=%7b4D6DFFDE%2d3CFC%2d4DD9%2dA21A%2d4B687728824A%7d SCORM Version 1.2 Conformance Requirements Version 1.2]):&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
If the value for this element is not set to “incomplete” by the SCO, then the LMS shall re-evaluate and change the value based on the following:&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If there is no mastery score in the Manifest, and the SCO sets a score (cmi.core.score.raw) and the lesson_status (cmi.core.lesson_status) then the LMS shall not override the SCO determined status.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If there is a mastery score in the Manifest, the LMS can change the status to either passed or failed depending on the student&#039;s score (cmi.core.score.raw) compared to the mastery score.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If the student is taking the SCO for no-credit, (cmi.core.credit = “no-credit”) there is no change to the lesson_status, with one exception. If the lesson_mode (cmi.core.lesson_mode) is &amp;quot;browse&amp;quot;, the lesson_status may change to &amp;quot;browsed&amp;quot; even if the cmi.core.credit is set to no-credit.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
This can result in some functionality you don&#039;t intend. You can fix the problem by removing the mastery score node from your imsmanifest.xml file. You will also want to find out what options you have, within your authorware suite, for the writing of that node into the manifest file, and change your authoring process accordingly.&lt;br /&gt;
&lt;br /&gt;
===Player Look &#039;n Feel===&lt;br /&gt;
You should be able to adjust height and width settings for the SCORM player window &#039;&#039;&#039;so long as&#039;&#039;&#039; your theme is based on/not too much of an aberration from one of the standard themes which ship with Moodle 2. &lt;br /&gt;
&lt;br /&gt;
If your site or course theme isn&#039;t closely based on one of the standard M2 themes, then it&#039;s possible that your theme CSS is overriding local height and width settings for the SCORM player. Have a Web developer (or a Moodle Partner) examine how your theme is interacting with the player layout, and make changes to your theme as needed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Why can&#039;t I just change it locally?&#039;&#039;&#039; You can change height and width per individual SCORM package, and you can set defaults for these local height and width values ( [[SCORM Admin Options]] ). Other things, such as colors, shading, borders, backgrounds, are controlled by CSS, just like everything else on the site.&lt;br /&gt;
&lt;br /&gt;
=== Courselab 2.4 ===&lt;br /&gt;
If you receive a &amp;quot; found more than one record!&amp;quot; error when trying to run your SCORM 1.2 package check the imsmanifest.xml file of your SCORM package and ensure that the values for &amp;lt;organization identifier&amp;gt; and &amp;lt;item identifier&amp;gt; are unique. To change the &amp;lt;organization identifier&amp;gt;, in Courselab, go to File &amp;gt; Course Runtime Settings. The dialog says &#039;Course identification in LMS&#039; but changing the Identifier field is what sets the &amp;lt;organization identifier&amp;gt;.  (see MDL-38060 for more information)&lt;br /&gt;
&lt;br /&gt;
=== SCORM results deleted after package update ===&lt;br /&gt;
&lt;br /&gt;
When uploading a SCORM package over a previous one, if the item identifier in the manifest file is different to the one being overwritten then the tracking data for that SCORM package in Moodle is deleted.&lt;br /&gt;
&lt;br /&gt;
Ensure the item identifier is the same for the new SCORM resource&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=1951 SCORM forum]&lt;br /&gt;
* [http://danmarsden.com/blog/2012/08/08/scorm-doesnt-work-in-moodle SCORM doesn&#039;t work] blog post from developer Dan Marsden&lt;br /&gt;
* [http://danmarsden.com/blog/2009/05/23/scorm-2004-in-moodle/ SCORM 2004 in Moodle] blog post from developer Dan Marsden&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=276324 Identifiers to change with updated SCORM module]&lt;br /&gt;
* [https://docs.moodle.org/dev/SCORM_schema Internal SCORM Schema]&lt;br /&gt;
* The official standard: [http://www.adlnet.gov/Technologies/scorm/default.aspx Advanced Distributed Learning - SCORM]&lt;br /&gt;
&lt;br /&gt;
Online resources&lt;br /&gt;
* [http://www.scormcourse.com/ SCORMCourse.com] serves the SCORM and ADL community as an educational resource for SCORM technology.&lt;br /&gt;
* [http://www.eduworks.com/index.php/Publications/Learning-Object-Tutorial.html Learning Object Tutorial]&lt;br /&gt;
* [http://elearningweekly.wordpress.com/2007/04/12/tutorial-build-scorm-compatible-lesson-templates-for-your-lms/ Tutorial: Build SCORM-Compatible Lesson Templates for Your LMS]&lt;br /&gt;
&lt;br /&gt;
Using Moodle forum discussions:&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=3757 Simple introduction to SCORM] &lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=57059 Are there any sugestions for scorm authoring with Microsoft word / or any other easy (maybe free) scorm authoring tool?]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=95946 Is SCORM worth it?]&lt;br /&gt;
*[http://moodle.org/mod/forum/discuss.php?d=207964 Updating an Object]&lt;br /&gt;
 &lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[de:Lernpaket FAQ]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Using_slash_arguments&amp;diff=120894</id>
		<title>Using slash arguments</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Using_slash_arguments&amp;diff=120894"/>
		<updated>2015-10-28T22:06:20Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Added a mention to MDL-51554&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Environment}}&lt;br /&gt;
==About slash arguments==&lt;br /&gt;
&lt;br /&gt;
&#039;Slash arguments&#039; (using PATH_INFO) is required for SCORM packages and multiple-file resources to display correctly. If your web server doesn&#039;t support &#039;slash arguments&#039; and you are unable to configure it, the setting can be disabled, though it will result in things not working.&lt;br /&gt;
&lt;br /&gt;
==Enabling slash arguments==&lt;br /&gt;
&lt;br /&gt;
Slash arguments must be enabled on your web server, as described in:&lt;br /&gt;
* [[Internet Information Services#Slasharguments|IIS slasharguments]]&lt;br /&gt;
* [[Apache#Slasharguments|Apache slasharguments]]&lt;br /&gt;
* [[Nginx#Slasharguments|Nginx slasharguments]]&lt;br /&gt;
&lt;br /&gt;
==Error when uploading a file==&lt;br /&gt;
If you obtain a &#039;File not found&#039; error when uploading a file, it indicates that slash arguments are not enabled on your web server. Please try enabling it.&lt;br /&gt;
&lt;br /&gt;
If your web server doesn&#039;t support slash arguments, its use in Moodle can be disabled by un-ticking the checkbox &#039;Use slash arguments&#039; in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Warning: Disabling the use of slash arguments will result in SCORM packages not working and slash arguments warnings being displayed!&lt;br /&gt;
&lt;br /&gt;
==Slash arguments environment check==&lt;br /&gt;
&lt;br /&gt;
Note: &#039;&#039;&#039;The use of slash arguments will be required in future versions of Moodle.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your web server doesn&#039;t support slash arguments, you will in future need to change to a web server which does. (It will no longer be possible to disable the use of slash arguments.)&lt;br /&gt;
&lt;br /&gt;
In the meantime, &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Environment&#039;&#039; reports if the slash argument setting needs to be checked i.e. if it is detected that &#039;Use slash arguments&#039; is disabled in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;. Thus, the check is a warning of the future requirement.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=278916 Requiring slasharguments in Moodle 2.9 - will anybody be seriously affected?] forum discussion&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-50416 &amp;lt;nowiki&amp;gt;[MDL-50416]&amp;lt;/nowiki&amp;gt; slasharguments check gives a warning on install], for versions 2.9 and 2.9.1&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-51554 &amp;lt;nowiki&amp;gt;[MDL-51554]&amp;lt;/nowiki&amp;gt; Broken file serving under Apache and PHP-FPM via mod_proxy_fcgi, when the filename is not only plain ASCII or w/ blank spaces], for versions below  2.8.9 and 2.9.3 &lt;br /&gt;
&lt;br /&gt;
[[es:Usando slash arguments]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Using_slash_arguments&amp;diff=119382</id>
		<title>Using slash arguments</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Using_slash_arguments&amp;diff=119382"/>
		<updated>2015-07-25T18:23:59Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: /* See also */ Added a mention about MDL-50416, as asked in https://moodle.org/mod/forum/discuss.php?d=317323#p1272023.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Environment}}&lt;br /&gt;
==Enabling slash arguments==&lt;br /&gt;
The function &#039;&#039;slash arguments&#039;&#039; is required for various features in Moodle to work correctly, such as SCORM packages and embedded files.&lt;br /&gt;
&lt;br /&gt;
Slash arguments must be enabled on your web server, as described in:&lt;br /&gt;
* [[Internet Information Services#Slasharguments|IIS slasharguments]]&lt;br /&gt;
* [[Apache#Slasharguments|Apache slasharguments]]&lt;br /&gt;
* [[Nginx#Slasharguments|Nginx slasharguments]]&lt;br /&gt;
&lt;br /&gt;
==Error when uploading a file==&lt;br /&gt;
If you obtain a &#039;File not found&#039; error when uploading a file, it indicates that slash arguments are not enabled on your web server. Please try enabling it.&lt;br /&gt;
&lt;br /&gt;
If your web server doesn&#039;t support slash arguments, its use in Moodle can be disabled by un-ticking the checkbox &#039;Use slash arguments&#039; in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Warning: Disabling the use of slash arguments will result in SCORM packages not working and slash arguments warnings being displayed!&lt;br /&gt;
&lt;br /&gt;
==Slash arguments environment check==&lt;br /&gt;
&lt;br /&gt;
Note: &#039;&#039;&#039;The use of slash arguments will be required in future versions of Moodle.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If your web server doesn&#039;t support slash arguments, you will in future need to change to a web server which does. (It will no longer be possible to disable the use of slash arguments.)&lt;br /&gt;
&lt;br /&gt;
In the meantime, &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Environment&#039;&#039; reports if the slash argument setting needs to be checked i.e. if it is detected that &#039;Use slash arguments&#039; is disabled in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; HTTP&#039;&#039;. Thus, the check is a warning of the future requirement.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=278916 Requiring slasharguments in Moodle 2.9 - will anybody be seriously affected?] forum discussion&lt;br /&gt;
* [https://tracker.moodle.org/browse/MDL-50416 &amp;lt;nowiki&amp;gt;[MDL-50416]&amp;lt;/nowiki&amp;gt; slasharguments check gives a warning on install], for versions 2.9 and 2.9.1&lt;br /&gt;
&lt;br /&gt;
[[es:Usando slash arguments]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Nginx&amp;diff=118660</id>
		<title>Nginx</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Nginx&amp;diff=118660"/>
		<updated>2015-05-28T18:53:28Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: /* See also */ Added another community ref.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}[[Nginx]] [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. The nginx project started with a strong focus on high concurrency, high performance and low memory usage. It is licensed under the 2-clause BSD-like license and it runs on Linux, BSD variants, Mac OS X, Solaris, AIX, HP-UX, as well as on other *nix flavors. It also has a proof of concept port for Microsoft Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The following is community-contributed documentation on Nginx configuration. Amendmends and additions are welcome.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Nginx configuration ==&lt;br /&gt;
&lt;br /&gt;
=== PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Nginx is usually configured to interface with PHP via [http://php.net/manual/en/install.fpm.php php-fpm]. This is both fast and robust.&lt;br /&gt;
&lt;br /&gt;
==== php.ini ====&lt;br /&gt;
Typically the php-fpm daemon with have it&#039;s own php.ini e.g. in debian it is /etc/php5/fpm/php.ini. The following setting is required,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;php.ini&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cgi.fix_pathinfo=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nginx ===&lt;br /&gt;
&lt;br /&gt;
====Slasharguments====&lt;br /&gt;
Add the following &#039;slash arguments&#039; compatible (see [[Using slash arguments]]) &#039;location&#039; block to your vhosts &#039;server&#039; configuration in your nginx configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nginx.conf location:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ~ [^/]\.php(/|$) {&lt;br /&gt;
    # NOTE: You should have &amp;quot;cgi.fix_pathinfo = 0;&amp;quot; in php.ini&lt;br /&gt;
    fastcgi_split_path_info  ^(.+\.php)(/.+)$;&lt;br /&gt;
    fastcgi_index            index.php;&lt;br /&gt;
    fastcgi_pass             127.0.0.1:9000 (or your php-fpm socket);&lt;br /&gt;
    include                  fastcgi_params;&lt;br /&gt;
    fastcgi_param   PATH_INFO       $fastcgi_path_info;&lt;br /&gt;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== XSendfile aka X-Accel-Redirect ====&lt;br /&gt;
&lt;br /&gt;
Setting Moodle and Nginx to use XSendfile functionality is a big win as it frees PHP from delivering files allowing Nginx to do what it does best, i.e. deliver files. &lt;br /&gt;
&lt;br /&gt;
Enable xsendfile for Nginx in Moodles config.php, this is documented in the config-dist.php, a minimal configuration look like this,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;xsendfile = &#039;X-Accel-Redirect&#039;;&lt;br /&gt;
$CFG-&amp;gt;xsendfilealiases = array(&lt;br /&gt;
    &#039;/dataroot/&#039; =&amp;gt; $CFG-&amp;gt;dataroot&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Accompany this with a matching &#039;location&#039; block in your nginx server configuration.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location /dataroot/ {&lt;br /&gt;
    internal;&lt;br /&gt;
    alias &amp;amp;lt;full_moodledata_path&amp;amp;gt;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The definition of &#039;internal&#039; here is important as it prevents client access to your dataroot.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Real &amp;lt;tt&amp;gt;PATH_INFO&amp;lt;/tt&amp;gt; support:&lt;br /&gt;
** https://moodle.org/mod/forum/discuss.php?d=278916&lt;br /&gt;
** https://moodle.org/mod/forum/discuss.php?d=307388&lt;br /&gt;
* Internal rewriting to the HTTP GET &amp;lt;tt&amp;gt;file&amp;lt;/tt&amp;gt; parameter:&lt;br /&gt;
** https://docs.moodle.org/dev/Install_Moodle_On_Ubuntu_with_Nginx/PHP-fpm&lt;br /&gt;
** https://moodle.org/mod/forum/discuss.php?d=83445&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
[[es:Nginx]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Nginx&amp;diff=118627</id>
		<title>Nginx</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Nginx&amp;diff=118627"/>
		<updated>2015-05-23T06:14:42Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: /* See also */ Updated the &amp;#039;See also&amp;#039; section according to the recent change about using a plain PATH_INFO support w/o relying on an internal rewrite to HTTP GET file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}[[Nginx]] [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. The nginx project started with a strong focus on high concurrency, high performance and low memory usage. It is licensed under the 2-clause BSD-like license and it runs on Linux, BSD variants, Mac OS X, Solaris, AIX, HP-UX, as well as on other *nix flavors. It also has a proof of concept port for Microsoft Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The following is community-contributed documentation on Nginx configuration. Amendmends and additions are welcome.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Nginx configuration ==&lt;br /&gt;
&lt;br /&gt;
=== PHP-FPM ===&lt;br /&gt;
&lt;br /&gt;
Nginx is usually configured to interface with PHP via [http://php.net/manual/en/install.fpm.php php-fpm]. This is both fast and robust.&lt;br /&gt;
&lt;br /&gt;
==== php.ini ====&lt;br /&gt;
Typically the php-fpm daemon with have it&#039;s own php.ini e.g. in debian it is /etc/php5/fpm/php.ini. The following setting is required,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;php.ini&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cgi.fix_pathinfo=0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Nginx ===&lt;br /&gt;
&lt;br /&gt;
==== fcig_params ====&lt;br /&gt;
The standard [http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_param fastcgi_params] file included in Nginx is not compatible with moodle; save a new fastcgi_params file with the following parameters,&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fastcgi_param QUERY_STRING $query_string;&lt;br /&gt;
fastcgi_param REQUEST_METHOD $request_method;&lt;br /&gt;
fastcgi_param CONTENT_TYPE $content_type;&lt;br /&gt;
fastcgi_param CONTENT_LENGTH $content_length;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;&lt;br /&gt;
fastcgi_param REQUEST_URI $request_uri;&lt;br /&gt;
fastcgi_param DOCUMENT_URI $document_uri;&lt;br /&gt;
fastcgi_param DOCUMENT_ROOT $document_root;&lt;br /&gt;
fastcgi_param SERVER_PROTOCOL $server_protocol;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;&lt;br /&gt;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;&lt;br /&gt;
&lt;br /&gt;
fastcgi_param REMOTE_ADDR $remote_addr;&lt;br /&gt;
fastcgi_param REMOTE_PORT $remote_port;&lt;br /&gt;
fastcgi_param SERVER_ADDR $server_addr;&lt;br /&gt;
fastcgi_param SERVER_PORT $server_port;&lt;br /&gt;
fastcgi_param SERVER_NAME $server_name;&lt;br /&gt;
&lt;br /&gt;
# PHP only, required if PHP was built with --enable-force-cgi-redirect&lt;br /&gt;
fastcgi_param REDIRECT_STATUS 200;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== server configuration ====&lt;br /&gt;
Add the following &#039;slash arguments&#039; compatible (see [[Using slash arguments]]) &#039;location&#039; block to your vhosts &#039;server&#039; configuration in your nginx configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nginx.conf location:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location ~ [^/]\.php(/|$) {&lt;br /&gt;
    # NOTE: You should have &amp;quot;cgi.fix_pathinfo = 0;&amp;quot; in php.ini&lt;br /&gt;
    fastcgi_split_path_info  ^(.+\.php)(/.+)$;&lt;br /&gt;
    include                  fastcgi_params;&lt;br /&gt;
    fastcgi_index            index.php;&lt;br /&gt;
    fastcgi_pass             127.0.0.1:9000;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Real &amp;lt;tt&amp;gt;PATH_INFO&amp;lt;/tt&amp;gt; support:&lt;br /&gt;
** https://moodle.org/mod/forum/discuss.php?d=278916&lt;br /&gt;
* Internal rewriting to the HTTP GET &amp;lt;tt&amp;gt;file&amp;lt;/tt&amp;gt; parameter:&lt;br /&gt;
** https://docs.moodle.org/dev/Install_Moodle_On_Ubuntu_with_Nginx/PHP-fpm&lt;br /&gt;
** https://moodle.org/mod/forum/discuss.php?d=83445&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
[[es:Nginx]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=admin/environment/custom_check/unsupported_db_table_row_format&amp;diff=118242</id>
		<title>admin/environment/custom check/unsupported db table row format</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=admin/environment/custom_check/unsupported_db_table_row_format&amp;diff=118242"/>
		<updated>2015-04-25T08:03:01Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Initial release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Administration via command line#Converting_InnoDB_tables_to_Barracuda]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Server_cluster&amp;diff=117890</id>
		<title>Server cluster</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Server_cluster&amp;diff=117890"/>
		<updated>2015-04-15T19:28:46Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is going to describe some basic information related to server clustering...&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
&lt;br /&gt;
* database server - ACID compliant, for example PostgreSQL and MariaDB&lt;br /&gt;
* main server that is able to share dataroot - locking support recommended, for example NFS&lt;br /&gt;
* load balancer - for example Nginx&lt;br /&gt;
* cluster nodes - web servers&lt;br /&gt;
* Memcached server for shared caches&lt;br /&gt;
&lt;br /&gt;
Note: this guide is not intended for Windows OS or any other Microsoft technologies.&lt;br /&gt;
&lt;br /&gt;
==Initial installation==&lt;br /&gt;
&lt;br /&gt;
# Perform standard CLI installation on the main server using shared database and dataroot directory.&lt;br /&gt;
# Setup web servers on cluster nodes - use local dirroot and shared database and dataroot.&lt;br /&gt;
# Configure load balancing.&lt;br /&gt;
&lt;br /&gt;
==Related config.php settings==&lt;br /&gt;
&lt;br /&gt;
===$CFG-&amp;gt;wwwroot===&lt;br /&gt;
It must be the same on all nodes, it must be the public facing URL. It cannot be dynamic.&lt;br /&gt;
&lt;br /&gt;
===$CFG-&amp;gt;sslproxy===&lt;br /&gt;
Enable if you have https:// wwwroot but the SSL is done by load-balancer instead of web server.&lt;br /&gt;
&lt;br /&gt;
Enable &#039;&#039;Secure cookies only&#039;&#039; to make your site really secure, without it cookie stealing is still trivial.&lt;br /&gt;
&lt;br /&gt;
===$CFG-&amp;gt;reverseproxy===&lt;br /&gt;
Enable if your nodes are accessed via different URL. Please note that it is not compatible with $CFG-&amp;gt;loginhttps.&lt;br /&gt;
&lt;br /&gt;
===$CFG-&amp;gt;dirroot===&lt;br /&gt;
It is strongly recommended that $CFG-&amp;gt;dirroot (which is automatically set via realpath(config.php)) contains the same path on all nodes. It does not need to point to the same shared directory though. The reason is that some some low level code may use the dirroot value for cache invalidation.&lt;br /&gt;
&lt;br /&gt;
The simplest solution is to have the same directory structure on each cluster node and synchronise these during each upgrade.&lt;br /&gt;
&lt;br /&gt;
The dirroot should be always read only for apache process because otherwise built in plugin installation and uninstallation would get the nodes out of sync.&lt;br /&gt;
&lt;br /&gt;
===$CFG-&amp;gt;dataroot===&lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;MUST&#039;&#039;&#039; be a shared directory where each cluster node is accessing the files directly. It must be very reliable, administrators cannot manipulate files directly.&lt;br /&gt;
&lt;br /&gt;
Locking support is not required, if any code tries to use file locks in dataroot outside of cachedir or muc directory it is a bug.&lt;br /&gt;
&lt;br /&gt;
===$CFG-&amp;gt;tempdir===&lt;br /&gt;
&lt;br /&gt;
It is recommended to use separate ram disks on each node. Scripts may use this directory during one request only. The contents of this directory may be deleted if there is no pending HTTP request, otherwise delete only files with older timestamps.&lt;br /&gt;
&lt;br /&gt;
Always purge this directory when starting cluster node, you may get some notices or temporary errors if you purge this directory while other requests are active.&lt;br /&gt;
&lt;br /&gt;
===$CFG-&amp;gt;cachedir===&lt;br /&gt;
&lt;br /&gt;
This directory &#039;&#039;&#039;MUST&#039;&#039;&#039; be shared by all cluster nodes. Locking is required.&lt;br /&gt;
&lt;br /&gt;
===$CFG-&amp;gt;localcachedir===&lt;br /&gt;
&lt;br /&gt;
The difference from $CFG-&amp;gt;cachedir is that the directory does not have to be shared by all cluster nodes, the file contents do not change. Use local fast filesystem on each cluster node.&lt;br /&gt;
&lt;br /&gt;
==Performance recommendations==&lt;br /&gt;
&lt;br /&gt;
#Use OPcache extension on all cluster nodes.&lt;br /&gt;
#Set $CFG-&amp;gt;localcachedir to fast local filesystem on each node.&lt;br /&gt;
#Set $CFG-&amp;gt;tempdir to fast local filesystem on each node.&lt;br /&gt;
#Use one big central memcached server for all shared caches that support it.&lt;br /&gt;
#Use local memcached instances on cluster nodes for local caches that support it.&lt;br /&gt;
#Store user sessions in one shared memcached server. (See [[Session_handling]] for details)&lt;br /&gt;
#Use fast local directory for dirroot on each cluster node.&lt;br /&gt;
#Use dynamic cluster node management.&lt;br /&gt;
#Use transparent proxy servers.&lt;br /&gt;
&lt;br /&gt;
==Upgrade procedure==&lt;br /&gt;
&lt;br /&gt;
#Disable load balancer.&lt;br /&gt;
#Upgrade dirroot files on master server.&lt;br /&gt;
#Perform CLI upgrade.&lt;br /&gt;
#Manually reset all caches in cluster nodes - restart web server, delete localcachedir and temp directories, restart memcached, etc. Or delete all cluster nodes and create nodes from a new template.&lt;br /&gt;
#Enable load balancer.&lt;br /&gt;
&lt;br /&gt;
==Step by step guide for server clustering in Moodle 2.6==&lt;br /&gt;
From hardware and performance forum thread [https://moodle.org/mod/forum/discuss.php?d=251547 https://moodle.org/mod/forum/discuss.php?d=251547]&lt;br /&gt;
&lt;br /&gt;
* 1 Determine your specific need for caches. This involves the concepts of shared cache or local cache, disk based cache or server based cache or protocol specific cache like Memcached or MongoDB. &lt;br /&gt;
** 1.1 If you have a slow shared disk, you might benefit from a local disk cache.&lt;br /&gt;
** 1.2 If you have only a few users on your Moodle site, you might not want to set up a Memcached service, even if the acceleration that Memcached provides, is very significant for the user experience.&lt;br /&gt;
** 1.3 If you want to do anything in your power for accelerating the site, you might consider MongoDB.&lt;br /&gt;
* 2 Configure the caches, test them and verify them. There is room for improvement in the examples for cache configuration. This is probably the most difficult step.&lt;br /&gt;
* 3 Install the cache support on server level. This may involve installing php modules or config for php modules.&lt;br /&gt;
* 4 Create a cache instance in MUC here: example.com/cache/admin.php?action=addstore&amp;amp;plugin=memcached&lt;br /&gt;
** 4.1 Give the cache instance some arbitrary name.&lt;br /&gt;
** 4.2 All other fields have a question mark that can be clicked on for excellent help that tells you what to fill in, and the syntax (very important).&lt;br /&gt;
** 4.3 The result should be a Configured Store Instance, with the name of your choice.&lt;br /&gt;
* 5 The final step is to deploy the created cache instances by Editing Mappings for e.g. Language string cache in the list of Known cache definitions.&lt;br /&gt;
** 5.1  While experimenting with this, I have found it a life saver to open a separate browser window, where the default setting is selected, so I just need to click on the Save button to revert the setting, just in case I lose contact with the site.&lt;br /&gt;
** 5.2 Select the nam of your configured store instance from the dropdown list and click on the Save button. &lt;br /&gt;
** 5.3 Test the new cache setting. If you lose contact with the site or it behaves weirdly, try using the trick in step 1. In case of emergency you might remove the cache config file (muc/config.php) in the folder pointed to by $CFG-&amp;gt;dataroot .  It seems that Moodle writes a new default config file if it is missing.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Performance recommendations]]&lt;br /&gt;
*[[Caching]]&lt;br /&gt;
*[[:dev:Server clustering improvements proposal]]&lt;br /&gt;
*Hardware and performance forum thread [https://moodle.org/mod/forum/discuss.php?d=251547https://moodle.org/mod/forum/discuss.php?d=251547]&lt;br /&gt;
*How to Cluster Moodle on Multiple Servers for High Availability and Scalability [http://www.severalnines.com/blog/clustering-moodle-multiple-servers-high-availability-scalability]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Installing_Moodle&amp;diff=116943</id>
		<title>Installing Moodle</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Installing_Moodle&amp;diff=116943"/>
		<updated>2015-02-08T07:47:48Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Added an hyperlink to the list of the supported timezone. Formatting cleanup.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template: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 just want to try Moodle on a standalone machine there are &#039;one-click&#039; installers for Windows (see [[Complete install packages for Windows]]) and for OSX (see [[Complete Install Packages for Mac OS X]]). These are unsuitable for production servers. &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Moodle is primarily developed in Linux using [[Apache]], [[PostgreSQL]]/[[MySQL]]/[[MariaDB]] and [[PHP]] (also sometimes known as the LAMP platform). If in doubt, this is the safest combination (if for no other reason than being the most common). There are other options - see the Software section that follows:&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;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
* Disk space: 160MB free (min) plus as much as you need to store your materials. 5GB is probably a realistic minimum. &lt;br /&gt;
* Processor: 1GHz (min), 2GHz dual core recommended. These settings may vary according to the resources used.&lt;br /&gt;
* Backups: at least the same again (at a remote location preferably) as above to keep backups of your site.&lt;br /&gt;
* Memory: 256MB (min), 1GB or more is strongly recommended. The general rule of thumb is that Moodle can support 10 to 20 &#039;&#039;concurrent&#039;&#039; users for every 1GB of RAM, but this will vary depending on your specific hardware and software combination and the type of use. &#039;Concurrent&#039; really means web server processes in memory at the same time (i.e. users interacting with the system within a window of a few seconds). It does NOT mean people &#039;logged in&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Software ===&lt;br /&gt;
&lt;br /&gt;
See the [{{Release notes}} release notes] in the dev docs for software requirements.&lt;br /&gt;
&lt;br /&gt;
== Set up your server ==&lt;br /&gt;
&lt;br /&gt;
...or desktop computer, if you are just evaluating Moodle. There are lots of possibilities for installing the basic server software depending on your particular choices. Some links and pointers are at [[Installing AMP]], [[Internet_Information_Services|IIS]], [[Nginx]]&lt;br /&gt;
&lt;br /&gt;
If you are using a hosted server all this should be done for you. However, (especially on shared hosting) make sure you understand or find out how to change PHP settings (e.g. file upload maximums). This can vary a huge amount from host to host.&lt;br /&gt;
&lt;br /&gt;
== Download and copy files into place ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT: While there are now a number of places you can get the Moodle code, you are strongly advised to 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...&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 --depth=1 -b MOODLE_28_STABLE --single-branch git://git.moodle.org/moodle.git &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--depth=1  for shallow cloning (only) latest revision&lt;br /&gt;
&lt;br /&gt;
--single-branch  option to limit cloning to a single branch, this fetches the Moodle 2.8 Stable branch (latest weekly build). 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 either 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;
&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, if possible upload the compressed file and decompress at the remote end (check your &#039;file manager&#039;). Failing that, watch FTP progress carefully for errors or missed files.&lt;br /&gt;
&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;
# find /path/to/moodle -type f -exec chmod 0644 {} \;&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;
The third command finds all the regular files and executes the chmod command 0644 on them. &lt;br /&gt;
&lt;br /&gt;
If you want to use the built-in plugin installer you need to make the directory writable by web server user. It is strongly recommended to use ACL when your server supports it, for example if your Apache server uses account www-data: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# chmod -R +a &amp;quot;www-data allow read,delete,write,append,file_inherit,directory_inherit&amp;quot; /path/to/moodle&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The effect of the previous command is to allow the Apache user account (www-data in this case) to access and change files within the moodle site. Many people would consider this a brave move for a new site admin to implement. In a new moodle you can safely leave this out. A default Ubuntu install does not have the +a option for the chmod command anyway. The +a attribute is an ACL (Access Control List) facility which allows you to set per user access for individual files. For example, OSX has this by default.&lt;br /&gt;
&lt;br /&gt;
== Create an empty database ==&lt;br /&gt;
&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;
&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;
* [[Oracle]] (known issues, not fully supported)&lt;br /&gt;
&lt;br /&gt;
== Create the (&#039;&#039;moodledata&#039;&#039;) data directory  ==&lt;br /&gt;
&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 way Moodle caches data you may have performance issues if you use relatively slow storage (e.g. NFS) for this directory. Read the [[Performance_recommendations]] carefully and consider using (e.g.) 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;
&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;
&lt;br /&gt;
If your server supports ACL it is recommended to set following permissions, for example if your Apache server uses account www-data:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# chmod -R +a &amp;quot;www-data allow read,delete,write,append,file_inherit,directory_inherit&amp;quot; /path/to/moodledata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are planning to execute PHP scripts from the command line you should set the same permissions for the current user:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo chmod -R +a &amp;quot;`whoami` allow read,delete,write,append,file_inherit,directory_inherit&amp;quot; /path/to/moodledata&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Securing moodledata in a web directory ====&lt;br /&gt;
&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;
&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;
&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;
&lt;br /&gt;
=== Command line installer ===&lt;br /&gt;
&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;
&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;
&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;
&lt;br /&gt;
=== Web based installer ===&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;
==Final configuration==&lt;br /&gt;
&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. 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; Plugins &amp;gt; Message Outputs &amp;gt; Email&#039;&#039;: Set your smtp server and authentication if required (so your Moodle site can send emails). The support contact for your site is also set on this page. &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 underline OS):&lt;br /&gt;
**: &amp;lt;code ini&amp;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;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Remaining tasks ===&lt;br /&gt;
&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;Check mail works&#039;&#039;&#039;: [[Add a new user|Create a test user]] with a valid email address and [[message|send them a message]]. Do they receive an email copy of the message? If not, check the settings in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Email&#039;&#039;. Don&#039;t be tempted to skip this step (clue: email is used to recover lost passwords, including the administrator password when you forget it!)&lt;br /&gt;
* &#039;&#039;&#039;Secure your Moodle site&#039;&#039;&#039;: Read the [[Security recommendations]].&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;
&lt;br /&gt;
=== Installation is complete :) ===&lt;br /&gt;
&lt;br /&gt;
* Create a new course: You can now [[Adding a new course|create a new course]] and have a play ;-)&lt;br /&gt;
&lt;br /&gt;
=== If something goes wrong... ===&lt;br /&gt;
&lt;br /&gt;
Here are some things you should try...&lt;br /&gt;
&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?&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 re-start 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;
&lt;br /&gt;
== Platform specific instructions ==&lt;br /&gt;
&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;
&lt;br /&gt;
* [[Windows installation]]&lt;br /&gt;
** [[Installing Moodle on SmarterASP.NET]]&lt;br /&gt;
* [[Unix or Linux Installation]]&lt;br /&gt;
* [[Mac Installation]]&lt;br /&gt;
* [[Amazon EC2 Cloud Services Installation]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.slideshare.net/gb2048/my-own-moodle Slideshare presentation by Gareth Barnard on installing a local installation of Moodle] and accompanying [https://drive.google.com/folderview?id=0B17B0rYH2zERU21sQnVweUZCUFk&amp;amp;usp=sharing  help guides]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=182086 New Video Tutorial- How to Install Moodle on Shared Hosting via cPanel (Not Fantastico)]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=199542 Video Tutorial - Install Moodle on a Virtual Box from scratch] &lt;br /&gt;
&lt;br /&gt;
[[es:Instalaci%C3%B3n_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>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Internet_Information_Services&amp;diff=115145</id>
		<title>Internet Information Services</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Internet_Information_Services&amp;diff=115145"/>
		<updated>2014-10-04T11:15:27Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: /* Optional UTF-8 file name fix */ Added a named link to KB 2277918.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}[[Internet Information Services]] (&#039;&#039;&#039;IIS&#039;&#039;&#039;) is the web server software bundled with Windows Server, as well as certain client versions of Windows. Please note Apache web server has much better community support and there are usually fewer problems when running Moodle on Apache. Windows OS is not suitable for large installations because PHP is limited to 32bit even in 64bit Windows, please consider using Linux or other unix-like operating systems instead.&lt;br /&gt;
&lt;br /&gt;
==IIS installation steps (Windows 7)==&lt;br /&gt;
&lt;br /&gt;
# Go to Control panel, click on Programs and Turn Windows features on or off&lt;br /&gt;
# Tick &amp;quot;Internet Information Services&amp;quot; and &amp;quot;Internet Information Services / Application Development Features / CGI&amp;quot;&lt;br /&gt;
# Install [http://www.microsoft.com/web/downloads/platform.aspx Microsoft Web Platform Installer]&lt;br /&gt;
&lt;br /&gt;
==PHP installation steps==&lt;br /&gt;
&lt;br /&gt;
It is strongly recommended to use only the official MS Platform installer, it automatically installs all necessary components and facilitates easy configuration with PHP manager. Manual installation attempts often fail or may not allow Moodle to function properly. Unfortunately MS does not usually distribute up-to-date version of PHP, you may need to download them manually.&lt;br /&gt;
&lt;br /&gt;
# Install [http://www.microsoft.com/web/downloads/platform.aspx Miscrosoft Web Platform Installer]&lt;br /&gt;
# Install latest PHP 5.5.x using Web Platform Installer&lt;br /&gt;
# Install URL Rewrite 2.0 using Web Platform Installer&lt;br /&gt;
&lt;br /&gt;
Optionally you may install the required components manually:&lt;br /&gt;
# Download [http://phpmanager.codeplex.com PHP manager for IIS] and install it&lt;br /&gt;
# Download latest PHP 5.5.x VC11 x86 Non Thread Safe from [http://windows.php.net/download/ http://windows.php.net/download/]&lt;br /&gt;
# Extract the Zip file to a directory such as C:\PHP\&lt;br /&gt;
# Install the Visual C++ Redistributable for Visual Studio 2012 [http://www.microsoft.com/en-us/download/details.aspx?id=30679] - on 64bit Windows install both x86 and x64&lt;br /&gt;
# Open the Internet Information Service (IIS) Manager - right click on This computer and select Manage&lt;br /&gt;
# Click on PHP Manager icon&lt;br /&gt;
# Register new PHP version - select C:\PHP\php-cgi.exe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning: PHP needs to be configured via FastCGI in IIS, older CGI interface is known to have problems with some file names.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==PHP configuration steps==&lt;br /&gt;
&lt;br /&gt;
# Set PHP configuration to values recommended by PHP Manager&lt;br /&gt;
# Enable required extensions in the PHP manager: php_intl.dll, php_pgsql.dll&lt;br /&gt;
# Enable [[OPcache]] extension&lt;br /&gt;
# Set your timezone in PHP.ini&lt;br /&gt;
# Set appropriate memory limits in PHP.ini&lt;br /&gt;
&lt;br /&gt;
==IIS configuration steps==&lt;br /&gt;
&lt;br /&gt;
# Setup URL rewriting described below&lt;br /&gt;
# Configure IIS to show detailed error pages.&lt;br /&gt;
# Set very long CGI timeout - 1 hour or better more.&lt;br /&gt;
# In IIS Manager add Moodle dirroot directory as a new virtual directory or set it as site directory&lt;br /&gt;
&lt;br /&gt;
===Slasharguments===&lt;br /&gt;
&lt;br /&gt;
IIS 7 should support relative path arguments by default, if it does not work try enabling following in your php.ini&lt;br /&gt;
&lt;br /&gt;
 cgi.fix_pathinfo = 1&lt;br /&gt;
&lt;br /&gt;
===URL rewriting===&lt;br /&gt;
If you can not modify registry as described below you may try manual configuration of rewrite rules, the PHP installation via &#039;&#039;Microsoft Web Platform Installer&#039;&#039; installs necessary &#039;&#039;URL Rewrite 2.0&#039;&#039; module.&lt;br /&gt;
&lt;br /&gt;
[[File:Rewrite_rule_-_Internet_Information_Services_(IIS)_Manager.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add following rewrite rule to enable support for unicode file names in Moodle and to work around internal file length limitation breaking YUI file serving:&lt;br /&gt;
&lt;br /&gt;
* Matches the Pattern - Regular Expressions - &amp;lt;code&amp;gt;^([^\?]+?\.php)(\/.+)$&amp;lt;/code&amp;gt;&lt;br /&gt;
* Action - Rewrite - &amp;lt;code&amp;gt;{R:1}\?file={R:2}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Append query string - enabled&lt;br /&gt;
* Stop processing of subsequent rules - enabled&lt;br /&gt;
&lt;br /&gt;
===Optional UTF-8 file name fix===&lt;br /&gt;
&lt;br /&gt;
By default IIS is unable to handle unicode characters in files uploaded into Moodle.&lt;br /&gt;
&lt;br /&gt;
See [http://www.iis.net/learn/application-frameworks/install-and-configure-php-on-iis/configuring-the-fastcgi-extension-for-iis-60#utf8servervars Using UTF-8 Encoding for Server Variables] and [http://support.microsoft.com/kb/2277918/ How to get UTF-8 Encoding support in IIS 7.5 in Windows 7 and Windows Server 2008 R2 with the KB 2277918 hotfix].&lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGI timeouts===&lt;br /&gt;
&lt;br /&gt;
By default IIS is configured to stop execution of any PHP script after 5 minutes of activity, this interferes with long running Moodle scripts such as upgrade or cron. The timeout should be increased to at least one hour.&lt;br /&gt;
&lt;br /&gt;
==Directory permissions==&lt;br /&gt;
&lt;br /&gt;
The default IIS account is &#039;&#039;IIS_IUSRS&#039;&#039;, make sure it has appropriate access right to Moodle dirroot (read only) and dataroot (read/write) directories.&lt;br /&gt;
&lt;br /&gt;
==Debugging problems==&lt;br /&gt;
&lt;br /&gt;
By default, IIS contains custom error pages that intentionally hide error details on production sites. When diagnosing problems you may want to disable temporarily the IIS Error Pages so you can see Moodle specific error messages, alongside enabling debugging in &#039;&#039;Settings&amp;gt;Site administration&amp;gt;Development&amp;gt;Debugging&#039;&#039;. This [http://blogs.iis.net/kehand/archive/2009/08/09/php-and-custom-error-pages.aspx blog post about IIS error messages] explains how to get more useful error messages when using IIS.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Installing MSSQL for PHP]]&lt;br /&gt;
* [http://www.iis.net  The Official Microsoft IIS Site]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Internet_Information_Services Wikipedia article on IIS]&lt;br /&gt;
* [http://php.iis.net/ PHP installer for IIS]&lt;br /&gt;
&lt;br /&gt;
[[ja:IIS]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Internet_Information_Services&amp;diff=115144</id>
		<title>Internet Information Services</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Internet_Information_Services&amp;diff=115144"/>
		<updated>2014-10-04T10:07:34Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: /* Optional UTF-8 file name fix */ Added IIS 6.0+ ref, before the 7.5 only fix ref.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}[[Internet Information Services]] (&#039;&#039;&#039;IIS&#039;&#039;&#039;) is the web server software bundled with Windows Server, as well as certain client versions of Windows. Please note Apache web server has much better community support and there are usually fewer problems when running Moodle on Apache. Windows OS is not suitable for large installations because PHP is limited to 32bit even in 64bit Windows, please consider using Linux or other unix-like operating systems instead.&lt;br /&gt;
&lt;br /&gt;
==IIS installation steps (Windows 7)==&lt;br /&gt;
&lt;br /&gt;
# Go to Control panel, click on Programs and Turn Windows features on or off&lt;br /&gt;
# Tick &amp;quot;Internet Information Services&amp;quot; and &amp;quot;Internet Information Services / Application Development Features / CGI&amp;quot;&lt;br /&gt;
# Install [http://www.microsoft.com/web/downloads/platform.aspx Microsoft Web Platform Installer]&lt;br /&gt;
&lt;br /&gt;
==PHP installation steps==&lt;br /&gt;
&lt;br /&gt;
It is strongly recommended to use only the official MS Platform installer, it automatically installs all necessary components and facilitates easy configuration with PHP manager. Manual installation attempts often fail or may not allow Moodle to function properly. Unfortunately MS does not usually distribute up-to-date version of PHP, you may need to download them manually.&lt;br /&gt;
&lt;br /&gt;
# Install [http://www.microsoft.com/web/downloads/platform.aspx Miscrosoft Web Platform Installer]&lt;br /&gt;
# Install latest PHP 5.5.x using Web Platform Installer&lt;br /&gt;
# Install URL Rewrite 2.0 using Web Platform Installer&lt;br /&gt;
&lt;br /&gt;
Optionally you may install the required components manually:&lt;br /&gt;
# Download [http://phpmanager.codeplex.com PHP manager for IIS] and install it&lt;br /&gt;
# Download latest PHP 5.5.x VC11 x86 Non Thread Safe from [http://windows.php.net/download/ http://windows.php.net/download/]&lt;br /&gt;
# Extract the Zip file to a directory such as C:\PHP\&lt;br /&gt;
# Install the Visual C++ Redistributable for Visual Studio 2012 [http://www.microsoft.com/en-us/download/details.aspx?id=30679] - on 64bit Windows install both x86 and x64&lt;br /&gt;
# Open the Internet Information Service (IIS) Manager - right click on This computer and select Manage&lt;br /&gt;
# Click on PHP Manager icon&lt;br /&gt;
# Register new PHP version - select C:\PHP\php-cgi.exe&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning: PHP needs to be configured via FastCGI in IIS, older CGI interface is known to have problems with some file names.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==PHP configuration steps==&lt;br /&gt;
&lt;br /&gt;
# Set PHP configuration to values recommended by PHP Manager&lt;br /&gt;
# Enable required extensions in the PHP manager: php_intl.dll, php_pgsql.dll&lt;br /&gt;
# Enable [[OPcache]] extension&lt;br /&gt;
# Set your timezone in PHP.ini&lt;br /&gt;
# Set appropriate memory limits in PHP.ini&lt;br /&gt;
&lt;br /&gt;
==IIS configuration steps==&lt;br /&gt;
&lt;br /&gt;
# Setup URL rewriting described below&lt;br /&gt;
# Configure IIS to show detailed error pages.&lt;br /&gt;
# Set very long CGI timeout - 1 hour or better more.&lt;br /&gt;
# In IIS Manager add Moodle dirroot directory as a new virtual directory or set it as site directory&lt;br /&gt;
&lt;br /&gt;
===Slasharguments===&lt;br /&gt;
&lt;br /&gt;
IIS 7 should support relative path arguments by default, if it does not work try enabling following in your php.ini&lt;br /&gt;
&lt;br /&gt;
 cgi.fix_pathinfo = 1&lt;br /&gt;
&lt;br /&gt;
===URL rewriting===&lt;br /&gt;
If you can not modify registry as described below you may try manual configuration of rewrite rules, the PHP installation via &#039;&#039;Microsoft Web Platform Installer&#039;&#039; installs necessary &#039;&#039;URL Rewrite 2.0&#039;&#039; module.&lt;br /&gt;
&lt;br /&gt;
[[File:Rewrite_rule_-_Internet_Information_Services_(IIS)_Manager.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add following rewrite rule to enable support for unicode file names in Moodle and to work around internal file length limitation breaking YUI file serving:&lt;br /&gt;
&lt;br /&gt;
* Matches the Pattern - Regular Expressions - &amp;lt;code&amp;gt;^([^\?]+?\.php)(\/.+)$&amp;lt;/code&amp;gt;&lt;br /&gt;
* Action - Rewrite - &amp;lt;code&amp;gt;{R:1}\?file={R:2}&amp;lt;/code&amp;gt;&lt;br /&gt;
* Append query string - enabled&lt;br /&gt;
* Stop processing of subsequent rules - enabled&lt;br /&gt;
&lt;br /&gt;
===Optional UTF-8 file name fix===&lt;br /&gt;
&lt;br /&gt;
By default IIS is unable to handle unicode characters in files uploaded into Moodle.&lt;br /&gt;
&lt;br /&gt;
See [http://www.iis.net/learn/application-frameworks/install-and-configure-php-on-iis/configuring-the-fastcgi-extension-for-iis-60#utf8servervars Using UTF-8 Encoding for Server Variables] and http://support.microsoft.com/kb/2277918.&lt;br /&gt;
&lt;br /&gt;
Execute:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\w3svc\Parameters /v FastCGIUtf8ServerVariables /t REG_MULTI_SZ /d REQUEST_URI\0PATH_INFO&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===CGI timeouts===&lt;br /&gt;
&lt;br /&gt;
By default IIS is configured to stop execution of any PHP script after 5 minutes of activity, this interferes with long running Moodle scripts such as upgrade or cron. The timeout should be increased to at least one hour.&lt;br /&gt;
&lt;br /&gt;
==Directory permissions==&lt;br /&gt;
&lt;br /&gt;
The default IIS account is &#039;&#039;IIS_IUSRS&#039;&#039;, make sure it has appropriate access right to Moodle dirroot (read only) and dataroot (read/write) directories.&lt;br /&gt;
&lt;br /&gt;
==Debugging problems==&lt;br /&gt;
&lt;br /&gt;
By default, IIS contains custom error pages that intentionally hide error details on production sites. When diagnosing problems you may want to disable temporarily the IIS Error Pages so you can see Moodle specific error messages, alongside enabling debugging in &#039;&#039;Settings&amp;gt;Site administration&amp;gt;Development&amp;gt;Debugging&#039;&#039;. This [http://blogs.iis.net/kehand/archive/2009/08/09/php-and-custom-error-pages.aspx blog post about IIS error messages] explains how to get more useful error messages when using IIS.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Installing MSSQL for PHP]]&lt;br /&gt;
* [http://www.iis.net  The Official Microsoft IIS Site]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Internet_Information_Services Wikipedia article on IIS]&lt;br /&gt;
* [http://php.iis.net/ PHP installer for IIS]&lt;br /&gt;
&lt;br /&gt;
[[ja:IIS]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Moodle_migration&amp;diff=115083</id>
		<title>Moodle migration</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Moodle_migration&amp;diff=115083"/>
		<updated>2014-09-27T06:37:29Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Fixed the missing of FTP BINARY mode mention, when trasferring the files pool.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
There may be times when you need to move your Moodle site from one server to another. For example, moving a Moodle site from shared hosting service&#039;s server to a dedicated server.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; One common migration mistake is to forget to update the details in the migrated Moodle&#039;s &#039;&#039;[[Configuration file|config.php]]&#039;&#039; file.&lt;br /&gt;
&lt;br /&gt;
==Migrating a complete Moodle site - method 1==&lt;br /&gt;
&lt;br /&gt;
This involves moving a whole site from one server to another. If you are changing the domain/IP address to the new server you need to do these steps:&lt;br /&gt;
* &#039;&#039;&#039;Maintenance mode&#039;&#039;&#039;. Place your current Moodle site into CLI [[Maintenance mode]] to prevent any further additions to the Moodle database. Don&#039;t let administrators login during the migration as they are not affected by the maintenance mode setting.&lt;br /&gt;
* &#039;&#039;&#039;Backup your current Moodle database&#039;&#039;&#039;. Do this by following the instructions in the [[Upgrading | upgrading Moodle]] or [[Site backup]] page. This will give you a text file containing the mysql dump.&lt;br /&gt;
* &#039;&#039;&#039;Copy the Moodle software&#039;&#039;&#039;. You will need to copy the Moodle code itself to the new server - upgrade the code to the latest version if you can.&lt;br /&gt;
* &#039;&#039;&#039;Change &amp;lt;code&amp;gt;$CFG-&amp;gt;wwwroot&amp;lt;/code&amp;gt;&#039;&#039;&#039;. In your (possibly new) Moodle directory, change the &amp;lt;code&amp;gt;$CFG-&amp;gt;wwwroot&amp;lt;/code&amp;gt; variable in the &#039;&#039;config.php&#039;&#039; file for the new server.&lt;br /&gt;
* &#039;&#039;&#039;Copy data directory contents (moodledata)&#039;&#039;&#039;. Copy the contents of your data directory (check for the value in &amp;lt;code&amp;gt;$CFG-&amp;gt;dataroot&amp;lt;/code&amp;gt;) to the new server. If you&#039;ll use an FTP client, the transfer of the &amp;lt;code&amp;gt;filedir&amp;lt;/code&amp;gt; folder must be in &#039;&#039;&#039;BINARY&#039;&#039;&#039; mode or the files will get corrupted in the process.&lt;br /&gt;
* &#039;&#039;&#039;Review moodledata permissions&#039;&#039;&#039;. Check also that permissions remain the same on the new dataroot folder and change the value if you have changed its location on the new server.&lt;br /&gt;
* &#039;&#039;&#039;Change your Moodle URL&#039;&#039;&#039;. If you have a new URL, you&#039;ll need to change this in the Moodle database to the new server. This is needed as links to pictures, files, etc are stored as absolute links and will reference the old &amp;lt;code&amp;gt;$CFG-&amp;gt;wwwroot&amp;lt;/code&amp;gt; value. So when loading a mysql backup dump of the Moodle server into mysql on another server the absolute referenced links will be broken. There are two methods of doing this:&lt;br /&gt;
:(a) The first method changes the Moodle URL using the Moodle script &#039;&#039;replace.php&#039;&#039; while your site is currently running just before you backup the Moodle database. Point your browser to &amp;lt;nowiki&amp;gt;yourserver.com/admin/tool/replace/index.php&amp;lt;/nowiki&amp;gt; or in older versions &amp;lt;nowiki&amp;gt;http://yourserver.com/admin/replace.php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Enter the url for your old server (&amp;lt;nowiki&amp;gt;http://oldserver.com/&amp;lt;/nowiki&amp;gt;) and new server (&amp;lt;nowiki&amp;gt;http://newserver.com/&amp;lt;/nowiki&amp;gt;) and it will fix the mysql tables. You will also need to clear out any cached links by restarting your webserver. Now, take another backup of the Moodle database - this one will have the correct URLs.&lt;br /&gt;
&lt;br /&gt;
:(b) The second method is to backup the Moodle database first, then use the search and replace feature of your text editor (or use a unix tool like sed) to replace the old URL with the new one in the mysql backup file. Here is an example sed command:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;#sed -e &#039;s/oldserver.com/newserver.com/g&#039; oldmysqldump.sql &amp;gt; newmysqldump.sql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;NOTE:&#039;&#039; This second method will not replace text in blocks because they are stored base64 encoded in the database, so any links in blocks will not be fixed. Therefore you should consider using the replace tool after you migrate if you use this second method.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; You may want to check the mysqldump file to see how the old server was referenced.&lt;br /&gt;
:After changing the URL, restore the mysql database&lt;br /&gt;
* &#039;&#039;&#039;Test the migration&#039;&#039;&#039;. To test the new install, access Moodle using your browser and the new server&#039;s URL. When you have tested that a number of links in the courses work, take the new Moodle site out of maintenance mode.&lt;br /&gt;
&#039;&#039;&#039;See also&#039;&#039;&#039;: Forum discussion on [http://moodle.org/mod/forum/discuss.php?d=85812 migrating Moodle&#039;s data directory on a Windows system].&lt;br /&gt;
&lt;br /&gt;
==Migrating a complete Moodle site - method 2==&lt;br /&gt;
&lt;br /&gt;
Do you have shell access on both servers? If so, the following method is a very quick and efficient method to migrate a Unix based site.&lt;br /&gt;
&lt;br /&gt;
It is also useful for creating snapshots or test sites.&lt;br /&gt;
*Set up a new empty database on the &#039;&#039;&#039;new&#039;&#039;&#039; server.&lt;br /&gt;
*Place your existing Moodle site into maintenance mode.&lt;br /&gt;
*Login to shell on the &#039;&#039;&#039;old&#039;&#039;&#039; existing server.&lt;br /&gt;
*Use rsync to copy &#039;&#039;&#039;moodledata&#039;&#039;&#039; and &#039;&#039;&#039;public_html&#039;&#039;&#039; (or whatever directory your Moodle install is in) to the new server - execute (replacing caps with your details; SOURCE = the directory you want to copy) for each directory:&lt;br /&gt;
::&amp;lt;code&amp;gt;rsync -av -e ssh SOURCE/ USERNAME@NEW_SERVER.COM:/PATH/TO/DESTINATION/&amp;lt;/code&amp;gt;&lt;br /&gt;
*Dump existing database and move and import into database on new server by executing:&lt;br /&gt;
::&amp;lt;code&amp;gt;mysqldump --allow-keywords --opt -uMySQL_USERNAME -pPASSWORD DATABASE | ssh USER@DOMAIN &amp;quot;mysql -uMySQL_USERNAME -pPASSWORD DATABASE&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*On the &#039;&#039;&#039;new server&#039;&#039;&#039;, update &#039;&#039;&#039;config.php&#039;&#039;&#039; with relevant details.&lt;br /&gt;
*To fix any internal Moodle links, login to your &amp;quot;new&amp;quot; Moodle install on your new server and use the [[Search and replace]] admin tool to search and replace the old uri for the new.&lt;br /&gt;
*Make sure everything is working.&lt;br /&gt;
&lt;br /&gt;
Takes about 15 minutes.&lt;br /&gt;
&lt;br /&gt;
When you are happy all has gone well, set up redirects/make DNS changes if required, take new site out of maintenance mode and &amp;quot;switch off&amp;quot; old site.&lt;br /&gt;
&lt;br /&gt;
==Other points to consider==&lt;br /&gt;
===Changed URL image links set to old site===&lt;br /&gt;
So you built your Moodle Server with a &amp;lt;nowiki&amp;gt;http//192.168.0.1/Moodle&amp;lt;/nowiki&amp;gt; address. Then you changed the URL for your site to &amp;lt;nowiki&amp;gt;http://OurMoodle.org/Moodle&amp;lt;/nowiki&amp;gt;. You changed the Moodle config file so the CFGs point to the new paths,  but your images still point to the old url.   &lt;br /&gt;
&lt;br /&gt;
One simple, quick solution is to use the Replace script in Moodle to fix this. Login as admin and enter  &amp;lt;nowiki&amp;gt;http://OurMoodle.org/admin/tool/replace/index.php&amp;lt;/nowiki&amp;gt; in your browser address bar (or  &amp;lt;nowiki&amp;gt;http://OurMoodle.com/admin/replace.php&amp;lt;/nowiki&amp;gt; in older versions). Use the two form boxes to change &amp;lt;nowiki&amp;gt;http://192.168.0.1/&amp;lt;/nowiki&amp;gt; to &amp;lt;nowiki&amp;gt;http://OurMoodle.org/&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This replace function is only supported on Moodle sites that run on MySQL or Postgres databases. See MDL-26597 and MDL-35099.&lt;br /&gt;
&lt;br /&gt;
===Upgrade Moodle===&lt;br /&gt;
&lt;br /&gt;
When migrating Moodle it is often a good idea to take the opportunity to upgrade Moodle to the latest version. If you manage your own server, follow the instructions in [[Upgrading | upgrading moodle]], otherwise check if your host can upgrade for you.&lt;br /&gt;
&lt;br /&gt;
===Restoring a single course across servers===&lt;br /&gt;
&lt;br /&gt;
You may need to restore a single course from an old site to a new one, especially if you are testing the migration. When restoring a Moodle backup file to Moodle on a different server than the one used to create the backup, the absolute referenced links to files maybe broken. To fix this problem open the &#039;&#039;backup-coursename.zip&#039;&#039; file and edit the &#039;&#039;moodle.xml&#039;&#039; file replacing links with &amp;lt;code&amp;gt;$@FILEPHP@$&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example, replace &amp;lt;nowiki&amp;gt;http://yourserver.com/file.php/243/&amp;lt;/nowiki&amp;gt; with &amp;lt;code&amp;gt;$@FILEPHP@$&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
When the file is restored it will use the correct file path for the new course.&lt;br /&gt;
&lt;br /&gt;
===DNS &amp;amp; Masquerading changes===&lt;br /&gt;
&lt;br /&gt;
You may have had to change the DNS entries for the new Moodle site. If you have done so, it will take some time for the changes to replicate, so be patient. If your server is located behind a firewall, you may also have to change your firewall rules to allow access to the new server. See the [[Masquerading | masquerading docs]].&lt;br /&gt;
&lt;br /&gt;
===Internal and external access===&lt;br /&gt;
&lt;br /&gt;
If you have a set up where your Moodle site can be accessed via a network and via the internet, ensure you check that the new site can be accessed internally and externally.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Site backup]]&lt;br /&gt;
* [[Site restore]]&lt;br /&gt;
* [[Backup and restore FAQ]]&lt;br /&gt;
* [http://www.youtube.com/watch?v=sFCXvRx20Bs Moving Moodle to a new server video]&lt;br /&gt;
* [http://tracker.moodle.org/browse/MDL-35099 Convert hidden search/replace script into a proper core admin tool] Tracker issue&lt;br /&gt;
&lt;br /&gt;
Using Moodle forum discussions:&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=62959 Changing Moodle URL] &lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=57477 Changing site address] &lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=76704 Upgrading whilst migrating] &lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=65450 Internal and external access] &lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=111807 Migrated Moodle to New Server But Can&#039;t Login]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=228436 Replace script returns &amp;quot;Service Unavailable&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
[[es:Migración de Moodle]]&lt;br /&gt;
[[fr:Migration de Moodle]]&lt;br /&gt;
[[ja:Moodle移行]]&lt;br /&gt;
[[de:Moodle-Migration]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Mobile_app_Push_Notifications&amp;diff=114271</id>
		<title>Mobile app Push Notifications</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Mobile_app_Push_Notifications&amp;diff=114271"/>
		<updated>2014-08-22T11:50:23Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Improved BC path: use &amp;quot;&amp;gt;&amp;quot; instead of &amp;quot;/&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Starting from versions 1.4 (iOS, iPhone, iPad) and 1.4.3 (Android) Moodle Mobile supports Push Notifications:&lt;br /&gt;
&lt;br /&gt;
1.  Install [https://moodle.org/plugins/view.php?plugin=message_airnotifier this plugin] in 2.4*, 2.5* or 2.6 (or simply enable it in 2.7**);&lt;br /&gt;
&lt;br /&gt;
2.  Connect it to a messaging server, you can use ours in case your Moodle site is registered. Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Message outputs &amp;gt; Mobile Notifications&#039;&#039; and click in &#039;&#039;Request access key&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
3.  Users need to connect at least once with the latest version of the app to register their phones with your site;&lt;br /&gt;
&lt;br /&gt;
4.  Users can configure notifications in the Moodle messaging preferences (&#039;&#039;Administration &amp;gt; My profile settings &amp;gt; Messaging&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; For Moodle versions 2.4 and 2.5 the [[Moodle Mobile additional features]] must be also installed. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; Only for Moodle different from 2.7 and onwards: If you upgrade your Moodle installation, you will have to reinstall the plugin since it adds a couple of functions to the core Moodle Mobile service. See https://tracker.moodle.org/browse/MDLSITE-2815?focusedCommentId=273741&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-273741 for more information.&lt;br /&gt;
&lt;br /&gt;
== Installing your own Notifications infrastructure ==&lt;br /&gt;
&lt;br /&gt;
If you have a customized version of the Mobile app, or you want to use your own Notifications infrastructure then you have to install a private [http://airnotifier.github.io AirNotifier] (backend server for notifications).&lt;br /&gt;
&lt;br /&gt;
You have to add your app certificates there, see https://github.com/airnotifier/airnotifier/wiki/Installation.&lt;br /&gt;
&lt;br /&gt;
The message AirNotifier plugin allow you to point to your custom AirNotifier instance using your own access keys.&lt;br /&gt;
&lt;br /&gt;
Remember to install using GIT (branch &#039;&#039;moodle&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[[Category: Mobile]]&lt;br /&gt;
&lt;br /&gt;
[[de:Mobile App - Push-Mitteilungen]]&lt;br /&gt;
[[es:Mobile app Notificaciones Push]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Mobile_app_Push_Notifications&amp;diff=114245</id>
		<title>Mobile app Push Notifications</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Mobile_app_Push_Notifications&amp;diff=114245"/>
		<updated>2014-08-20T14:58:49Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Fixed typos, wording, indentations and added italics to better underline the &amp;quot;path&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Starting from versions 1.4 (iOS, iPhone, iPad) and 1.4.3 (Android) Moodle Mobile supports Push Notifications:&lt;br /&gt;
&lt;br /&gt;
1.  Install [https://moodle.org/plugins/view.php?plugin=message_airnotifier this plugin] in 2.4*, 2.5* or 2.6 (or simply enable it in 2.7**);&lt;br /&gt;
&lt;br /&gt;
2.  Connect it to a messaging server, you can use ours in case your Moodle site is registered. Go to &#039;&#039;Site administration / Plugins / Message outputs / Mobile Notifications&#039;&#039; and click in &#039;&#039;Request access key&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
3.  Users need to connect at least once with the latest version of the app to register their phones with your site;&lt;br /&gt;
&lt;br /&gt;
4.  Users can configure notifications in the Moodle messaging preferences (&#039;&#039;Administration / My profile settings / Messaging&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; For Moodle versions 2.4 and 2.5 the [[Moodle Mobile additional features]] must be also installed. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; Only for Moodle different from 2.7 and onwards: If you upgrade your Moodle installation, you will have to reinstall the plugin since it adds a couple of functions to the core Moodle Mobile service. See https://tracker.moodle.org/browse/MDLSITE-2815?focusedCommentId=273741&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-273741 for more information.&lt;br /&gt;
&lt;br /&gt;
== Installing your own Notifications infrastructure ==&lt;br /&gt;
&lt;br /&gt;
If you have a customized version of the Mobile app, or you want to use your own Notifications infrastructure then you have to install a private [http://airnotifier.github.io AirNotifier] (backend server for notifications).&lt;br /&gt;
&lt;br /&gt;
You have to add your app certificates there, see https://github.com/airnotifier/airnotifier/wiki/Installation.&lt;br /&gt;
&lt;br /&gt;
The message AirNotifier plugin allow you to point to your custom AirNotifier instance using your own access keys.&lt;br /&gt;
&lt;br /&gt;
Remember to install using GIT (branch &#039;&#039;moodle&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[[Category: Mobile]]&lt;br /&gt;
&lt;br /&gt;
[[de:Mobile App - Push-Mitteilungen]]&lt;br /&gt;
[[es:Mobile app Notificaciones Push]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=LTI_Provider&amp;diff=112733</id>
		<title>LTI Provider</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=LTI_Provider&amp;diff=112733"/>
		<updated>2014-05-20T20:08:51Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: /* Main features */ Fixed typo.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== About IMS LTI ===&lt;br /&gt;
&lt;br /&gt;
According to IMS ([http://www.imsglobal.org]):&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IMS is developing &#039;&#039;&#039;Learning Tools Interoperability (LTI)&#039;&#039;&#039; to allow remote tools and content to be integrated into a Learning Management System (LMS).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== About this plugin ===&lt;br /&gt;
&lt;br /&gt;
This is a local plugin for making Moodle a LTI provider tool.&lt;br /&gt;
&lt;br /&gt;
It can be use to provide access to full courses or activities from remote systems (other Moodle installations, Sakai, any LMS LTI consumer compliant)&lt;br /&gt;
&lt;br /&gt;
Please note that since Moodle 2.2 there is a core activity plugin called &amp;quot;External tool&amp;quot; that is a LTI consumer.&lt;br /&gt;
&lt;br /&gt;
=== Why this plugin  ===&lt;br /&gt;
&lt;br /&gt;
This plugin allow remote systems users (LTI consumers) access to Moodle courses or Moodle activities inside a course.&lt;br /&gt;
&lt;br /&gt;
Moodle (version 2.2 and onwards) is a LTI consumer tool also.&lt;br /&gt;
&lt;br /&gt;
You can use this plugin to share activities and courses between Moodle installations without configuring a Moodle network.&lt;br /&gt;
&lt;br /&gt;
You can also share activities and courses with other LTI consumer tools like Sakai&lt;br /&gt;
&lt;br /&gt;
You have a detailed view of this plugin possibilities in [http://www.somerandomthoughts.com/blog/2012/01/08/review-lti-provider-for-moodle-2-2/ this post by Gavin Henrik]&lt;br /&gt;
&lt;br /&gt;
== Main features ==&lt;br /&gt;
&lt;br /&gt;
Provide access to full courses or single activities.&lt;br /&gt;
&lt;br /&gt;
Change the navigation block of a course or activity for displaying information and links only regarding to your current course.&lt;br /&gt;
&lt;br /&gt;
Send backs course or activity final grades to the LTI consumer tool&lt;br /&gt;
&lt;br /&gt;
Modify the course or activity page for hiding the header, footer and left or right blocks&lt;br /&gt;
&lt;br /&gt;
== Plugin version 2.3 and above features ==&lt;br /&gt;
&lt;br /&gt;
=== The plugin settings link is displayed in the settings block, instead the course one ===&lt;br /&gt;
&lt;br /&gt;
=== Several new settings for control different features of the plugin: ===&lt;br /&gt;
- How the user profile is updated&lt;br /&gt;
- Default authentication method&lt;br /&gt;
- Format of the course shortname, fullname and idnumber (using LTI variables)&lt;br /&gt;
- Roles allowed to create new contexts&lt;br /&gt;
- Roles allowed to create new resources&lt;br /&gt;
&lt;br /&gt;
=== The remote tool can be opened using the context_id ===&lt;br /&gt;
&lt;br /&gt;
The tool can be opened using also the context_id instead the current internal Moodle id&lt;br /&gt;
&lt;br /&gt;
=== Support for context memberships service ===&lt;br /&gt;
&lt;br /&gt;
See http://developers.imsglobal.org/ext_membership.html&lt;br /&gt;
&lt;br /&gt;
=== LTI custom parameters to force settings on SSO ===&lt;br /&gt;
&lt;br /&gt;
See https://tracker.moodle.org/browse/CONTRIB-4502&lt;br /&gt;
&lt;br /&gt;
=== Service for context (course) creation, using other courses as template ===&lt;br /&gt;
&lt;br /&gt;
Service URL local/ltiprovider/services.php&lt;br /&gt;
&lt;br /&gt;
Custom parameters:&lt;br /&gt;
&lt;br /&gt;
custom_service = create_context&lt;br /&gt;
&lt;br /&gt;
custom_context_template = Moodle idnumber for a course to be used as a template (the course will be duplicate)&lt;br /&gt;
&lt;br /&gt;
The course will be created populating the fullname, shortname and idnumber configured in the plugin settings&lt;br /&gt;
&lt;br /&gt;
=== Service for resources duplication ===&lt;br /&gt;
&lt;br /&gt;
Service URL local/ltiprovider/services.php&lt;br /&gt;
&lt;br /&gt;
Custom parameters:&lt;br /&gt;
&lt;br /&gt;
custom_service = duplicate_resource&lt;br /&gt;
&lt;br /&gt;
custom_resource_link_copy_id = Moodle idnumber of the activity to be duplicated in the current context&lt;br /&gt;
&lt;br /&gt;
=== SSO to resources ===&lt;br /&gt;
&lt;br /&gt;
If the context resource_link_id matches to an activity idnumber, the user will be redirect to that activity in Moodle&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of resources (moodle activities) ===&lt;br /&gt;
&lt;br /&gt;
If this additional parameter is present in the request custom_resource_link_type (mod_forum, etc...)  and also resource_link_title and resource_link_description a new moodle activity will be created&lt;br /&gt;
&lt;br /&gt;
See: https://tracker.moodle.org/browse/CONTRIB-4409&lt;br /&gt;
&lt;br /&gt;
=== Automatic creation of contexts on SSO ===&lt;br /&gt;
&lt;br /&gt;
Two additional request parameters are required:&lt;br /&gt;
&lt;br /&gt;
custom_create_context (0 or 1)&lt;br /&gt;
&lt;br /&gt;
custom_context_template (Moodle course idnumber)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Resources duplication on SSO ===&lt;br /&gt;
&lt;br /&gt;
Additional parameter required:&lt;br /&gt;
&lt;br /&gt;
custom_resource_link_copy_id = Moodle idnumber of the activity to be duplicated in the current context&lt;br /&gt;
&lt;br /&gt;
== Installing and configuring ==&lt;br /&gt;
&lt;br /&gt;
Follow instructions here: http://moodle.org/plugins/pluginversions.php?plugin=local_ltiprovider&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important&#039;&#039;&#039; If you are using Moodle 2.2 or above, please, be sure that this option:&lt;br /&gt;
&lt;br /&gt;
 Home / &amp;gt; Site administration / &amp;gt; Security / &amp;gt; HTTP security Allow frame embedding&lt;br /&gt;
&lt;br /&gt;
Is checked, if you leave this option unchecked your provider site will not be &amp;quot;embedable&amp;quot; via an iframe in other sites.&lt;br /&gt;
&lt;br /&gt;
Once installed, a new link called &amp;quot;LTI Provider&amp;quot; will be displayed in the course navigation block .&lt;br /&gt;
&lt;br /&gt;
In this page, you can add, modify and disable the tools provided in your course.&lt;br /&gt;
&lt;br /&gt;
Please note that you can provide a tool n times with different configurations&lt;br /&gt;
&lt;br /&gt;
There are options for hiding the page header, footer, and left and right blocks and also options for force the Moodle navigation inside a course or activity.&lt;br /&gt;
&lt;br /&gt;
There are also options for assign different roles in the course or activity to the remote users.&lt;br /&gt;
&lt;br /&gt;
Once added a tool, you will need to use two settings in your consumer tool:&lt;br /&gt;
&lt;br /&gt;
* Shared secret&lt;br /&gt;
&lt;br /&gt;
* Launch URL&lt;br /&gt;
&lt;br /&gt;
Your consumer tool will ask you for a consumer private key, you can use a random string (please, do not use the shared secret as the private key)&lt;br /&gt;
&lt;br /&gt;
Configure your consumer tool with these two settings. That&#039;s all&lt;br /&gt;
&lt;br /&gt;
For a more detailed view of the plugin options see [http://www.somerandomthoughts.com/blog/2012/01/08/review-lti-provider-for-moodle-2-2/ this detailed review of the plugin by Gavin Henrik]&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
=== User authentication ===&lt;br /&gt;
&lt;br /&gt;
* Users are created automatically in their first access to the system.&lt;br /&gt;
* Users are created with a hashed username and also with an auth method that disable direct login to Moodle.&lt;br /&gt;
* Users are allways enrolled in the course where the activities are.&lt;br /&gt;
&lt;br /&gt;
You can choose which role has the Learner and the Teacher from the remote system.&lt;br /&gt;
&lt;br /&gt;
There is also settings for setting Users profile default values (email visible, etc...)&lt;br /&gt;
&lt;br /&gt;
If you are going to have courses with local and remote users enrolled, I recommend you to create these new roles:&lt;br /&gt;
&lt;br /&gt;
* External teacher&lt;br /&gt;
* External student&lt;br /&gt;
&lt;br /&gt;
=== Grading ===&lt;br /&gt;
&lt;br /&gt;
A cron job checks periodically activities for sending back grades (overall course grade or activity grade).&lt;br /&gt;
&lt;br /&gt;
In order to work correctly, your php.ini settings file needs to have the following setting enabled:&lt;br /&gt;
&lt;br /&gt;
allow_url_fopen = On&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
&lt;br /&gt;
Juan Leyva &amp;lt;http://twitter.com/#!/jleyvadelgado&amp;gt;&lt;br /&gt;
&lt;br /&gt;
http://moodle.org/user/profile.php?id=49568&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
[http://www.somerandomthoughts.com/blog/2012/01/08/review-lti-provider-for-moodle-2-2/ Review: LTI Provider by Gavin Henrik]&lt;br /&gt;
&lt;br /&gt;
[http://moodle.org/plugins/pluginversions.php?plugin=local_ltiprovider Plugin entry]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/jleyva/moodle-local_ltiprovider Github page]&lt;br /&gt;
&lt;br /&gt;
[[Category: Contributed code]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Auto-linking&amp;diff=109967</id>
		<title>Auto-linking</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Auto-linking&amp;diff=109967"/>
		<updated>2014-02-15T09:14:14Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Fixed a typo.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters}}&lt;br /&gt;
[[Image:glossary autolinking.png|right]]&lt;br /&gt;
Autolinking is a feature of Moodle by which words or phrases used within a Moodle site are automatically linked (by highlighting in grey by default) to a glossary and database entries, and activity and resources within the course with the same name.&lt;br /&gt;
&lt;br /&gt;
Autolinking can be managed at different levels in Moodle:&lt;br /&gt;
&lt;br /&gt;
*Site wide: it can be switched on/off by going to  &#039;&#039;Settings &amp;gt; Site Administration &amp;gt; Plugins &amp;gt; Filters &amp;gt; Manage Filters.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Moodle courses: it can be managed within individual courses from &#039;&#039;Settings &amp;gt; Course Administration &amp;gt; Filters&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Resources &amp;amp; Activities within a Moodle course: it can also be managed from within an activity or resource from &#039;&#039;Settings &amp;gt; [Activity name] Administration &amp;gt; Filters&#039;&#039;. This is useful for turning off auto-linking to glossaries for example in a quiz, when you don&#039;t want the answer to be revealed to the student via an auto-linked glossary term being present in a question.&lt;br /&gt;
&lt;br /&gt;
*Specific text : Within activities and resources certain text can have the auto-linking disabled by highlighting the text in question and clicking on the &#039;&#039;Prevent automatic linking&#039;&#039; button (chain with a red cross through it). Alternatively, if you are viewing the text in HTML markup mode, links can be prevented by adding &amp;lt;nowiki&amp;gt;&amp;lt;nolink&amp;gt; ... &amp;lt;/nolink&amp;gt;&amp;lt;/nowiki&amp;gt; tags around the relevant content.&lt;br /&gt;
Another way to force autolinking on/off in HTML markup mode is to use:&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;&amp;lt;span class=&amp;quot;link&amp;quot;&amp;gt;text&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;&amp;lt;span class=&amp;quot;nolink&amp;quot;&amp;gt;text&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information on autolinking, see [[Filters|Filters]].&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Managing filters]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Theme_settings&amp;diff=108708</id>
		<title>Theme settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Theme_settings&amp;diff=108708"/>
		<updated>2014-01-03T20:42:18Z</updated>

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

		<summary type="html">&lt;p&gt;Scaroodle: Added an explicit reference to the three PHP functions required by the filter code, included the debugging tool.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Filters}}&lt;br /&gt;
The TeX Filter is a core Moodle filter intended to allow one to convert tex expressions into GIF images. The filter relies on three binaries to accomplish this for expressions contained between appropriate tokens.  Where these binaries are not available,  Moodle provides for a fallback through the use of  Mimetex. Versions of MimeTex for Linux (glib2.3), Windows, Mac OS X and FreeBSD are included in the Moodle distribution. There are other technologies available for displaying Tex (see the section on [[Mathematics]] tools for a discussion.)  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: being based on binaries it requires the availability of three PHP program execution functions: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;exec&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;shell_exec&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;system&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Methods and Usage ==&lt;br /&gt;
&lt;br /&gt;
To avoid confusion you should note that the TeX filter has two separate methods for converting the TeX notation to images. The preferred method is a collection of three binaries that you are responsible for installing (if they are not already present,  though many webhosts make these available) and configuring on your server. The filter settings page relates entirely to this method. If this fails for any reason the filter will fall back to a single binary - MimeTeX.  A number of different builds are included in the Moodle distribution for popular operating systems,  though Mimetex and its bigger brother, MathTex are easy enough to compile and install if you have systems administration experience.&lt;br /&gt;
&lt;br /&gt;
Before doing anything else, you need to go to &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Filters&#039;&#039; and activate the TeX Notation Filter. If you want to use the Algebra filter (another core filter) since the Algebra Filter is really only a &amp;quot;front end&amp;quot; to the Tex filter,  you should also turn on the Algebra filter.  For more information on the Algebra Filter see the [[Algebra filter]].&lt;br /&gt;
&lt;br /&gt;
Once the filter is turned on and properly configured you can make use of it by&lt;br /&gt;
including a TeX expression delimited by double-dollar signs. Example:&lt;br /&gt;
 &lt;br /&gt;
    $$ \sqrt{x + y} $$&lt;br /&gt;
&lt;br /&gt;
If this does not display properly, see the information on debugging.&lt;br /&gt;
&lt;br /&gt;
== MimeTeX ==&lt;br /&gt;
&lt;br /&gt;
Moodle may use a pre-built MimeTeX binary (located in the filters/tex directory) as a fallback if it can&#039;t properly access dvips, convert and latex binaries. There are a number of different versions for different operating systems. The TeX filter picks the appropriate binary for the detected host operating system (you will need to hack the script if your operating system is not included). Note that your web server needs to be set up with appropriate permissions for running binaries in that location. &lt;br /&gt;
&lt;br /&gt;
The [http://www.forkosh.com/mimetexmanual.html MimeTeX manual] is available but is arguably intended for persons with systems administration experience and does not specifically address the Moodle environment.&lt;br /&gt;
&lt;br /&gt;
You should only user MimeTeX if installing the full LaTeX system fails or the binaries are not available on your system. The results are not nearly as good.&lt;br /&gt;
&lt;br /&gt;
== Site administration settings ==&lt;br /&gt;
&lt;br /&gt;
Location: TeX Notation settings link in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Filters &amp;gt; Manage filters&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The TeX filter settings page are primarily intended to adjust the operation of the LaTeX renderer. The defaults for the three path settings are selected according to the detection of the operating system on which Moodle is running. These are simply suggested common values - Moodle does not check that the binaries actually exist at these locations. More recent versions of Moodle show a green tick or a red cross next to the path setting - this shows that the binary exists at that location (only). The settings have no effect on the operation of the MimeTex binary (used if any of these binaries are not found).&lt;br /&gt;
&lt;br /&gt;
==== Installing the binaries ====&lt;br /&gt;
&lt;br /&gt;
This depends on your platform, but for a typical install you are going to need a LaTeX implementation. On modern Linux implementations you should look for the &#039;texlive&#039; package (e.g. &#039;&#039;apt-get install texlive&#039;&#039;) although a Windows version is available (see [http://www.tug.org/texlive/doc/texlive-en/texlive-en.html Tex Live]). It is highly unlikely that you will have all these binaries as part of a standard install. If you cannot find texlive you may have to install LaTeX, Ghostscript and ImageMagick separately. While not endorsed by Moodle.org, a simple installation binary for Windows is [http://miktex.org/| MikTeX].  &lt;br /&gt;
&lt;br /&gt;
The filter settings page will try to guess the most likely location for the binary files depending on the detected platform. If correct, green ticks will appear against each setting. If red crosses appear you will need to check and modify the settings as required. A simple check is made to establish if the binaries exist at the given paths. A tick or a cross is displayed alongside each as a result. Note that this does not check that the application actually works, just that it is there.&lt;br /&gt;
&lt;br /&gt;
Some systems supply the fonts as separate packages. If you are having problems make sure you have all the fonts you need installed. You may need to track down an &#039;extra&#039; fonts package to get the required maths fonts.&lt;br /&gt;
&lt;br /&gt;
==== LaTeX preamble ====&lt;br /&gt;
&lt;br /&gt;
Enables the LaTeX preamble to be specified. The default should work for most users, but you may need to change it to support non-latin character sets etc. Please see the LaTeX documentation for further details.&lt;br /&gt;
&lt;br /&gt;
==== Transparent colour ====&lt;br /&gt;
&lt;br /&gt;
This should be set to your normal text background colour. The default setting is #FFFFFF (i.e., white). &lt;br /&gt;
&lt;br /&gt;
==== Density ====&lt;br /&gt;
&lt;br /&gt;
This setting effects the size of the resulting image. The default setting is 120 pixels, and it produces an image of  reasonable quality, but for some complicated equations, this still may not be enough. It may be that anything less is not going to produce an image of sufficient quality but the image size can be controlled by the TeX encoding when the page is rendered.&lt;br /&gt;
&lt;br /&gt;
==== Path of &#039;&#039;latex&#039;&#039; binary ====&lt;br /&gt;
&lt;br /&gt;
Path to standard latex binary.&lt;br /&gt;
&lt;br /&gt;
On Unix based systems it is normally &amp;quot;/usr/bin/latex&amp;quot;. On a MacOS X, the path is &amp;quot;/usr/texbin/&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In Windows, using MiKTeX, it is usually something like C:\texmf\miktex\bin\latex.exe&lt;br /&gt;
&lt;br /&gt;
==== Path of &#039;&#039;dvips&#039;&#039; binary ====&lt;br /&gt;
&lt;br /&gt;
Path to standard dvips binary - generally distributed as part of a LaTeX system.&lt;br /&gt;
&lt;br /&gt;
On Unix based systems it is normally &amp;quot;/usr/bin/dvips&amp;quot;. On a MacOS X, the path is &amp;quot;/usr/texbin/&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On Windows using MikTeX is is usually something like C:\texmf\miktex\bin\dvips.exe&lt;br /&gt;
&lt;br /&gt;
==== Path of &#039;&#039;convert&#039;&#039; binary ====&lt;br /&gt;
&lt;br /&gt;
Path to standard convert binary. This is distributed as part of the Ghostscript system, or ImageMagick in Linux.&lt;br /&gt;
&lt;br /&gt;
On Unix based systems it is normally &amp;quot;/usr/bin/convert&amp;quot;. On a MacOS X, the path is &amp;quot;/usr/local/bin/&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
On a Windows based PC the path is something like C:\Program Files\ImageMagick\convert.exe (for ImageMagick, but something else for GhostScript.)&lt;br /&gt;
&lt;br /&gt;
== Debugging TeX filter ==&lt;br /&gt;
&lt;br /&gt;
The TeX filter has a debugging script (which will be much more helpful if you turn moodle debugging on) included that should help if you are having problems. The URL will be as follows...&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;nowiki&amp;gt;http://your.moodle.path/filter/tex/texdebug.php&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can either enter this path explicitly or with appropriate role permissions the TeX images (or more likely incorrectly rendered text, if you need debugging) will link to this. On more recent versions of Moodle you are &#039;&#039;required&#039;&#039; to be logged in as an Administrator to access this facility.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.org/mod/glossary/view.php?id=2739&amp;amp;mode=letter&amp;amp;hook=M&amp;amp;sortkey=CREATION&amp;amp;sortorder=asc  TeX Filter Glossary] - a [[Glossary|glossary]] you can add to your course which details usage of the supported [[TeX notation]].&lt;br /&gt;
* [http://www.latex-project.org/ LaTeX] - the LaTeX document preparation system.&lt;br /&gt;
* [http://www.ghostscript.com/ ghostscript] - required to render the image&lt;br /&gt;
* [http://www.forkosh.com/mimetexmanual.html MimeTeX Manual] - Default TeX notation manual&lt;br /&gt;
* [http://www.miktex.org/ MikTeX] - LaTeX for Windows systems&lt;br /&gt;
* [http://www.imagemagick.org/script/index.php ImageMagick] - required to render images for Windows&lt;br /&gt;
* [[Using TeX Notation]]&lt;br /&gt;
* [[Advanced Maths Tools]] for Moodle 2.x - SEE - The Next Generation of TeX Tools&lt;br /&gt;
&lt;br /&gt;
[[Category:Site administration]]&lt;br /&gt;
[[Category:Mathematics]]&lt;br /&gt;
&lt;br /&gt;
[[de:TeX-Notation]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Caching&amp;diff=106336</id>
		<title>Caching</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Caching&amp;diff=106336"/>
		<updated>2013-08-11T07:36:35Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: /* See also */ More references about the reasons for having a shared MUC file store&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
&lt;br /&gt;
A cache is a collection of processed data that is kept on hand and re-used in order 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 (eg string fetching) take advantage of different installed cache services (eg 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;
==General approach to performance testing==&lt;br /&gt;
&lt;br /&gt;
Here is the general strategy you should be taking:&lt;br /&gt;
&lt;br /&gt;
# Build a test environment that is as close to your real production instance as possible (eg hardware, software, networking, etc)&lt;br /&gt;
# Make sure to remove as many uncontrolled variables as you can from this environment (eg other services)&lt;br /&gt;
# Use a tool to place a realistic, but simulated and repeatable load upon you server. (eg jmeter or selenium).&lt;br /&gt;
# Decide on a way to measure 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 a consistent performance improvement, apply to your production site.&lt;br /&gt;
&lt;br /&gt;
==How to use the caching settings==&lt;br /&gt;
&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. &lt;br /&gt;
&lt;br /&gt;
=== Types of cache ===&lt;br /&gt;
&lt;br /&gt;
Moodle uses three types of cache to store cached data:&lt;br /&gt;
* Request cache - The request cache is available for the duration of every page request. It is not shared between users and is used and cleared on every Moodle request.&lt;br /&gt;
* Session cache - The session cache is available through a users session in Moodle.  It is not shared between users, but persists for a single user throughout their session (i.e. from when they logon til when they log off)&lt;br /&gt;
* Application cache - The application cache is a shared cache which is available for every request. It can be shared between users and the cached data can be kept indefinitely if required.&lt;br /&gt;
&lt;br /&gt;
==== Cache types and multiple-server systems ====&lt;br /&gt;
&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 memcache.&lt;br /&gt;
&lt;br /&gt;
The same applies to session cache, unless you use a &#039;sticky sessions&#039; mechanism to ensure that within a session, users always access the same front-end server.&lt;br /&gt;
&lt;br /&gt;
===Installed cache stores===&lt;br /&gt;
&lt;br /&gt;
This section of the administrator screen displays cache plugins which are installed on the system. It lists what the capabilities of each plugin, what type of cache they provide and provides allows a cache store to be added to the system.&lt;br /&gt;
&lt;br /&gt;
===Configured store instances===&lt;br /&gt;
 &lt;br /&gt;
This section of the administrator screen displays cache stores which have been added to the system. It gives the ability to change the cache configuration and purge the cached data.&lt;br /&gt;
&lt;br /&gt;
===Cache lock instances===&lt;br /&gt;
&lt;br /&gt;
Moodle supports different mechanisms for &#039;locking&#039; access to the various cache stores. At present there is only one option and it is not used, so it can safely be ignored.&lt;br /&gt;
&lt;br /&gt;
===Known cache definitions===&lt;br /&gt;
&lt;br /&gt;
Known cache definitions displays the caches which are in use by Moodle. Each item is an area of Moodle which is using caching. It gives the administrator the ability to configure an individual area of Moodle to use a different cache backend. For example, an administrator of a Moodle cluster may choose to make language string definitions be cached on a dedicated memcached server by using the memcached cache backend.  See the section below for more information about configuring these.&lt;br /&gt;
&lt;br /&gt;
==Cache definition configuration==&lt;br /&gt;
&lt;br /&gt;
Each different cache can be configured independently, allowing admins to &amp;quot;tune&amp;quot; their setup for particular systems.  &lt;br /&gt;
&lt;br /&gt;
By default these caches are all set to use files, which is usually fine on a small one-server system.&lt;br /&gt;
&lt;br /&gt;
On a cluster, however, these defaults can cause problems because shared filesystems are slow, so in these cases we recommend you use a faster shared caching backend like memcached instead.  Note that most of these caches operating under the assumption that they are shared.&lt;br /&gt;
&lt;br /&gt;
In some cases you can choose to use a non-shared cache like the local filesystem however in these instances you be careful to purge caches MANUALLY as part of system administration.&lt;br /&gt;
&lt;br /&gt;
The following reference is intended to help you understand how each caching definition works so you can tune appropriately:&lt;br /&gt;
&lt;br /&gt;
(Note to doc editors, we need contributions below:)&lt;br /&gt;
&lt;br /&gt;
===Language string cache===&lt;br /&gt;
&lt;br /&gt;
* What is cached:&lt;br /&gt;
* When the cache is updated:&lt;br /&gt;
* How often it is hit:&lt;br /&gt;
* When should the cache be purged completely:&lt;br /&gt;
&lt;br /&gt;
===Database meta information===&lt;br /&gt;
===Event invalidation===&lt;br /&gt;
===Question definitions===&lt;br /&gt;
===HTML Purifier - cleaned content===&lt;br /&gt;
===Config settings===&lt;br /&gt;
===Course group information===&lt;br /&gt;
===Calendar subscriptions===&lt;br /&gt;
===YUI Module definitions===&lt;br /&gt;
===Plugin types===&lt;br /&gt;
===Plugin list 	Application===&lt;br /&gt;
===Plugin info - base===&lt;br /&gt;
===Plugin info - activity modules===&lt;br /&gt;
===Plugin info - blocks===&lt;br /&gt;
===Plugin info - filters===&lt;br /&gt;
===Plugin info - repositories===&lt;br /&gt;
===Plugin info - portfolios===&lt;br /&gt;
===Course categories tree===&lt;br /&gt;
===Course categories lists for particular user===&lt;br /&gt;
===Course categories records===&lt;br /&gt;
===List of course contacts===&lt;br /&gt;
===Repositories instances data===&lt;br /&gt;
&lt;br /&gt;
==Stores used when no mapping is present==&lt;br /&gt;
&lt;br /&gt;
This section displays the default cache stores which should be used by Moodle for each type of Moodle cache. If a mapping for a cache definition does not exist then this default store will be used instead.&lt;br /&gt;
&lt;br /&gt;
==Other performance testing==&lt;br /&gt;
&lt;br /&gt;
Two links that might be useful to anyone considering testing performance on their own servers:&lt;br /&gt;
&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;
&lt;br /&gt;
==Performance advise for Moodle 2.5 with load-balanced web servers==&lt;br /&gt;
&lt;br /&gt;
Performance advice: if you are running 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 memcache instead. See Tim Hunt&#039;s article on http://tjhunt.blogspot.de/2013/05/performance-testing-moodle.html. &lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
Using Moodle forum discussions:&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;
&lt;br /&gt;
Developer documentation:&lt;br /&gt;
* [[:dev:The Moodle Universal Cache (MUC)]]&lt;br /&gt;
* [[:dev:Cache API]]&lt;br /&gt;
* [[:dev:Cache API - Quick reference]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[de:Caching]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Caching&amp;diff=106335</id>
		<title>Caching</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Caching&amp;diff=106335"/>
		<updated>2013-08-11T07:32:45Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: /* See also */ Added a reference about $CFG-&amp;gt;cachedir not being local but shared (MDL-38059)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Performance}}&lt;br /&gt;
&lt;br /&gt;
A cache is a collection of processed data that is kept on hand and re-used in order 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 (eg string fetching) take advantage of different installed cache services (eg 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;
==General approach to performance testing==&lt;br /&gt;
&lt;br /&gt;
Here is the general strategy you should be taking:&lt;br /&gt;
&lt;br /&gt;
# Build a test environment that is as close to your real production instance as possible (eg hardware, software, networking, etc)&lt;br /&gt;
# Make sure to remove as many uncontrolled variables as you can from this environment (eg other services)&lt;br /&gt;
# Use a tool to place a realistic, but simulated and repeatable load upon you server. (eg jmeter or selenium).&lt;br /&gt;
# Decide on a way to measure 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 a consistent performance improvement, apply to your production site.&lt;br /&gt;
&lt;br /&gt;
==How to use the caching settings==&lt;br /&gt;
&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. &lt;br /&gt;
&lt;br /&gt;
=== Types of cache ===&lt;br /&gt;
&lt;br /&gt;
Moodle uses three types of cache to store cached data:&lt;br /&gt;
* Request cache - The request cache is available for the duration of every page request. It is not shared between users and is used and cleared on every Moodle request.&lt;br /&gt;
* Session cache - The session cache is available through a users session in Moodle.  It is not shared between users, but persists for a single user throughout their session (i.e. from when they logon til when they log off)&lt;br /&gt;
* Application cache - The application cache is a shared cache which is available for every request. It can be shared between users and the cached data can be kept indefinitely if required.&lt;br /&gt;
&lt;br /&gt;
==== Cache types and multiple-server systems ====&lt;br /&gt;
&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 memcache.&lt;br /&gt;
&lt;br /&gt;
The same applies to session cache, unless you use a &#039;sticky sessions&#039; mechanism to ensure that within a session, users always access the same front-end server.&lt;br /&gt;
&lt;br /&gt;
===Installed cache stores===&lt;br /&gt;
&lt;br /&gt;
This section of the administrator screen displays cache plugins which are installed on the system. It lists what the capabilities of each plugin, what type of cache they provide and provides allows a cache store to be added to the system.&lt;br /&gt;
&lt;br /&gt;
===Configured store instances===&lt;br /&gt;
 &lt;br /&gt;
This section of the administrator screen displays cache stores which have been added to the system. It gives the ability to change the cache configuration and purge the cached data.&lt;br /&gt;
&lt;br /&gt;
===Cache lock instances===&lt;br /&gt;
&lt;br /&gt;
Moodle supports different mechanisms for &#039;locking&#039; access to the various cache stores. At present there is only one option and it is not used, so it can safely be ignored.&lt;br /&gt;
&lt;br /&gt;
===Known cache definitions===&lt;br /&gt;
&lt;br /&gt;
Known cache definitions displays the caches which are in use by Moodle. Each item is an area of Moodle which is using caching. It gives the administrator the ability to configure an individual area of Moodle to use a different cache backend. For example, an administrator of a Moodle cluster may choose to make language string definitions be cached on a dedicated memcached server by using the memcached cache backend.  See the section below for more information about configuring these.&lt;br /&gt;
&lt;br /&gt;
==Cache definition configuration==&lt;br /&gt;
&lt;br /&gt;
Each different cache can be configured independently, allowing admins to &amp;quot;tune&amp;quot; their setup for particular systems.  &lt;br /&gt;
&lt;br /&gt;
By default these caches are all set to use files, which is usually fine on a small one-server system.&lt;br /&gt;
&lt;br /&gt;
On a cluster, however, these defaults can cause problems because shared filesystems are slow, so in these cases we recommend you use a faster shared caching backend like memcached instead.  Note that most of these caches operating under the assumption that they are shared.&lt;br /&gt;
&lt;br /&gt;
In some cases you can choose to use a non-shared cache like the local filesystem however in these instances you be careful to purge caches MANUALLY as part of system administration.&lt;br /&gt;
&lt;br /&gt;
The following reference is intended to help you understand how each caching definition works so you can tune appropriately:&lt;br /&gt;
&lt;br /&gt;
(Note to doc editors, we need contributions below:)&lt;br /&gt;
&lt;br /&gt;
===Language string cache===&lt;br /&gt;
&lt;br /&gt;
* What is cached:&lt;br /&gt;
* When the cache is updated:&lt;br /&gt;
* How often it is hit:&lt;br /&gt;
* When should the cache be purged completely:&lt;br /&gt;
&lt;br /&gt;
===Database meta information===&lt;br /&gt;
===Event invalidation===&lt;br /&gt;
===Question definitions===&lt;br /&gt;
===HTML Purifier - cleaned content===&lt;br /&gt;
===Config settings===&lt;br /&gt;
===Course group information===&lt;br /&gt;
===Calendar subscriptions===&lt;br /&gt;
===YUI Module definitions===&lt;br /&gt;
===Plugin types===&lt;br /&gt;
===Plugin list 	Application===&lt;br /&gt;
===Plugin info - base===&lt;br /&gt;
===Plugin info - activity modules===&lt;br /&gt;
===Plugin info - blocks===&lt;br /&gt;
===Plugin info - filters===&lt;br /&gt;
===Plugin info - repositories===&lt;br /&gt;
===Plugin info - portfolios===&lt;br /&gt;
===Course categories tree===&lt;br /&gt;
===Course categories lists for particular user===&lt;br /&gt;
===Course categories records===&lt;br /&gt;
===List of course contacts===&lt;br /&gt;
===Repositories instances data===&lt;br /&gt;
&lt;br /&gt;
==Stores used when no mapping is present==&lt;br /&gt;
&lt;br /&gt;
This section displays the default cache stores which should be used by Moodle for each type of Moodle cache. If a mapping for a cache definition does not exist then this default store will be used instead.&lt;br /&gt;
&lt;br /&gt;
==Other performance testing==&lt;br /&gt;
&lt;br /&gt;
Two links that might be useful to anyone considering testing performance on their own servers:&lt;br /&gt;
&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;
&lt;br /&gt;
==Performance advise for Moodle 2.5 with load-balanced web servers==&lt;br /&gt;
&lt;br /&gt;
Performance advice: if you are running 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 memcache instead. See Tim Hunt&#039;s article on http://tjhunt.blogspot.de/2013/05/performance-testing-moodle.html. &lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
Using Moodle forum discussions:&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;
&lt;br /&gt;
Developer documentation:&lt;br /&gt;
* [[:dev:The Moodle Universal Cache (MUC)]]&lt;br /&gt;
* [[:dev:Cache API]]&lt;br /&gt;
* [[:dev:Cache API - Quick reference]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[de:Caching]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Git_for_Administrators&amp;diff=105758</id>
		<title>Git for Administrators</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Git_for_Administrators&amp;diff=105758"/>
		<updated>2013-06-21T20:14:19Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Typo and rewording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
This page describes how to maintain a copy of Moodle on your production server which can easily be upgraded using Git. If you have customisations of Moodle core code, you are advised to follow the instructions in the [[Development:Quick Git start guide for Moodle development|Quick Git start guide for Moodle development]].&lt;br /&gt;
&lt;br /&gt;
To get the most of of Git it is worth making the effort to understand its basic concepts - see the See also section below. It can be a bit of a learning curve, especially if you are used to CVS or Subversion. &lt;br /&gt;
&lt;br /&gt;
== Getting hold of Git (Windows, OSX, Linux and others) ==&lt;br /&gt;
&lt;br /&gt;
Support for Git was, up until recently, mostly confined to Linux but builds are now available for most popular operating systems:&lt;br /&gt;
&lt;br /&gt;
* List of downloads from Git site - http://git-scm.com/download&lt;br /&gt;
&lt;br /&gt;
Once you have downloaded and installed your OS relevant git installation, the git commands in this document should work with your operating system.&lt;br /&gt;
&lt;br /&gt;
== Obtaining the code from Git ==&lt;br /&gt;
&lt;br /&gt;
The command line version of Git is discussed here. Graphical clients are little more than wrappers around the command line version, so you should be able to deduce the correct parameters quite easily. &lt;br /&gt;
&lt;br /&gt;
You can find the official Moodle git repository at git://git.moodle.org/moodle.git (with an official clone at git://github.com/moodle/moodle.git). To initialize your local checkout, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone git://git.moodle.org/moodle.git                       (1)&lt;br /&gt;
$ cd moodle&lt;br /&gt;
$ git branch -a                                                   (2)&lt;br /&gt;
$ git branch --track MOODLE_25_STABLE origin/MOODLE_25_STABLE     (3)&lt;br /&gt;
$ git checkout MOODLE_25_STABLE                                   (4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The command (1) initializes the new local repository as a clone of the &#039;upstream&#039; (i.e. the remote server based) moodle.git repository. The upstream repository is called &#039;origin&#039; by default. It creates a new directory named &#039;&#039;moodle&#039;&#039;, where it downloads all the files. This operation can take a while as it is actually getting the entire history of all Moodle versions&lt;br /&gt;
* The command (2) lists all available branches.&lt;br /&gt;
* Use the command (3) to create a new local branch called MOODLE_25_STABLE and set it to track the remote branch MOODLE_25_STABLE from the upstream repository.&lt;br /&gt;
* The command (4) actually switches to the newly created local branch. &lt;br /&gt;
&lt;br /&gt;
Note that Git has a huge number of options for each command and it&#039;s actually possible to do the above process with a single command (left as an exercise!!).&lt;br /&gt;
&lt;br /&gt;
==Git from behind a firewall==&lt;br /&gt;
&lt;br /&gt;
Git uses a read-only protocol that may be blocked by your firewall (port 9418). If this is a problem, you can use Github&#039;s http version &amp;lt;nowiki&amp;gt;https://github.com/moodle/moodle.git&amp;lt;/nowiki&amp;gt;. It&#039;s a bit slower, so use the Git protocol if you can.&lt;br /&gt;
&lt;br /&gt;
== Updating your installation ==&lt;br /&gt;
&lt;br /&gt;
The Moodle development team performs integration and testing of fixed bugs every Monday and Tuesday. On Wednesday you can install all patches by updating your code. Check the [http://git.moodle.org/gw?p=moodle.git;a=summary shortlog] to see if the official repository has been already updated or not.&lt;br /&gt;
&lt;br /&gt;
To update your code to the latest version (on the MOODLE_22_STABLE branch) &#039;&#039;&#039;all&#039;&#039;&#039; you have to do is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If this is a production site you should still consider the [[Upgrade]] instructions (e.g. take backups).&lt;br /&gt;
&lt;br /&gt;
== Installing a contributed extension from its Git repository ==&lt;br /&gt;
&lt;br /&gt;
This is one way to handle adding plugins from other Git repositories into your Moodle repository. Another way is to use Git Submodules. However, at the time of writing, this is one of Git&#039;s rougher features and should be regarded as an advanced option. &lt;br /&gt;
&lt;br /&gt;
For example, let us say we want to install the [[Book module]] from its Git repository into our Moodle 2.2.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ cd mod                                                          (1)&lt;br /&gt;
$ git clone git://github.com/skodak/moodle-mod_book.git book      (2)&lt;br /&gt;
$ cd book&lt;br /&gt;
$ git checkout -b MOODLE_22_STABLE origin/MOODLE_22_STABLE        (3)&lt;br /&gt;
$ git branch -d master                                            (4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The command (1) changes the current directory into the &#039;&#039;mod&#039;&#039; folder of your local Moodle clone. The command (2) creates a new subdirectory &#039;&#039;book&#039;&#039; and makes a local clone of Petr Škoda&#039;s vanilla Book repository. The command (3) creates a new local branch that will track the remote branch with a Book version for Moodle 2.2. The command (4) deletes the &#039;&#039;master&#039;&#039; that was created automatically by git-clone in (2) as we do not want it in this production checkout.&lt;br /&gt;
&lt;br /&gt;
Note: you should check first the compatibility of a module with your Moodle branch by asking directly to the Maintainer before cloning the repo or - if you want to guess it - by issueing the command below before running the command (3), in order to verify what is available among the branches:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git branch -a&lt;br /&gt;
* master&lt;br /&gt;
  remotes/origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
  remotes/origin/MOODLE_15_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_17_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_18_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_19_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_20_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_21_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_22_STABLE&lt;br /&gt;
  remotes/origin/master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will avoid an error message when you issue the command (3) against a nonexistent branch, e.g.:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
§ git checkout -b MOODLE_25_STABLE origin/MOODLE_25_STABLE&lt;br /&gt;
fatal: git checkout: updating paths is incompatible with switching branches.&lt;br /&gt;
Did you intend to checkout &#039;origin/MOODLE_25_STABLE&#039; which can not be resolved as commit?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In this case you should ask the Mantainer, here Petr Škoda, if &#039;&#039;master&#039;&#039; is the correct branch for Moodle 2.3+ and he will reply that the [[Book module]] has been already integrated in Moodle starting from 2.3 so there&#039;s no need to install it usit &#039;&#039;git&#039;&#039;. Please, as a general rule, before asking the Mantainer for something you should check the online documentation.&lt;br /&gt;
&lt;br /&gt;
Now it is wise to put the new directory mod/book/ to the list of ignored files of the main Moodle clone, otherwise a status of the main clone will keep reminding you that the new code has not been checked in.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ echo /mod/book/ &amp;gt;&amp;gt; .git/info/exclude&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To update your Moodle installation now, you must visit both Git repositories and pull changes from upstream.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ git pull&lt;br /&gt;
$ cd mod/book&lt;br /&gt;
$ git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Writing a shell script with these lines in the root of Moodle installation is a very good idea. Otherwise it is easy to forget what Git repositories are there within the main Moodle repository.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
; Moodle Docs&lt;br /&gt;
* [[Git FAQ]]&lt;br /&gt;
* [[Windows installation using Git]]&lt;br /&gt;
* [[Moodle versions]]&lt;br /&gt;
* For some screenshots see [[User:Frank_Ralf/Git]] (still work in progress)&lt;br /&gt;
* For fixing a Tracker Issue (MDL) / Forking Moodle / CONTRIButing code ... [[User:Sam_Hemelryk/My_Moodle_Git_workflow]]&lt;br /&gt;
* [[Moodle_Production_Server_with_GIT|Case study Git + Moodle from Technical University Berlin]]&lt;br /&gt;
&lt;br /&gt;
; Moodle forum discussions&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=213695 Got GIT installed on my site- here&#039;s how!]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=168094 GIT help needed]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=165236 Best way to manage CONTRIB code with GIT]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=167063 Handy Git tip for tracking 3rd-party modules and plugins]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=167730 Moodle Git repositories]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=183693 Git and CVS]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=208904 GIT for dummies]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=211930 Git and upgrading misunderstanding]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=231046 Clear git guide for Admins (not developers)]&lt;br /&gt;
&lt;br /&gt;
; External resources &lt;br /&gt;
* [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT With 20 Commands Or So]&lt;br /&gt;
* [http://gitref.org/ Git Reference]&lt;br /&gt;
* [http://progit.org/book/ Pro Git book]&lt;br /&gt;
* [http://eigenjoy.com/2008/05/15/git-from-the-bottom-up/ Git from the bottom up]&lt;br /&gt;
&lt;br /&gt;
[[ja:管理者用Git]]&lt;br /&gt;
[[fr:Git_pour_administrateurs]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/310/en/index.php?title=Git_for_Administrators&amp;diff=105748</id>
		<title>Git for Administrators</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/310/en/index.php?title=Git_for_Administrators&amp;diff=105748"/>
		<updated>2013-06-20T20:12:13Z</updated>

		<summary type="html">&lt;p&gt;Scaroodle: Minor fixes as a potential response to https://moodle.org/mod/forum/discuss.php?d=231046&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
This page describes how to maintain a copy of Moodle on your production server which can easily be upgraded using Git. If you have customisations of Moodle core code, you are advised to follow the instructions in the [[Development:Quick Git start guide for Moodle development|Quick Git start guide for Moodle development]].&lt;br /&gt;
&lt;br /&gt;
To get the most of of Git it is worth making the effort to understand its basic concepts - see the See also section below. It can be a bit of a learning curve, especially if you are used to CVS or Subversion. &lt;br /&gt;
&lt;br /&gt;
== Getting hold of Git (Windows, OSX, Linux and others) ==&lt;br /&gt;
&lt;br /&gt;
Support for Git was, up until recently, mostly confined to Linux but builds are now available for most popular operating systems:&lt;br /&gt;
&lt;br /&gt;
* List of downloads from Git site - http://git-scm.com/download&lt;br /&gt;
&lt;br /&gt;
Once you have downloaded and installed your OS relevant git installation, the git commands in this document should work with your operating system.&lt;br /&gt;
&lt;br /&gt;
== Obtaining the code from Git ==&lt;br /&gt;
&lt;br /&gt;
The command line version of Git is discussed here. Graphical clients are little more than wrappers around the command line version, so you should be able to deduce the correct parameters quite easily. &lt;br /&gt;
&lt;br /&gt;
You can find the official Moodle git repository at git://git.moodle.org/moodle.git (with an official clone at git://github.com/moodle/moodle.git). To initialize your local checkout, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone git://git.moodle.org/moodle.git                       (1)&lt;br /&gt;
$ cd moodle&lt;br /&gt;
$ git branch -a                                                   (2)&lt;br /&gt;
$ git branch --track MOODLE_25_STABLE origin/MOODLE_25_STABLE     (3)&lt;br /&gt;
$ git checkout MOODLE_25_STABLE                                   (4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The command (1) initializes the new local repository as a clone of the &#039;upstream&#039; (i.e. the remote server based) moodle.git repository. The upstream repository is called &#039;origin&#039; by default. It creates a new directory named &#039;&#039;moodle&#039;&#039;, where it downloads all the files. This operation can take a while as it is actually getting the entire history of all Moodle versions&lt;br /&gt;
* The command (2) lists all available branches.&lt;br /&gt;
* Use the command (3) to create a new local branch called MOODLE_25_STABLE and set it to track the remote branch MOODLE_25_STABLE from the upstream repository.&lt;br /&gt;
* The command (4) actually switches to the newly created local branch. &lt;br /&gt;
&lt;br /&gt;
Note that Git has a huge number of options for each command and it&#039;s actually possible to do the above process with a single command (left as an exercise!!).&lt;br /&gt;
&lt;br /&gt;
==Git from behind a firewall==&lt;br /&gt;
&lt;br /&gt;
Git uses a read-only protocol that may be blocked by your firewall (port 9418). If this is a problem, you can use Github&#039;s http version &amp;lt;nowiki&amp;gt;https://github.com/moodle/moodle.git&amp;lt;/nowiki&amp;gt;. It&#039;s a bit slower, so use the Git protocol if you can.&lt;br /&gt;
&lt;br /&gt;
== Updating your installation ==&lt;br /&gt;
&lt;br /&gt;
The Moodle development team performs integration and testing of fixed bugs every Monday and Tuesday. On Wednesday you can install all patches by updating your code. Check the [http://git.moodle.org/gw?p=moodle.git;a=summary shortlog] to see if the official repository has been already updated or not.&lt;br /&gt;
&lt;br /&gt;
To update your code to the latest version (on the MOODLE_22_STABLE branch) &#039;&#039;&#039;all&#039;&#039;&#039; you have to do is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If this is a production site you should still consider the [[Upgrade]] instructions (e.g. take backups).&lt;br /&gt;
&lt;br /&gt;
== Installing a contributed extension from its Git repository ==&lt;br /&gt;
&lt;br /&gt;
This is one way to handle adding plugins from other Git repositories into your Moodle repository. Another way is to use Git Submodules. However, at the time of writing, this is one of Git&#039;s rougher features and should be regarded as an advanced option. &lt;br /&gt;
&lt;br /&gt;
For example, let us say we want to install the [[Book module]] from its Git repository into our Moodle 2.2.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ cd mod                                                          (1)&lt;br /&gt;
$ git clone git://github.com/skodak/moodle-mod_book.git book      (2)&lt;br /&gt;
$ cd book&lt;br /&gt;
$ git checkout -b MOODLE_22_STABLE origin/MOODLE_22_STABLE        (3)&lt;br /&gt;
$ git branch -d master                                            (4)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The command (1) changes the current directory into the &#039;&#039;mod&#039;&#039; folder of your local Moodle clone. The command (2) creates a new subdirectory &#039;&#039;book&#039;&#039; and makes a local clone of Petr Škoda&#039;s vanilla Book repository. The command (3) creates a new local branch that will track the remote branch with a Book version for Moodle 2.2. The command (4) deletes the &#039;&#039;master&#039;&#039; that was created automatically by git-clone in (2) as we do not want it in this production checkout.&lt;br /&gt;
&lt;br /&gt;
Note: you should check the availability of a module for your Moodle branch by asking directly to the Maintainer before cloning the repo or by issueing the command below before running the command (3), in order to verify what is available among the branches:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git branch -a&lt;br /&gt;
* master&lt;br /&gt;
  remotes/origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
  remotes/origin/MOODLE_15_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_17_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_18_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_19_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_20_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_21_STABLE&lt;br /&gt;
  remotes/origin/MOODLE_22_STABLE&lt;br /&gt;
  remotes/origin/master&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will avoid an error message when you issue the command (3) against a not existent branch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
§ git checkout -b MOODLE_25_STABLE origin/MOODLE_25_STABLE&lt;br /&gt;
fatal: git checkout: updating paths is incompatible with switching branches.&lt;br /&gt;
Did you intend to checkout &#039;origin/MOODLE_25_STABLE&#039; which can not be resolved as commit?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In this case you should ask the Mantainer, here Petr Škoda, if &#039;&#039;master&#039;&#039; is the correct branch for Moodle 2.3+ and he will reply that the [[Book module]] has been already integrated in Moodle starting from 2.3 so there&#039;s no need to install it usit &#039;&#039;git&#039;&#039;. Please, as a general rule, before asking the Mantainer for something you should check the online documentation.&lt;br /&gt;
&lt;br /&gt;
Now it is wise to put the new directory mod/book/ to the list of ignored files of the main Moodle clone, otherwise a status of the main clone will keep reminding you that the new code has not been checked in.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ echo /mod/book/ &amp;gt;&amp;gt; .git/info/exclude&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To update your Moodle installation now, you must visit both Git repositories and pull changes from upstream.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/your/moodle/&lt;br /&gt;
$ git pull&lt;br /&gt;
$ cd mod/book&lt;br /&gt;
$ git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Writing a shell script with these lines in the root of Moodle installation is a very good idea. Otherwise it is easy to forget what Git repositories are there within the main Moodle repository.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
; Moodle Docs&lt;br /&gt;
* [[Git FAQ]]&lt;br /&gt;
* [[Windows installation using Git]]&lt;br /&gt;
* [[Moodle versions]]&lt;br /&gt;
* For some screenshots see [[User:Frank_Ralf/Git]] (still work in progress)&lt;br /&gt;
* For fixing a Tracker Issue (MDL) / Forking Moodle / CONTRIButing code ... [[User:Sam_Hemelryk/My_Moodle_Git_workflow]]&lt;br /&gt;
* [[Moodle_Production_Server_with_GIT|Case study Git + Moodle from Technical University Berlin]]&lt;br /&gt;
&lt;br /&gt;
; Moodle forum discussions&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=213695 Got GIT installed on my site- here&#039;s how!]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=168094 GIT help needed]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=165236 Best way to manage CONTRIB code with GIT]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=167063 Handy Git tip for tracking 3rd-party modules and plugins]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=167730 Moodle Git repositories]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=183693 Git and CVS]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=208904 GIT for dummies]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=211930 Git and upgrading misunderstanding]&lt;br /&gt;
&lt;br /&gt;
; External resources &lt;br /&gt;
* [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT With 20 Commands Or So]&lt;br /&gt;
* [http://gitref.org/ Git Reference]&lt;br /&gt;
* [http://progit.org/book/ Pro Git book]&lt;br /&gt;
* [http://eigenjoy.com/2008/05/15/git-from-the-bottom-up/ Git from the bottom up]&lt;br /&gt;
&lt;br /&gt;
[[ja:管理者用Git]]&lt;br /&gt;
[[fr:Git_pour_administrateurs]]&lt;/div&gt;</summary>
		<author><name>Scaroodle</name></author>
	</entry>
</feed>