<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/403/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stronk7</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/403/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Stronk7"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/Special:Contributions/Stronk7"/>
	<updated>2026-05-15T14:12:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=PHP&amp;diff=147769</id>
		<title>PHP</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=PHP&amp;diff=147769"/>
		<updated>2024-02-02T10:44:04Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Updating versions to actual ones.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
PHP is the scripting language in which Moodle is developed. It is integrated with your web server. The web server detects php pages (by their extension) and sends them to PHP for execution. PHP must be installed and configured properly for Moodle to work effectively (or at all).&lt;br /&gt;
==PHP Versions==&lt;br /&gt;
* Moodle 3.0.1 and later support PHP 7, however&lt;br /&gt;
** Moodle 3.1 and earlier does not support PHP 7.1 or later (this means that there is currently no combination of releases of Moodle and PHP that are still supported before Moodle 3.4);&lt;br /&gt;
* Moodle 3.4 and Moodle 3.5 &#039;&#039;&#039;require&#039;&#039;&#039; PHP 7.0 or PHP 7.1 or PHP 7.2&lt;br /&gt;
* Moodle 3.6 &#039;&#039;&#039;requires&#039;&#039;&#039; PHP 7.0 or later&lt;br /&gt;
* Moodle 3.7 &#039;&#039;&#039;requires&#039;&#039;&#039; PHP 7.1 or later&lt;br /&gt;
* Moodle 3.9 &#039;&#039;&#039;requires&#039;&#039;&#039; PHP 7.2 to 7.4&lt;br /&gt;
* Moodle 3.11 and 4.0 &#039;&#039;&#039;requires&#039;&#039;&#039; PHP 7.3 to 8.0&lt;br /&gt;
* Moodle 4.1 (LTS) &#039;&#039;&#039;requires&#039;&#039;&#039; PHP 7.4 to 8.1&lt;br /&gt;
* Moodle 4.2 &#039;&#039;&#039;requires&#039;&#039;&#039; PHP 8.0 to 8.2&lt;br /&gt;
* Moodle 4.3 &#039;&#039;&#039;requires&#039;&#039;&#039; PHP 8.0 to 8.2&lt;br /&gt;
&lt;br /&gt;
==PHP Settings==&lt;br /&gt;
Check these settings in your php.ini or .htaccess file (if you&#039;re using Apache). For settings which use ON/OFF as their values, you can substitute 1 for ON and 0 for OFF if you prefer. If you change php.ini, don&#039;t forget to restart the server. &lt;br /&gt;
* &#039;&#039;memory_limit&#039;&#039; needs to be at least 96M (although some functions may not work if this low). Moodle will refuse to install if lower. 128M is recommended. Large systems may need an even higher setting.&lt;br /&gt;
* &#039;&#039;session.save_handler&#039;&#039; needs to be set to FILES.&lt;br /&gt;
* &#039;&#039;magic_quotes_runtime&#039;&#039; needs to be OFF. (DEPRECATED in PHP 5.3.0, and REMOVED as of PHP 7.0.0.)&lt;br /&gt;
* &#039;&#039;file_uploads&#039;&#039; needs to be ON.&lt;br /&gt;
* &#039;&#039;session.auto_start&#039;&#039; needs to be OFF.&lt;br /&gt;
* The temp folder must be defined and writeable by your webserver user&lt;br /&gt;
* Check the error display/logging section. Make sure the settings are appropriate for your server use.&lt;br /&gt;
* &#039;&#039;post_max_size&#039;&#039; and &#039;&#039;upload_max_filesize&#039;&#039; restrict the maximum file size that can be uploaded.&lt;br /&gt;
* Check the &#039;&#039;[mail function]&#039;&#039; and database section (for your chosen database) to make sure they match your server configuration.&lt;br /&gt;
==HTTP_RAW_POST_DATA errors==&lt;br /&gt;
Some users are experiencing $HTTP_RAW_POST_DATA related errors, when establishing connection between MNET servers or making AJAX web services requests.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Request for server name returned empty response&lt;br /&gt;
 &lt;br /&gt;
    line 134 of /mnet/lib.php: call to debugging()&lt;br /&gt;
    line 115 of /admin/mnet/peers.php: call to mnet_get_public_key()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These errors are affecting installations running moodle on PHP 5.6 version and it&#039;s a PHP bug on the &#039;&#039;&#039;always_populate_raw_post_data&#039;&#039;&#039; setting the default value to 0.&lt;br /&gt;
&lt;br /&gt;
To avoid the error messages above, please change the value following setting on your php.ini file:&lt;br /&gt;
* &#039;&#039;&#039;always_populate_raw_post_data&#039;&#039;&#039; should be changed to &#039;&#039;&#039;-1&#039;&#039;&#039;.&lt;br /&gt;
For more information about this bug, see: https://bugs.php.net/bug.php?id=66763&lt;br /&gt;
==Finding the correct php.ini==&lt;br /&gt;
Sometimes it is not obvious where the php.ini file is located or you may even find more than one. To be certain run &#039;phpinfo&#039; - see below. The path of the php.ini file is a few lines down in the top section. &lt;br /&gt;
&lt;br /&gt;
Note that if you are using command-line (CLI) PHP for running cron (or anything else) it may be configured with a &#039;&#039;different&#039;&#039; php.ini file. To check, run the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php -i | grep php.ini&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==PHP Extensions and libraries==&lt;br /&gt;
The following PHP extensions are required or recommended (some, e.g. iconv, ctype and tokenizer are now included in PHP by default). Others will need to be installed or selected.&lt;br /&gt;
==== Required extensions ====&lt;br /&gt;
* &#039;&#039;&#039;ctype&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;curl&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;dom&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;gd&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;iconv&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;intl&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;json&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;mbstring&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;pcre&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;simplexml&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;spl&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;xml&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;zip&#039;&#039;&#039;&lt;br /&gt;
* The appropriate extension for your chosen database is also required (&#039;&#039;&#039;pgsql&#039;&#039;&#039;, &#039;&#039;&#039;mysqli&#039;&#039;&#039;, &#039;&#039;&#039;sqlsrv&#039;&#039;&#039;, &#039;&#039;&#039;oci8&#039;&#039;&#039;, or &#039;&#039;&#039;pdo&#039;&#039;&#039;)&lt;br /&gt;
* Other PHP extensions may be required to support optional Moodle functionality, especially external authentication and/or enrolment (e.g. LDAP extension for LDAP authentication and the sockets extension for Chat server).&lt;br /&gt;
==== Recommended extensions ====&lt;br /&gt;
* &#039;&#039;&#039;openssl&#039;&#039;&#039; (required for networking and web services)&lt;br /&gt;
* &#039;&#039;&#039;soap&#039;&#039;&#039; (required for web services)&lt;br /&gt;
* &#039;&#039;&#039;sodium&#039;&#039;&#039; (required on PHP 8 and above)&lt;br /&gt;
* &#039;&#039;&#039;tokenizer&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;xmlrpc&#039;&#039;&#039; (required for networking and web services)&lt;br /&gt;
==Installing (missing) extensions==&lt;br /&gt;
This depends on how PHP was installed on your machine and what access you have. Here are some possibilities:&lt;br /&gt;
* The extension might be installed but not enabled; you can enable it in php.ini with the &amp;lt;code&amp;gt;extension=&amp;lt;extension-name&amp;gt;&amp;lt;/code&amp;gt; [https://www.php.net/manual/en/ini.core.php#ini.extension directive].&lt;br /&gt;
* If this is a hosted server you are likely to have to ask the administrator or hosting company.&lt;br /&gt;
* If PHP was compiled from source you will need to recompile, changing the &#039;configure&#039; settings - see [[Compiling PHP from source]].&lt;br /&gt;
* If it was installed using packages (typically Linux) you can install the required package (see your Linux distribution&#039;s documentation)&lt;br /&gt;
* If you are using Windows you just need to uncomment the appropriate DLL files in php.ini&lt;br /&gt;
After making any changes or additions, don&#039;t forget to re-start your web server.&lt;br /&gt;
== .htaccess files ==&lt;br /&gt;
If you don&#039;t have access to the php.ini file or there are conflicting requirements with other PHP applications on the same server you may be able to change PHP settings in an .htaccess file. This should be placed in the &#039;root&#039; of your Moodle installation (i.e. the same place as the config.php file). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The file isn&#039;t always called .htaccess and may not work at all. Contact your server administrator to be sure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Settings are made by adding lines in one of two formats:&lt;br /&gt;
* php_value &#039;&#039;name value&#039;&#039;&lt;br /&gt;
* php_flag &#039;&#039;name on/off&#039;&#039;&lt;br /&gt;
Examples:&lt;br /&gt;
* &#039;&#039;&#039;php_value memory_limit 128M&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;php_flag register_globals off&#039;&#039;&#039;&lt;br /&gt;
==PHP info==&lt;br /&gt;
The phpinfo display contains information about the configuration of your PHP installation. This is useful for checking:&lt;br /&gt;
* that your PHP installation meets Moodle&#039;s system requirements.&lt;br /&gt;
* the values that are currently applied to your server&#039;s PHP install, e.g. File upload limits&lt;br /&gt;
* that you have installed the required modules needed for Moodle to work, e.g. the LDAP module for LDAP authentication.&lt;br /&gt;
=== Displaying phpinfo in Moodle===&lt;br /&gt;
An administrator can find PHP info in &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; PHP info&#039;&#039;.&lt;br /&gt;
=== Displaying phpinfo outside of Moodle ===&lt;br /&gt;
To view the phpinfo information:&lt;br /&gt;
* Create a file called info.php using your text editor, containing this single line:&lt;br /&gt;
 &amp;lt;code php&amp;gt;&lt;br /&gt;
 &amp;lt;?php phpinfo(); ?&amp;gt;&lt;br /&gt;
 &amp;lt;/code&amp;gt;&lt;br /&gt;
* Save this file as info.php&lt;br /&gt;
* Upload this file into the root web accessible folder on your server.&lt;br /&gt;
* Now open this file in your browser. For example &amp;lt;nowiki&amp;gt;http://&amp;lt;server-name&amp;gt;/info.php&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Compiling PHP from source]]&lt;br /&gt;
* [https://docs.moodle.org/dev/Moodle_and_PHP7 Moodle and PHP7] in the developers documentation&lt;br /&gt;
*http://www.php.net/ - the PHP web site&lt;br /&gt;
*[https://php.iis.net/ http://php.iis.net/] - Microsoft PHP Installer for IIS&lt;br /&gt;
* [[MoodleDocs:Style_guide#PHP_syntax_highlighting]] to highlight PHP syntax&lt;br /&gt;
* [[Code syntax highlighting]] that uses the GeSHi (Generic Syntax Highlighter) filter. &lt;br /&gt;
[[de:PHP]]&lt;br /&gt;
[[es:PHP]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=User_talk:Eloy_Lafuente_(stronk7)&amp;diff=147594</id>
		<title>User talk:Eloy Lafuente (stronk7)</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=User_talk:Eloy_Lafuente_(stronk7)&amp;diff=147594"/>
		<updated>2024-01-06T16:53:14Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Created page with &amp;quot;test talk page&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;test talk page&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/db_prefix_too_long&amp;diff=146691</id>
		<title>admin/environment/custom check/db prefix too long</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/db_prefix_too_long&amp;diff=146691"/>
		<updated>2023-09-10T15:30:30Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Created page with &amp;quot;Since Moodle 4.3, the max allowed length for the database tables prefix (&amp;lt;tt&amp;gt;$CFG-&amp;gt;prefix&amp;lt;/tt&amp;gt;) are 10 characters.  If your database is using longer prefixes, you will need to...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since Moodle 4.3, the max allowed length for the database tables prefix (&amp;lt;tt&amp;gt;$CFG-&amp;gt;prefix&amp;lt;/tt&amp;gt;) are 10 characters.&lt;br /&gt;
&lt;br /&gt;
If your database is using longer prefixes, you will need to rename all the tables to use a new, shorter, prefix.&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
* [https://moodledev.io/general/releases/4.3#database-requirements Moodle 4.3 release page database requirements].&lt;br /&gt;
* MDL-76459&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/php_not_64_bits&amp;diff=145338</id>
		<title>admin/environment/custom check/php not 64 bits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/php_not_64_bits&amp;diff=145338"/>
		<updated>2023-01-02T15:42:55Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: amend&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This message means that your current [[PHP]] version is not 64 bits.&lt;br /&gt;
&lt;br /&gt;
A new feature of PHP7 is it has now 64-bit version so it can use more than 4GB RAM and code performance can be potentially two times faster depending on the application design.&lt;br /&gt;
&lt;br /&gt;
{{Note|Since Moodle 4.2 it&#039;s required to use a 64-bit version of PHP and the underlying Operating System.}}&lt;br /&gt;
&lt;br /&gt;
[[es:admin/environment/custom check/php not 64 bits]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/php_not_64_bits&amp;diff=145337</id>
		<title>admin/environment/custom check/php not 64 bits</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/php_not_64_bits&amp;diff=145337"/>
		<updated>2023-01-02T15:40:02Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This message means that your current [[PHP]] version is not 64 bits.&lt;br /&gt;
&lt;br /&gt;
A new feature of PHP7 is it has now 64-bit version so it can use more than 4GB RAM and code performance can be potentially two times faster depending on the application design.&lt;br /&gt;
&lt;br /&gt;
{{Note|Starting with Moodle 4.2 only 64bits Operating Systems and PHP installations are supported.}}&lt;br /&gt;
&lt;br /&gt;
[[es:admin/environment/custom check/php not 64 bits]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=MNet&amp;diff=145336</id>
		<title>MNet</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=MNet&amp;diff=145336"/>
		<updated>2023-01-02T10:29:29Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: amend position of previous change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Authentication}}&lt;br /&gt;
The Moodle network feature allows a Moodle administrator to establish a link with another Moodle or a Mahara site and to share some resources with the users of that Moodle. Users go from the first Moodle to the linked site via the [[Network servers block]].&lt;br /&gt;
&lt;br /&gt;
[[File:Networkserversexample.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The initial release of MNet is bundled with a Authentication Plugin, which makes single-sign-on between Moodles possible. A user with the username &amp;lt;em&amp;gt;jody&amp;lt;/em&amp;gt; logs in to her Moodle server as normal, and clicks on a link that takes her to a page on another Moodle server. Normally, she would have only the privileges of a guest on the remote Moodle, but behind the scenes, single-sign-on has established a fully authenticated session for Jody on the remote site.&lt;br /&gt;
&lt;br /&gt;
{{Template:XMLRPC Note Moodle 4.1}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039;  MNet requires the use of &#039;&#039;&#039;xmlrpc&#039;&#039;&#039;. Please go to your phpinfo page if you are interested in using this and search for --with-xmlrpc.  If your php has not been compiled with xmlrpc then you need to address that first! At present it appears that PEAR xmlrpc will not work.&lt;br /&gt;
[[Image:Administration Block Users Authentication MoodleNetwork.jpg|thumb|MNet setting in &#039;&#039;Admin &amp;gt; User &amp;gt; Authentication &amp;gt; Moodle Network]]&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
The MNet feature requires that your server has the &#039;&#039;&#039;Curl&#039;&#039;&#039; and &#039;&#039;&#039;OpenSSL&#039;&#039;&#039; extensions installed. Your system will generate a OpenSSL certificate for encrypted communication with other Moodles, and will rotate encryption keys on a monthly basis (approx).&lt;br /&gt;
&lt;br /&gt;
Communication takes place over an XML-RPC transport, and the XML-RPC documents are wrapped first in an XMLDSIG (XML digital signature) envelope, and then in an XMLENC (XML encryption) envelope. The encryption all happens within PHP, and does not require an https (Apache SSL) server.&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*[http://www.w3.org/TR/xmldsig-core/ XML Digital Signatures]&lt;br /&gt;
*[http://www.w3.org/TR/xmlenc-core/ XML Encryption]&lt;br /&gt;
&lt;br /&gt;
A special mode can be enabled which would allow a machine with a specified IP address to make calls to the XML-RPC layer without using either encryption or signature envelopes. This mode is provided to enable Moodle to communicate with other software systems in which the integration of signatures and encryption might be prohibitively difficult. It is not envisioned that unencrypted inter-Moodle networking will ever be enabled.&lt;br /&gt;
&lt;br /&gt;
==Peer to Peer Network==&lt;br /&gt;
&lt;br /&gt;
This is the basic layout of the system. It can be very useful to run one Moodle per faculty or departments, each with its own user management, and yet permit users to roam across the Moodle installs... subject to permissions of course. &lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
&lt;br /&gt;
The instructions will cover 2 Moodle installations: MoodleA and MoodleB. Both are installed correctly and have never had a Moodle Network configuration.&lt;br /&gt;
&lt;br /&gt;
Note: If you experience problems, ensure debugging is turned on in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Debugging&#039;&#039;. Extra diagnostic messages may be displayed.&lt;br /&gt;
&lt;br /&gt;
You need to first enable Networking in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Advanced Features&#039;&#039;. This will add the &amp;quot;Networking&amp;quot; menu to the Site Administration menu.&lt;br /&gt;
&lt;br /&gt;
# Get them to talk to each other&lt;br /&gt;
## Ensure &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Environment&#039;&#039; indicates you have curl installed&lt;br /&gt;
## If MoodleA and MoodleB are hosted in the same domain, ensure they have a different cookie prefix. Note that changing the cookie prefix will log you out! You can change the cookie prefix via &#039;&#039;Admin &amp;gt; Server &amp;gt; Session Handling&#039;&#039;.&lt;br /&gt;
## On both, go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Advanced Features&#039;&#039; and turn Networking ON.&lt;br /&gt;
## On MoodleA go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Network &amp;gt; Manage peers&#039;&#039; - put the URL of MoodleB under &amp;quot;Add New Host&amp;quot; and click Add. The URL should include the directory where your Moodle code is located and may include the protocol as well, for example &#039;&#039;https://www.mymoodle.org/moodle&#039;&#039;.&lt;br /&gt;
## Do the equivalent on MoodleB.&lt;br /&gt;
# Get user roaming going&lt;br /&gt;
[http://moodle.org/mod/forum/discuss.php?d=141491] ). On both servers: &lt;br /&gt;
### Go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039;. Enable &#039;&#039;MNet Authentication&#039;&#039; by clicking the &#039;enable&#039; icon.&lt;br /&gt;
## On MoodleA go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Networking &amp;gt; (Manage) Peers&#039;&#039;, click on &#039;MoodleB&#039;, and click on the &#039;Services&#039; tab. Enable SSO-IDP (SSO Identity Provider) publish and subscribe, and SSO-SP (SSO Service Provider) publish and subscribe.&lt;br /&gt;
## Do the equivalent on MoodleB. (By both publishing and subscribing you allow users to move freely between the two servers. By only publishing or subscribing between servers you create a one way traversal)&lt;br /&gt;
## On both, go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Users &amp;gt; Permissions &amp;gt; Define Roles&#039;&#039;, only roles that have &amp;quot;Roam to a remote Moodle moodle/site:mnetlogintoremote&amp;quot; will be allowed to roam. Grant the privilege as appropriate.&lt;br /&gt;
### eg. enabling for &#039;&#039;Authenticated user&#039;&#039; allows any authenticated user to roam between servers.&lt;br /&gt;
## On both servers, go to the homepage, and add the &#039;Network Servers&#039; block.&lt;br /&gt;
## To test, it is recommended to use a different browser (even on a different machine) that is logged in to neither. Login to MoodleA with a non-administrator account that has the permissions to roam. You should see the Network Servers block, and clicking on it you should go to MoodleB with a newly autocreated account. &lt;br /&gt;
# Get remote enrolments going -- this is optional. It allows an administrator of MoodleB to enrol users that are &amp;quot;native&amp;quot; to MoodleB in remote courses in MoodleA, and viceversa.&lt;br /&gt;
## On both, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable the Mnet remote enrolments plugin (click Save). Click on &#039;Edit&#039; and enable &#039;allow_allcourses&#039; or select some courses or categories to be remotely enrolled.&lt;br /&gt;
## On the server you want to receive enrolments:&lt;br /&gt;
### Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039;. Enable &#039;&#039;MNet remote enrolments&#039;&#039; by clicking the &#039;enable&#039; icon. (For &#039;&#039;MNet remote enrolments&#039;&#039; settings info see [[MNet_remote_enrolments|MNet remote enrolments]])&lt;br /&gt;
## On MoodleA go to &#039;&#039;Admin &amp;gt; Networking &amp;gt; Peers&#039;&#039;, click on &#039;MoodleB&#039;, and click on the &#039;Services&#039; tab. Enable Enrolment publish and/or subscribe.&lt;br /&gt;
## Do the equivalent on MoodleB.&lt;br /&gt;
## On every course you want to allow enrolments into:&lt;br /&gt;
### Enter course and go to &#039;&#039;Administration &amp;gt; Course administration &amp;gt; Users &amp;gt; Enrolment methods&#039;&#039;&lt;br /&gt;
### From &#039;&#039;Add method&#039;&#039; drop-down select &#039;&#039;MNet remote enrolments&#039;&#039;&lt;br /&gt;
### On the new screen select the &#039;&#039;Remote host&#039;&#039; you want to allow enrolments from, the Role for the enrolled users, and click save. (Note: you can only add a single &#039;&#039;MNet remote enrolments&#039;&#039; method per course.)&lt;br /&gt;
&lt;br /&gt;
===Using it===&lt;br /&gt;
&lt;br /&gt;
# In MoodleA go to &#039;&#039;Admin &amp;gt; Networking &amp;gt; Remote enrolments client&#039;&#039;. You will see MoodleB listed. Click on &#039;&#039;Edit enrolments&#039;&#039; button beside MoodleB and you will see a list of courses that MoodleB offers for remote enrolment. Click &#039;&#039;Edit enrolments&#039;&#039;, select the users you want to enroll, and then click Add to enroll them in the course.&lt;br /&gt;
&lt;br /&gt;
==Connecting to a Mnet hub==&lt;br /&gt;
A Mnet hub (do not confuse it with the [[Community hub]]) is a Moodle server that is configured to accept connections from other Moodle servers, and to provide a set of services to users of these other servers. This guideline will direct you to connect to a Mnet hub, assess the services it has to offer, and enable those services for your users.&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
# Get talking to the Hub&lt;br /&gt;
## Ensure that the &#039;&#039;Admin &amp;gt; Server &amp;gt; Environment&#039;&#039; page indicates you have curl and openssl installed&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Advanced Features&#039;&#039; and turn Networking on&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Network &amp;gt; Peers&#039;&#039; and enter the URL of Mnet Hub under &amp;quot;Add New Host&amp;quot;. Click &amp;lt;em&amp;gt;Add&amp;lt;/em&amp;gt;&lt;br /&gt;
## The host details for the Mnet Hub should appear with the Site Name field already populated. Click &amp;lt;em&amp;gt;Save changes&amp;lt;/em&amp;gt;&lt;br /&gt;
## The details will be written to your database and two new tabs will appear in this window: &#039;Services&#039; and &#039;Logs&#039;. Click &amp;lt;em&amp;gt;Services&amp;lt;/em&amp;gt;&lt;br /&gt;
##A list of services will appear, each with a checkbox for &#039;publish&#039; and &#039;subscribe&#039;. Check the checkboxes for any services you want to publish or subscribe to&lt;br /&gt;
&lt;br /&gt;
===Using it===&lt;br /&gt;
If the Mnet Hub has already enabled a service for you, there will be a tick alongside the appropriate checkbox, for example: if the Hub is &amp;lt;em&amp;gt;publishing&amp;lt;/em&amp;gt; Moodle Networked Enrolment, then a tick will appear alongside the &amp;lt;em&amp;gt;subscribe&amp;lt;/em&amp;gt; checkbox for this service. Note that in order to enable some functionality, prominently &amp;lt;em&amp;gt;single-sign-on&amp;lt;/em&amp;gt;, you may have to &amp;lt;em&amp;gt;publish&amp;lt;/em&amp;gt; a service, e.g. the &amp;lt;em&amp;gt;Identity Provider&amp;lt;/em&amp;gt; service. The Mnet Hub will access this service on your Moodle, asking it to authenticate your users.&lt;br /&gt;
# Enable Roaming&lt;br /&gt;
## Subscribe to &amp;lt;em&amp;gt;SSO (Service Provider)&amp;lt;/em&amp;gt; by checking the box&lt;br /&gt;
## Publish &amp;lt;em&amp;gt;SSO (Identity Provider)&amp;lt;/em&amp;gt; by checking the box&lt;br /&gt;
## Click &amp;lt;em&amp;gt;Save changes&amp;lt;/em&amp;gt;&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Users &amp;gt; Permissions &amp;gt; Define Roles&#039;&#039;, and grant the capability &amp;lt;em&amp;gt;Roam to a remote Moodle moodle/site:mnetlogintoremote&amp;lt;/em&amp;gt; to an appropriate role&lt;br /&gt;
## Go to &#039;&#039;Administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable the &amp;lt;em&amp;gt;Moodle Network authentication&amp;lt;/em&amp;gt; plugin&lt;br /&gt;
## Go to your homepage, turn on editing, and add the &#039;Network Servers&#039; block&lt;br /&gt;
## Using a different web-browser, log on as a non-admin user who inhabits the role you granted the roaming capability to&lt;br /&gt;
## Note that the Mnet Hub is listed in the Network Servers block on the homepage. Click on the link to that server&lt;br /&gt;
## Some of your user details will be transferred to the Mnet Hub server, and a browsing session will be started for you as if you had logged on there directly&lt;br /&gt;
# Enable Networked Enrolment&lt;br /&gt;
## Return to the web browser you&#039;ve been using as the site administrator&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Network &amp;gt; Peers&#039;&#039; and click on the entry for the Mnet Hub.&lt;br /&gt;
## Click on the Services tab&lt;br /&gt;
## Subscribe to &amp;lt;em&amp;gt;Moodle Networked Enrolment&amp;lt;/em&amp;gt;&lt;br /&gt;
## Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable the &amp;lt;em&amp;gt;Mnet remote enrolment &amp;lt;/em&amp;gt; plugin. Click &amp;lt;em&amp;gt;Save changes&amp;lt;/em&amp;gt;&lt;br /&gt;
## Click on &amp;lt;em&amp;gt;edit&amp;lt;/em&amp;gt; to view the details for networked enrolments.&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Networking &amp;gt; Enrolments&#039;&#039; to see a list of Moodle servers that offer this service to you&lt;br /&gt;
## Click on a server name to view a list of courses that the server offers to your users&lt;br /&gt;
## Click on a course name, to view a list users that you can enrol in this course&lt;br /&gt;
## Enrol users&lt;br /&gt;
## Profit!&lt;br /&gt;
&lt;br /&gt;
==Running a Mnet hub==&lt;br /&gt;
A Mnet hub is a regular Moodle site that runs in a special mode. As a Moodle Administrator, when you add another Moodle site to your list of network peers, your Moodle will contact that site to find out what it is called, and to request its public key for encrypted communication. Normally, the remote server will simply provide this information without making any record of the transaction.&lt;br /&gt;
&lt;br /&gt;
A Mnet hub is different. As soon as you add an entry for a Mnet hub to your system, the Mnet hub will create an entry for your server in its list of hosts, and may immediately begin to offer services to the users of your site.&lt;br /&gt;
&lt;br /&gt;
This section will guide you to set up a Mnet hub, and select services to offer to all comers.&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
Enable Networking&lt;br /&gt;
# Ensure that the &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; Environment&#039;&#039; page indicates you have curl and openssl installed&lt;br /&gt;
# Go to &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Advanced Features&#039;&#039; and turn Networking on &lt;br /&gt;
# Go to &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Network &amp;gt; Peers&#039;&#039; and tick the checkbox for &amp;lt;em&amp;gt;Register all hosts&amp;lt;/em&amp;gt;. Click on &amp;lt;em&amp;gt;Save Changes&amp;lt;/em&amp;gt;&lt;br /&gt;
# On the same page, the first entry in your list of hosts should be &amp;lt;em&amp;gt;All hosts&amp;lt;/em&amp;gt;. Click this link&lt;br /&gt;
# Click on &amp;lt;em&amp;gt;Services&amp;lt;/em&amp;gt; and enable any services you want to offer to all comers&lt;br /&gt;
&lt;br /&gt;
==Assigning the role of admin==&lt;br /&gt;
&lt;br /&gt;
For security reasons, users cannot be assigned the role of admin via the Moodle interface. Instead, admin user IDs must be listed in config.php e.g. &amp;lt;code&amp;gt;$CFG-&amp;gt;siteadmins = &#039;2,45,67&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: This applies to local admins as well as remote admins, as this overrides any local DB stored settings that assign administrative permissions.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Moodle Network FAQ]]&lt;br /&gt;
* [[Upload users]] for csv upload using the &#039;&#039;mnethostid&#039;&#039; field.&lt;br /&gt;
* [[Development:Moodle Network|Moodle Network development notes]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=6976 MNet forum]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=92749 Examples of how people are using Moodle networks] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Enrolment]]&lt;br /&gt;
[[Category:MNet]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Réseau Moodle]]&lt;br /&gt;
[[ja:MNet]]&lt;br /&gt;
[[es:Red Moodle]]&lt;br /&gt;
[[cs:Síťové služby]]&lt;br /&gt;
[[de:Moodle-Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=MNet&amp;diff=145335</id>
		<title>MNet</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=MNet&amp;diff=145335"/>
		<updated>2023-01-02T10:28:43Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Note about Moodle 4.1 and XMLRPC extension/webservice added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Authentication}}&lt;br /&gt;
The Moodle network feature allows a Moodle administrator to establish a link with another Moodle or a Mahara site and to share some resources with the users of that Moodle. Users go from the first Moodle to the linked site via the [[Network servers block]].&lt;br /&gt;
&lt;br /&gt;
[[File:Networkserversexample.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The initial release of MNet is bundled with a Authentication Plugin, which makes single-sign-on between Moodles possible. A user with the username &amp;lt;em&amp;gt;jody&amp;lt;/em&amp;gt; logs in to her Moodle server as normal, and clicks on a link that takes her to a page on another Moodle server. Normally, she would have only the privileges of a guest on the remote Moodle, but behind the scenes, single-sign-on has established a fully authenticated session for Jody on the remote site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING:&#039;&#039;&#039;  MNet requires the use of &#039;&#039;&#039;xmlrpc&#039;&#039;&#039;. Please go to your phpinfo page if you are interested in using this and search for --with-xmlrpc.  If your php has not been compiled with xmlrpc then you need to address that first! At present it appears that PEAR xmlrpc will not work.&lt;br /&gt;
[[Image:Administration Block Users Authentication MoodleNetwork.jpg|thumb|MNet setting in &#039;&#039;Admin &amp;gt; User &amp;gt; Authentication &amp;gt; Moodle Network]]&lt;br /&gt;
&lt;br /&gt;
{{Template:XMLRPC Note Moodle 4.1}}&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
The MNet feature requires that your server has the &#039;&#039;&#039;Curl&#039;&#039;&#039; and &#039;&#039;&#039;OpenSSL&#039;&#039;&#039; extensions installed. Your system will generate a OpenSSL certificate for encrypted communication with other Moodles, and will rotate encryption keys on a monthly basis (approx).&lt;br /&gt;
&lt;br /&gt;
Communication takes place over an XML-RPC transport, and the XML-RPC documents are wrapped first in an XMLDSIG (XML digital signature) envelope, and then in an XMLENC (XML encryption) envelope. The encryption all happens within PHP, and does not require an https (Apache SSL) server.&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*[http://www.w3.org/TR/xmldsig-core/ XML Digital Signatures]&lt;br /&gt;
*[http://www.w3.org/TR/xmlenc-core/ XML Encryption]&lt;br /&gt;
&lt;br /&gt;
A special mode can be enabled which would allow a machine with a specified IP address to make calls to the XML-RPC layer without using either encryption or signature envelopes. This mode is provided to enable Moodle to communicate with other software systems in which the integration of signatures and encryption might be prohibitively difficult. It is not envisioned that unencrypted inter-Moodle networking will ever be enabled.&lt;br /&gt;
&lt;br /&gt;
==Peer to Peer Network==&lt;br /&gt;
&lt;br /&gt;
This is the basic layout of the system. It can be very useful to run one Moodle per faculty or departments, each with its own user management, and yet permit users to roam across the Moodle installs... subject to permissions of course. &lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
&lt;br /&gt;
The instructions will cover 2 Moodle installations: MoodleA and MoodleB. Both are installed correctly and have never had a Moodle Network configuration.&lt;br /&gt;
&lt;br /&gt;
Note: If you experience problems, ensure debugging is turned on in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Debugging&#039;&#039;. Extra diagnostic messages may be displayed.&lt;br /&gt;
&lt;br /&gt;
You need to first enable Networking in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Advanced Features&#039;&#039;. This will add the &amp;quot;Networking&amp;quot; menu to the Site Administration menu.&lt;br /&gt;
&lt;br /&gt;
# Get them to talk to each other&lt;br /&gt;
## Ensure &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Environment&#039;&#039; indicates you have curl installed&lt;br /&gt;
## If MoodleA and MoodleB are hosted in the same domain, ensure they have a different cookie prefix. Note that changing the cookie prefix will log you out! You can change the cookie prefix via &#039;&#039;Admin &amp;gt; Server &amp;gt; Session Handling&#039;&#039;.&lt;br /&gt;
## On both, go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Advanced Features&#039;&#039; and turn Networking ON.&lt;br /&gt;
## On MoodleA go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Network &amp;gt; Manage peers&#039;&#039; - put the URL of MoodleB under &amp;quot;Add New Host&amp;quot; and click Add. The URL should include the directory where your Moodle code is located and may include the protocol as well, for example &#039;&#039;https://www.mymoodle.org/moodle&#039;&#039;.&lt;br /&gt;
## Do the equivalent on MoodleB.&lt;br /&gt;
# Get user roaming going&lt;br /&gt;
[http://moodle.org/mod/forum/discuss.php?d=141491] ). On both servers: &lt;br /&gt;
### Go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039;. Enable &#039;&#039;MNet Authentication&#039;&#039; by clicking the &#039;enable&#039; icon.&lt;br /&gt;
## On MoodleA go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Networking &amp;gt; (Manage) Peers&#039;&#039;, click on &#039;MoodleB&#039;, and click on the &#039;Services&#039; tab. Enable SSO-IDP (SSO Identity Provider) publish and subscribe, and SSO-SP (SSO Service Provider) publish and subscribe.&lt;br /&gt;
## Do the equivalent on MoodleB. (By both publishing and subscribing you allow users to move freely between the two servers. By only publishing or subscribing between servers you create a one way traversal)&lt;br /&gt;
## On both, go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Users &amp;gt; Permissions &amp;gt; Define Roles&#039;&#039;, only roles that have &amp;quot;Roam to a remote Moodle moodle/site:mnetlogintoremote&amp;quot; will be allowed to roam. Grant the privilege as appropriate.&lt;br /&gt;
### eg. enabling for &#039;&#039;Authenticated user&#039;&#039; allows any authenticated user to roam between servers.&lt;br /&gt;
## On both servers, go to the homepage, and add the &#039;Network Servers&#039; block.&lt;br /&gt;
## To test, it is recommended to use a different browser (even on a different machine) that is logged in to neither. Login to MoodleA with a non-administrator account that has the permissions to roam. You should see the Network Servers block, and clicking on it you should go to MoodleB with a newly autocreated account. &lt;br /&gt;
# Get remote enrolments going -- this is optional. It allows an administrator of MoodleB to enrol users that are &amp;quot;native&amp;quot; to MoodleB in remote courses in MoodleA, and viceversa.&lt;br /&gt;
## On both, go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable the Mnet remote enrolments plugin (click Save). Click on &#039;Edit&#039; and enable &#039;allow_allcourses&#039; or select some courses or categories to be remotely enrolled.&lt;br /&gt;
## On the server you want to receive enrolments:&lt;br /&gt;
### Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039;. Enable &#039;&#039;MNet remote enrolments&#039;&#039; by clicking the &#039;enable&#039; icon. (For &#039;&#039;MNet remote enrolments&#039;&#039; settings info see [[MNet_remote_enrolments|MNet remote enrolments]])&lt;br /&gt;
## On MoodleA go to &#039;&#039;Admin &amp;gt; Networking &amp;gt; Peers&#039;&#039;, click on &#039;MoodleB&#039;, and click on the &#039;Services&#039; tab. Enable Enrolment publish and/or subscribe.&lt;br /&gt;
## Do the equivalent on MoodleB.&lt;br /&gt;
## On every course you want to allow enrolments into:&lt;br /&gt;
### Enter course and go to &#039;&#039;Administration &amp;gt; Course administration &amp;gt; Users &amp;gt; Enrolment methods&#039;&#039;&lt;br /&gt;
### From &#039;&#039;Add method&#039;&#039; drop-down select &#039;&#039;MNet remote enrolments&#039;&#039;&lt;br /&gt;
### On the new screen select the &#039;&#039;Remote host&#039;&#039; you want to allow enrolments from, the Role for the enrolled users, and click save. (Note: you can only add a single &#039;&#039;MNet remote enrolments&#039;&#039; method per course.)&lt;br /&gt;
&lt;br /&gt;
===Using it===&lt;br /&gt;
&lt;br /&gt;
# In MoodleA go to &#039;&#039;Admin &amp;gt; Networking &amp;gt; Remote enrolments client&#039;&#039;. You will see MoodleB listed. Click on &#039;&#039;Edit enrolments&#039;&#039; button beside MoodleB and you will see a list of courses that MoodleB offers for remote enrolment. Click &#039;&#039;Edit enrolments&#039;&#039;, select the users you want to enroll, and then click Add to enroll them in the course.&lt;br /&gt;
&lt;br /&gt;
==Connecting to a Mnet hub==&lt;br /&gt;
A Mnet hub (do not confuse it with the [[Community hub]]) is a Moodle server that is configured to accept connections from other Moodle servers, and to provide a set of services to users of these other servers. This guideline will direct you to connect to a Mnet hub, assess the services it has to offer, and enable those services for your users.&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
# Get talking to the Hub&lt;br /&gt;
## Ensure that the &#039;&#039;Admin &amp;gt; Server &amp;gt; Environment&#039;&#039; page indicates you have curl and openssl installed&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Advanced Features&#039;&#039; and turn Networking on&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Network &amp;gt; Peers&#039;&#039; and enter the URL of Mnet Hub under &amp;quot;Add New Host&amp;quot;. Click &amp;lt;em&amp;gt;Add&amp;lt;/em&amp;gt;&lt;br /&gt;
## The host details for the Mnet Hub should appear with the Site Name field already populated. Click &amp;lt;em&amp;gt;Save changes&amp;lt;/em&amp;gt;&lt;br /&gt;
## The details will be written to your database and two new tabs will appear in this window: &#039;Services&#039; and &#039;Logs&#039;. Click &amp;lt;em&amp;gt;Services&amp;lt;/em&amp;gt;&lt;br /&gt;
##A list of services will appear, each with a checkbox for &#039;publish&#039; and &#039;subscribe&#039;. Check the checkboxes for any services you want to publish or subscribe to&lt;br /&gt;
&lt;br /&gt;
===Using it===&lt;br /&gt;
If the Mnet Hub has already enabled a service for you, there will be a tick alongside the appropriate checkbox, for example: if the Hub is &amp;lt;em&amp;gt;publishing&amp;lt;/em&amp;gt; Moodle Networked Enrolment, then a tick will appear alongside the &amp;lt;em&amp;gt;subscribe&amp;lt;/em&amp;gt; checkbox for this service. Note that in order to enable some functionality, prominently &amp;lt;em&amp;gt;single-sign-on&amp;lt;/em&amp;gt;, you may have to &amp;lt;em&amp;gt;publish&amp;lt;/em&amp;gt; a service, e.g. the &amp;lt;em&amp;gt;Identity Provider&amp;lt;/em&amp;gt; service. The Mnet Hub will access this service on your Moodle, asking it to authenticate your users.&lt;br /&gt;
# Enable Roaming&lt;br /&gt;
## Subscribe to &amp;lt;em&amp;gt;SSO (Service Provider)&amp;lt;/em&amp;gt; by checking the box&lt;br /&gt;
## Publish &amp;lt;em&amp;gt;SSO (Identity Provider)&amp;lt;/em&amp;gt; by checking the box&lt;br /&gt;
## Click &amp;lt;em&amp;gt;Save changes&amp;lt;/em&amp;gt;&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Users &amp;gt; Permissions &amp;gt; Define Roles&#039;&#039;, and grant the capability &amp;lt;em&amp;gt;Roam to a remote Moodle moodle/site:mnetlogintoremote&amp;lt;/em&amp;gt; to an appropriate role&lt;br /&gt;
## Go to &#039;&#039;Administration &amp;gt; Plugins &amp;gt; Authentication &amp;gt; Manage authentication&#039;&#039; and enable the &amp;lt;em&amp;gt;Moodle Network authentication&amp;lt;/em&amp;gt; plugin&lt;br /&gt;
## Go to your homepage, turn on editing, and add the &#039;Network Servers&#039; block&lt;br /&gt;
## Using a different web-browser, log on as a non-admin user who inhabits the role you granted the roaming capability to&lt;br /&gt;
## Note that the Mnet Hub is listed in the Network Servers block on the homepage. Click on the link to that server&lt;br /&gt;
## Some of your user details will be transferred to the Mnet Hub server, and a browsing session will be started for you as if you had logged on there directly&lt;br /&gt;
# Enable Networked Enrolment&lt;br /&gt;
## Return to the web browser you&#039;ve been using as the site administrator&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Network &amp;gt; Peers&#039;&#039; and click on the entry for the Mnet Hub.&lt;br /&gt;
## Click on the Services tab&lt;br /&gt;
## Subscribe to &amp;lt;em&amp;gt;Moodle Networked Enrolment&amp;lt;/em&amp;gt;&lt;br /&gt;
## Go to &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Enrolments &amp;gt; Manage enrol plugins&#039;&#039; and enable the &amp;lt;em&amp;gt;Mnet remote enrolment &amp;lt;/em&amp;gt; plugin. Click &amp;lt;em&amp;gt;Save changes&amp;lt;/em&amp;gt;&lt;br /&gt;
## Click on &amp;lt;em&amp;gt;edit&amp;lt;/em&amp;gt; to view the details for networked enrolments.&lt;br /&gt;
## Go to &#039;&#039;Admin &amp;gt; Networking &amp;gt; Enrolments&#039;&#039; to see a list of Moodle servers that offer this service to you&lt;br /&gt;
## Click on a server name to view a list of courses that the server offers to your users&lt;br /&gt;
## Click on a course name, to view a list users that you can enrol in this course&lt;br /&gt;
## Enrol users&lt;br /&gt;
## Profit!&lt;br /&gt;
&lt;br /&gt;
==Running a Mnet hub==&lt;br /&gt;
A Mnet hub is a regular Moodle site that runs in a special mode. As a Moodle Administrator, when you add another Moodle site to your list of network peers, your Moodle will contact that site to find out what it is called, and to request its public key for encrypted communication. Normally, the remote server will simply provide this information without making any record of the transaction.&lt;br /&gt;
&lt;br /&gt;
A Mnet hub is different. As soon as you add an entry for a Mnet hub to your system, the Mnet hub will create an entry for your server in its list of hosts, and may immediately begin to offer services to the users of your site.&lt;br /&gt;
&lt;br /&gt;
This section will guide you to set up a Mnet hub, and select services to offer to all comers.&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
Enable Networking&lt;br /&gt;
# Ensure that the &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Server &amp;gt; Environment&#039;&#039; page indicates you have curl and openssl installed&lt;br /&gt;
# Go to &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Advanced Features&#039;&#039; and turn Networking on &lt;br /&gt;
# Go to &#039;&#039;Settings &amp;gt; Site administration &amp;gt; Network &amp;gt; Peers&#039;&#039; and tick the checkbox for &amp;lt;em&amp;gt;Register all hosts&amp;lt;/em&amp;gt;. Click on &amp;lt;em&amp;gt;Save Changes&amp;lt;/em&amp;gt;&lt;br /&gt;
# On the same page, the first entry in your list of hosts should be &amp;lt;em&amp;gt;All hosts&amp;lt;/em&amp;gt;. Click this link&lt;br /&gt;
# Click on &amp;lt;em&amp;gt;Services&amp;lt;/em&amp;gt; and enable any services you want to offer to all comers&lt;br /&gt;
&lt;br /&gt;
==Assigning the role of admin==&lt;br /&gt;
&lt;br /&gt;
For security reasons, users cannot be assigned the role of admin via the Moodle interface. Instead, admin user IDs must be listed in config.php e.g. &amp;lt;code&amp;gt;$CFG-&amp;gt;siteadmins = &#039;2,45,67&#039;;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: This applies to local admins as well as remote admins, as this overrides any local DB stored settings that assign administrative permissions.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Moodle Network FAQ]]&lt;br /&gt;
* [[Upload users]] for csv upload using the &#039;&#039;mnethostid&#039;&#039; field.&lt;br /&gt;
* [[Development:Moodle Network|Moodle Network development notes]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=6976 MNet forum]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=92749 Examples of how people are using Moodle networks] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[Category:Enrolment]]&lt;br /&gt;
[[Category:MNet]]&lt;br /&gt;
&lt;br /&gt;
[[fr:Réseau Moodle]]&lt;br /&gt;
[[ja:MNet]]&lt;br /&gt;
[[es:Red Moodle]]&lt;br /&gt;
[[cs:Síťové služby]]&lt;br /&gt;
[[de:Moodle-Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=MNet_FAQ&amp;diff=145334</id>
		<title>MNet FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=MNet_FAQ&amp;diff=145334"/>
		<updated>2023-01-02T10:27:02Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Note about Moodle 4.1 and XMLRPC extension/webservice added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Authentication}}&lt;br /&gt;
==Moodle 4.1 and up==&lt;br /&gt;
{{Template:XMLRPC Note Moodle 4.1}}&lt;br /&gt;
&lt;br /&gt;
==What is MNet?==&lt;br /&gt;
MNet is the mechanism in Moodle for connecting to other Moodle (or Mahara) sites. It&#039;s short for &amp;quot;Moodle networking&amp;quot;. See [[MNet]] for more information. At some point in the future, support for MNet will end. See [http://moodle.org/mod/forum/discuss.php?d=175158 this forum discussion on MNet.]&lt;br /&gt;
&lt;br /&gt;
==It doesn&#039;t work. What do I do now?==&lt;br /&gt;
* make sure that you have the latest version of Moodle installed.&lt;br /&gt;
* make sure xmlrpc is installed. Please go to your phpinfo page and search for --with-xmlrpc. If your php has not been compiled with xmlrpc then you need to address that! At present it appears that PEAR xmlrpc will not work. &lt;br /&gt;
* make sure that openssl is installed. Please go to your phpinfo page and search for openssl. If your php has not been compiled with openssl then you need to address that.&lt;br /&gt;
* make sure you have debugging turned on (Site Administration &amp;gt; Server &amp;gt; Debugging). This will greatly increase the chance of the underlying problem being reported.&lt;br /&gt;
* Note that MNET does not currently work on lighttpd.  (MDL-14638)  This should be fixed in lighttpd 1.5 when it is released.&lt;br /&gt;
&lt;br /&gt;
==I&#039;ve set up the keys and configured Moodle Networking, but when I try to SSO into Mahara, it doesn&#039;t work==&lt;br /&gt;
This problem could be due to a PHP bug in libxml2 2.7.1 (the same bug reported with version 2.7.2 and 2.7.3). check the server &amp;gt; PHP info page to see what version of libxml is installed - if you have one of versions mentioned - check out the FAQ here for details on how to fix it: [https://docs.moodle.org/en/Backup_FAQ#Restoring_a_course_results_in_broken_HTML_tags._What_can_I_do.3F Backup_FAQ#Restoring_a_course_results_in_broken_HTML_tags._What_can_I_do.3F]&lt;br /&gt;
&lt;br /&gt;
==Moodle doesn&#039;t generate any keys on the networking pages==&lt;br /&gt;
This could be because PHP cannot find the openssl.cnf file on your server - this is a very common issue on windows servers. To address this you must set the path to this file in your config.php file - first find the openssl.cnf file on your server then add it&#039;s location into your config.php file like this:&lt;br /&gt;
    $CFG-&amp;gt;opensslcnf = &#039;C:/apache2/bin/openssl.cnf&#039;;&lt;br /&gt;
Note: this file could potentially be located anywhere on your server, just make sure the full path and name of the file is correct.&lt;br /&gt;
&lt;br /&gt;
Note: this could also affect Mahara.  On Mahara you can also added this to the config table in the database.&lt;br /&gt;
&lt;br /&gt;
Note: this also happens on RHEL5 and RHEL5 based operating systems.  The path the file is &amp;quot;/etc/pki/tls/openssl.cnf&amp;quot;. RHEL is RedHat Enterprise Linux.&lt;br /&gt;
&lt;br /&gt;
==I obtain the error &amp;quot;The signature verification failed. It appears that this payload was not signed by you.&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
See [[error/moodle/rpcerror]] for how to fix the problem.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [http://moodle.org/mod/forum/view.php?id=6976 Moodle networking (MNet) forum] on moodle.org&lt;br /&gt;
&lt;br /&gt;
Forum discussions:&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=105301 Overview of public key]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=76600 Time Gap Error - Peer to Peer]&lt;br /&gt;
* [http://moodle.org/mod/forum/discuss.php?d=202535 Replace local users with mnet users]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=417596 MNet remote enrollment does not work]&lt;br /&gt;
&lt;br /&gt;
[[Category:MNet]]&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[de:Moodle-Netzwerk FAQ]]&lt;br /&gt;
[[es:MNet FAQ]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Template:XMLRPC_Note_Moodle_4.1&amp;diff=145333</id>
		<title>Template:XMLRPC Note Moodle 4.1</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Template:XMLRPC_Note_Moodle_4.1&amp;diff=145333"/>
		<updated>2023-01-02T10:24:26Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Add paragraph about the extension not being needed for MNet anymore.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|The installation of the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039; is not needed for Moodle 4.1 core anymore. All [[MNet]] features continue working exactly the same, but using a PHP library instead (see MDL-76055 for details).&lt;br /&gt;
If you were using the &#039;&#039;&#039;webservice_xmlrpc&#039;&#039;&#039; plugin for integrations with other systems, be warned that it has been removed from core for Moodle 4.1 (see MDL-76052 for details). It&#039;s now available @ https://github.com/moodlehq/moodle-webservice_xmlrpc and has been also published in the [https://moodle.org/plugins/webservice_xmlrpc Plugins directory]. Note that, if you want to continue using this plugin, then you will need, &#039;&#039;&#039;before starting the upgrade process&#039;&#039;&#039;, to:&lt;br /&gt;
# Install the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039;, the webservice requires it.&lt;br /&gt;
# Install the &#039;&#039;&#039;webservice_xmlrpc plugin&#039;&#039;&#039;, from the links in the previous paragraph, into the &amp;lt;tt&amp;gt;webservice/xmlrpc&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
# Then, and only then, start the upgrade process.}}&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=admin/environment/php_extension/xmlrpc&amp;diff=145332</id>
		<title>admin/environment/php extension/xmlrpc</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=admin/environment/php_extension/xmlrpc&amp;diff=145332"/>
		<updated>2023-01-02T10:22:46Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Add a note about the xmlrpc extension and Moodle 4.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Environment}}&lt;br /&gt;
{{Template:XMLRPC Note Moodle 4.1}}&lt;br /&gt;
To install the xmlrpc library on Microsoft Windows:&lt;br /&gt;
#Open the &#039;&#039;php.ini&#039;&#039; file, depending on your installation this may be found in the &#039;&#039;moodle/apache/bin&#039;&#039; folder&lt;br /&gt;
#Find the line: &amp;lt;code&amp;gt;;extension=php_xmlrpc.dll&amp;lt;/code&amp;gt;&lt;br /&gt;
#Remove the &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; at the beginning of the line&lt;br /&gt;
#If necessary restart the web server, e.g. IIS or Apache.&lt;br /&gt;
To install the xmlrpc library on Linux/Unix&lt;br /&gt;
&lt;br /&gt;
If you are using PHP as provided by the OS, you can just install the appropriate package, and restart the service (e.g. PHP-FPM or Apache):&lt;br /&gt;
* On Ubuntu and Debian, the command is: apt-get install php-xmlrpc&lt;br /&gt;
* On RedHat, Fedora, CentOS and SuSE, the command is: dnf install php-xmlrpc&lt;br /&gt;
If you compiled your PHP from source:&lt;br /&gt;
# You need to recompile PHP from source &lt;br /&gt;
# add &#039;&#039;&#039;--with-xmlrpc&#039;&#039;&#039; to the command line when you run &#039;&#039;&#039;configure&#039;&#039;&#039;&lt;br /&gt;
==You can (usually) ignore this warning==&lt;br /&gt;
There are 2 features in Moodle that require that PHP extension - both are disabled by default:&lt;br /&gt;
# &amp;quot;[[MNet|Moodle networking/Mnet]]&amp;quot; - has been historically used for connecting multiple Moodle sites to each other, so you can share login processes, or connecting Moodle to Mahara (an e-portfolio system). MNet is generally considered deprecated and the LTI features in Moodle mostly provide replacements; however Mnet still contains some functions that are not easy to reproduce using other methods - it&#039;s unlikely it will be officially removed until the functionality Mnet currently provides can be easily replicated using other functionality.&lt;br /&gt;
# XMLRPC Web services protocol - If enabled, Moodle [[Using web services|web services]] allow external systems to make API calls to your Moodle site - there are a few different ways (protocols) that this data can be formatted; one of those protocols is XMLRPC and it uses the XMLRPC PHP exension to do this.&lt;br /&gt;
&lt;br /&gt;
If you have not enabled either of these features, you can safely ignore the warning. PHP 8.0 has also removed the extension out of core, so Moodle is currently investigating the options of improving this warning/removing it - more info in https://tracker.moodle.org/browse/MDL-70889&lt;br /&gt;
[[Category:Environment|PHP extension]]&lt;br /&gt;
[[Category:MNet|PHP]]&lt;br /&gt;
[[fr:admin/environment/php extension/xmlrpc]]&lt;br /&gt;
[[es:admin/environment/php extension/xmlrpc]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Template:XMLRPC_Note_Moodle_4.1&amp;diff=145331</id>
		<title>Template:XMLRPC Note Moodle 4.1</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Template:XMLRPC_Note_Moodle_4.1&amp;diff=145331"/>
		<updated>2023-01-02T10:18:10Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Undo revision 145330 by Stronk7 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|If you were using the &#039;&#039;&#039;webservice_xmlrpc&#039;&#039;&#039; plugin for integrations with other systems, be warned that it has been removed from core for Moodle 4.1 (see MDL-76052 for details). It&#039;s now available @ https://github.com/moodlehq/moodle-webservice_xmlrpc and has been also published in the [https://moodle.org/plugins/webservice_xmlrpc Plugins directory]. Note that, if you want to continue using this plugin, then you will need, &#039;&#039;&#039;before starting the upgrade process&#039;&#039;&#039;, to:&lt;br /&gt;
# Install the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039;, the webservice requires it.&lt;br /&gt;
# Install the &#039;&#039;&#039;webservice_xmlrpc plugin&#039;&#039;&#039;, from the links in the previous paragraph, into the &amp;lt;tt&amp;gt;webservice/xmlrpc&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
# Then, and only then, start the upgrade process.}}&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Template:XMLRPC_Note_Moodle_4.1&amp;diff=145330</id>
		<title>Template:XMLRPC Note Moodle 4.1</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Template:XMLRPC_Note_Moodle_4.1&amp;diff=145330"/>
		<updated>2023-01-02T10:17:17Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Add Moodle 4.1 category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|If you were using the &#039;&#039;&#039;webservice_xmlrpc&#039;&#039;&#039; plugin for integrations with other systems, be warned that it has been removed from core for Moodle 4.1 (see MDL-76052 for details). It&#039;s now available @ https://github.com/moodlehq/moodle-webservice_xmlrpc and has been also published in the [https://moodle.org/plugins/webservice_xmlrpc Plugins directory]. Note that, if you want to continue using this plugin, then you will need, &#039;&#039;&#039;before starting the upgrade process&#039;&#039;&#039;, to:&lt;br /&gt;
# Install the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039;, the webservice requires it.&lt;br /&gt;
# Install the &#039;&#039;&#039;webservice_xmlrpc plugin&#039;&#039;&#039;, from the links in the previous paragraph, into the &amp;lt;tt&amp;gt;webservice/xmlrpc&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
# Then, and only then, start the upgrade process.}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Moodle 4.1]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Capabilities/webservice/xmlrpc:use&amp;diff=145329</id>
		<title>Capabilities/webservice/xmlrpc:use</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Capabilities/webservice/xmlrpc:use&amp;diff=145329"/>
		<updated>2023-01-02T10:13:13Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Added note about webservice_xmlrpc removed from core in Moodle 4.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Capabilities}}&lt;br /&gt;
{{Template:XMLRPC Note Moodle 4.1}}&lt;br /&gt;
*This allows a user to use the XML-RPC protocol for [[Web services]]&lt;br /&gt;
*This capability is not set for any of the default roles unless the setting &#039;Enable web services for mobile devices&#039; is enabled, in which case the capability is allowed for the default role of authenticated user&lt;br /&gt;
&lt;br /&gt;
[[Category:Capabilities|Webservice]]&lt;br /&gt;
[[Category:Web Services]]&lt;br /&gt;
&lt;br /&gt;
[[eu:Capabilities/webservice/xmlrpc:use]]&lt;br /&gt;
[[es:Capabilities/webservice/xmlrpc:use]]&lt;br /&gt;
[[de:Capabilities/webservice/xmlrpc:use]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Template:XMLRPC_Note_Moodle_4.1&amp;diff=145328</id>
		<title>Template:XMLRPC Note Moodle 4.1</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Template:XMLRPC_Note_Moodle_4.1&amp;diff=145328"/>
		<updated>2023-01-02T10:12:53Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Template note to be added to various user docs pages about the move of webservice_xmlrpc out from core in Moodle 4.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note|If you were using the &#039;&#039;&#039;webservice_xmlrpc&#039;&#039;&#039; plugin for integrations with other systems, be warned that it has been removed from core for Moodle 4.1 (see MDL-76052 for details). It&#039;s now available @ https://github.com/moodlehq/moodle-webservice_xmlrpc and has been also published in the [https://moodle.org/plugins/webservice_xmlrpc Plugins directory]. Note that, if you want to continue using this plugin, then you will need, &#039;&#039;&#039;before starting the upgrade process&#039;&#039;&#039;, to:&lt;br /&gt;
# Install the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039;, the webservice requires it.&lt;br /&gt;
# Install the &#039;&#039;&#039;webservice_xmlrpc plugin&#039;&#039;&#039;, from the links in the previous paragraph, into the &amp;lt;tt&amp;gt;webservice/xmlrpc&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
# Then, and only then, start the upgrade process.}}&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=144912</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=144912"/>
		<updated>2022-11-15T18:10:00Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Update the information to the versions that may be involved in the upgrades (3.9 and up)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
&#039;&#039;This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].&#039;&#039;&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
Before upgrading, check that your server meets all requirements for {{Version}} in &#039;&#039;Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
See the [{{Release notes}} release notes] in the dev docs for both [{{Release notes}}#Server_requirements server] and [{{Release notes}}#Client_requirements client] software requirements.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* You can only upgrade to Moodle {{Version}} from Moodle 3.9 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/39/en/Upgrading_to_Moodle_3.9 upgrade to 3.9] as a first step.&lt;br /&gt;
&lt;br /&gt;
==Before upgrading==&lt;br /&gt;
&#039;&#039;&#039;We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Consider setting the [[Upgrade key|upgrade key]] for your site.&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, your Postgres or MySQL database dump)&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
== Check for plugin updates ==&lt;br /&gt;
If you have [[Automatic updates deployment]] enabled, you will be able to update installed plugins automatically during the upgrade. Just make sure you check for available updates (via the button for it) at the Plugins check screen.&lt;br /&gt;
&lt;br /&gt;
If you are updating plugins manually, it is a good moment now to check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a {{Version}} version available for any plugins (including themes) that you have previously installed on your site. If so, download the plugin package. In the next step, you will copy it to the appropriate location in your Moodle code (see [[Installing plugins]]).&lt;br /&gt;
&lt;br /&gt;
The upgrade of the plugin will then happen as part of the Moodle upgrade process.&lt;br /&gt;
&lt;br /&gt;
If an out-of-date plugin causes your upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.&lt;br /&gt;
==Put your site into maintenance mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in. Then you should wait for any currently running cron processes to complete before proceeding.&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
You can download the latest release from [https://download.moodle.org/ Moodle downloads].&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
# Move your old Moodle software program files to another location. &#039;&#039;Do NOT copy new files over the old files.&#039;&#039;&lt;br /&gt;
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.&lt;br /&gt;
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. &lt;br /&gt;
# As mentioned above, if you had installed any plugins on your site you should add them to the new code tree (Moodle directory structure) now. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle and that you place the plugin folders in the correct directory (the same directory that they are in in the current installation.)&lt;br /&gt;
# Your moodledata folder should be located separately to your Moodle code folder and, as such, should not need anything done to it. Moodle 3.0 will throw a warning if it is located in a web accessible folder and the moodledata should never be located in the Moodle code folder. If you are moving your installation to a new server or new location on your server, then you will need to follow the [[Migration]] documents.&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-latest-{{Version}}.tgz&lt;br /&gt;
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one (&#039;&#039;&#039;check that custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. For maximum security the files should not be writeable by your server. This is especially important on a &#039;production&#039; server open to the public internet. &lt;br /&gt;
 chown -R root:root moodle (Linux debian - or even create a user especially for moodle. &#039;&#039;&#039;Don&#039;t&#039;&#039;&#039; use the web server user, e.g. www-data)&lt;br /&gt;
 chmod -R 755 moodle&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;) &lt;br /&gt;
if necessary. However, for a simple upgrade, there should be no need to change anything with cron.&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.&lt;br /&gt;
===Command line upgrade===&lt;br /&gt;
On Linux servers, Moodle {{Version}} supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
If you put your site into Maintenance mode earlier; take it out now!&lt;br /&gt;
&lt;br /&gt;
To do this just go to &#039;&#039;Site administration &amp;gt; Notifications&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
Note: If you are running multiple servers then you should purge all caches manually (via &#039;&#039;Site administration &amp;gt; Development &amp;gt; Purge all caches&#039;&#039;) after completing the upgrade on all servers.&lt;br /&gt;
===Fatal error: Maximum execution time of 30 seconds exceeded...===&lt;br /&gt;
If your server uses a main language other than English, you may encounter a &#039;Fatal error: Maximum execution time of 30 seconds exceeded&#039; when you try to upgrade it. You can increase max_execution_time = 160 on php.ini to allow the scripts enough time to process the language update. Otherwise, you can switch to English as the default language before doing the upgrade and back to your original language after a successful upgrade. See the forum discussion at https://moodle.org/mod/forum/discuss.php?d=119598.&lt;br /&gt;
==After upgrading==&lt;br /&gt;
{{Note|If BigBlueButtonBN was previously installed, because the recordings are processed asynchronously in the background, the data migration starts after the Moodle upgrade has been completed.&lt;br /&gt;
&lt;br /&gt;
This means that in large deployments (with many recordings), the process may take some time (it can be hours) and therefore recordings may not be displayed immediately. But they are still there.}}&lt;br /&gt;
==Possible issues that may affect you in Moodle {{Version}}==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
See the list of [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%204.1%20AND%20labels%20%3D%20upgrade_notes upgrade_notes-labelled issues] and [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%204.1%20AND%20labels%20%3D%20ui_change ui_change-labelled issues].&lt;br /&gt;
&lt;br /&gt;
=== XMLRPC ===&lt;br /&gt;
* The installation of the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039; is not needed for Moodle 4.1 core anymore. All [[MNet]] features continue working exactly the same, but using a PHP library instead (see MDL-76055 for details).&lt;br /&gt;
* If you were using the &#039;&#039;&#039;webservice_xmlrpc&#039;&#039;&#039; plugin for integrations with other systems, be warned that it has been removed from core for Moodle 4.1 (see MDL-76052 for details). It&#039;s now available @ https://github.com/moodlehq/moodle-webservice_xmlrpc and has been also published in the [https://moodle.org/plugins/webservice_xmlrpc Plugins directory]. Note that, if you want to continue using this plugin, then you will need, &#039;&#039;&#039;before starting the upgrade process&#039;&#039;&#039;, to:&lt;br /&gt;
*# Install the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039;, the webservice requires it.&lt;br /&gt;
*# Install the &#039;&#039;&#039;webservice_xmlrpc plugin&#039;&#039;&#039;, from the links in the previous paragraph, into the &amp;lt;tt&amp;gt;webservice/xmlrpc&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
*# Then, and only then, start the upgrade process.&lt;br /&gt;
&lt;br /&gt;
=== New plugins in Moodle {{Version}} ===&lt;br /&gt;
====BigBlueButton====&lt;br /&gt;
{{Note|For recordings to work properly, [https://docs.moodle.org/403/en/Cron Cron] Jobs must be enabled.  Also, if you are using [https://github.com/blindsidenetworks/scalelite ScaleLite] for load balancing your BigBlueButton servers, make sure you are running the latest release of ScaleLite.}}&lt;br /&gt;
BigBlueButtonBN has been [https://moodle.org/plugins/mod_bigbluebuttonbn contributed plugin] for more than 10 years. It enables Moodle to interoperate with a BigBlueButton server and it is part of Moodle 4.0 as a core plugin. For more details see [https://docs.moodle.org/403/en/BigBlueButton BigBlueButton in Moodle 4.0]&lt;br /&gt;
When upgrading to Moodle 4.0, there are two possible scenarios.&lt;br /&gt;
===== BigBlueButtonBN was not installed =====&lt;br /&gt;
If the plugin was never installed, there are only two considerations to make.&lt;br /&gt;
* BigBlueButton is disabled by default. Administrators must enable it from Site administration &amp;gt; Plugins &amp;gt; Manage activities and then check the box to accept the data processing agreement.&lt;br /&gt;
* BigBlueButton is an external service. The plugin comes pre-configured with a Free Tier Hosting that comes with some restrictions.&lt;br /&gt;
===== BigBlueButtonBN was already installed =====&lt;br /&gt;
If the plugin was already installed, and the steps were followed correctly, the upgrade should be completed normally. But there are also some considerations to make.&lt;br /&gt;
* BigBlueButton may be disabled by default. If this is the case Administrators must enable it from Site administration &amp;gt; Plugins &amp;gt; Manage activities and then check the box to accept the data processing agreement.&lt;br /&gt;
* BigBlueButton is an external service. The plugin will only change the BigBlueButton credentials if the former Free Tier Hosting `https://test-install.blindsidenetworks.com/bigbluebutton/` was used. If it was not, then the existing service will still be the same.&lt;br /&gt;
===== General consideration =====&lt;br /&gt;
Regardless of the scenario, there is one general consideration&lt;br /&gt;
&lt;br /&gt;
BigBlueButton is still the repository for recordings, but the metadata is now stored in Moodle, so instead of making a getRecording requests each time a BigBlueButton activity is displayed, the view is entirely populated with Moodle data. While this makes the code more efficient, it also means that every recording needs to be processed as part of the upgrade.&lt;br /&gt;
# For recordings to work properly, cron jobs must be enabled&lt;br /&gt;
# Since the recording are processed asynchronously in the background, the data migration starts after the Moodle upgrade has been completed. This means that in in large deployments (with many recordings), the recordings may take some time (it can be hours) to be processed and therefore to be displayed as part of the activities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The details of the process can be checked in the cron job logs.&lt;br /&gt;
&lt;br /&gt;
And remember that if the Plugin was not uninstalled, and the pre-existing rooms are there, the recordings are still referenced. Nothing is lost even if they are not shown immediately. They only need to be migrated.&lt;br /&gt;
&lt;br /&gt;
Additionally, when using Scalelite as the Load Balancer for BigBlueButton, make sure the [https://github.com/blindsidenetworks/scalelite/releases/tag/v1.3.4 latest version] is deployed. With any other Load Balancer, make sure the BigBlueButton service updateRecordings is correctly implemented. Otherwise the migration will not be completed.&lt;br /&gt;
===Custom user tours===&lt;br /&gt;
If you have created any custom user tours where the URLs do not end in a % symbol (for example &#039;/course/view.php&#039;), these will no longer appear when viewing a page which has extra text at the end of the URL, such as /course/view.php?id=123. To make these tours work again, add a % to the end of the URL (&#039;/course/view.php%&#039;). The % symbol was always supposed to be necessary, but due to a bug in earlier versions, was previously not required.&lt;br /&gt;
===New capabilities in Moodle {{Version}}===&lt;br /&gt;
* mod/bigbluebuttonbn:addinstance&lt;br /&gt;
* mod/bigbluebuttonbn:addinstancewithmeeting&lt;br /&gt;
* mod/bigbluebuttonbn:addinstancewithrecording&lt;br /&gt;
* mod/bigbluebuttonbn:deleterecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:importrecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:join   &lt;br /&gt;
* mod/bigbluebuttonbn:managerecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:protectrecordings  &lt;br /&gt;
* mod/bigbluebuttonbn:publishrecordings  &lt;br /&gt;
* mod/bigbluebuttonbn:unprotectrecordings    &lt;br /&gt;
* mod/bigbluebuttonbn:unpublishrecordings    &lt;br /&gt;
* mod/bigbluebuttonbn:view   &lt;br /&gt;
&lt;br /&gt;
* mod/quiz:emailnotifyattemptgraded&lt;br /&gt;
&lt;br /&gt;
* moodle/question:commentall&lt;br /&gt;
* moodle/question:commentmine&lt;br /&gt;
&lt;br /&gt;
* moodle/reportbuilder:edit&lt;br /&gt;
* moodle/reportbuilder:editall&lt;br /&gt;
* moodle/reportbuilder:scheduleviewas&lt;br /&gt;
* moodle/reportbuilder:view&lt;br /&gt;
&lt;br /&gt;
* qbank/customfields:changelockedcustomfields &lt;br /&gt;
* qbank/customfields:configurecustomfields   &lt;br /&gt;
* qbank/customfields:viewhiddencustomfields&lt;br /&gt;
=== Moodle 3.9, 3.10, 3.11 and 4.0 upgrading notes ===&lt;br /&gt;
Depending on which version you are upgrading from, please see the section &#039;Possible issues that may affect you&#039; in the documentation:&lt;br /&gt;
* [https://docs.moodle.org/39/en/Upgrading Upgrading to Moodle 3.9]&lt;br /&gt;
* [https://docs.moodle.org/310/en/Upgrading Upgrading to Moodle 3.10]&lt;br /&gt;
* [https://docs.moodle.org/311/en/Upgrading Upgrading to Moodle 3.11]&lt;br /&gt;
* [https://docs.moodle.org/400/en/Upgrading Upgrading to Moodle 4.0]&lt;br /&gt;
&lt;br /&gt;
==Any questions about the process?==&lt;br /&gt;
Please post in the [https://moodle.org/mod/forum/view.php?id=28 Installing and upgrading help forum] on moodle.org.&lt;br /&gt;
==See also==&lt;br /&gt;
* [[dev:Moodle {{Version}} release notes|Moodle {{Version}} release notes]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=393570 Problem accessing dropdown such as personal profile since 3.8 (20191118) update] forum discussion&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=144911</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=144911"/>
		<updated>2022-11-15T14:22:33Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Fixed a couple of links to point to 4.1 issues in the tracker&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
&#039;&#039;This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].&#039;&#039;&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
Before upgrading, check that your server meets all requirements for {{Version}} in &#039;&#039;Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
See the [{{Release notes}} release notes] in the dev docs for both [{{Release notes}}#Server_requirements server] and [{{Release notes}}#Client_requirements client] software requirements.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* You can only upgrade to Moodle {{Version}} from Moodle 3.9 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/39/en/Upgrading_to_Moodle_3.9 upgrade to 3.9] as a first step.&lt;br /&gt;
&lt;br /&gt;
==Before upgrading==&lt;br /&gt;
&#039;&#039;&#039;We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Consider setting the [[Upgrade key|upgrade key]] for your site.&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, your Postgres or MySQL database dump)&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
== Check for plugin updates ==&lt;br /&gt;
If you have [[Automatic updates deployment]] enabled, you will be able to update installed plugins automatically during the upgrade. Just make sure you check for available updates (via the button for it) at the Plugins check screen.&lt;br /&gt;
&lt;br /&gt;
If you are updating plugins manually, it is a good moment now to check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a {{Version}} version available for any plugins (including themes) that you have previously installed on your site. If so, download the plugin package. In the next step, you will copy it to the appropriate location in your Moodle code (see [[Installing plugins]]).&lt;br /&gt;
&lt;br /&gt;
The upgrade of the plugin will then happen as part of the Moodle upgrade process.&lt;br /&gt;
&lt;br /&gt;
If an out-of-date plugin causes your upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.&lt;br /&gt;
==Put your site into maintenance mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in. Then you should wait for any currently running cron processes to complete before proceeding.&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
You can download the latest release from [https://download.moodle.org/ Moodle downloads].&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
# Move your old Moodle software program files to another location. &#039;&#039;Do NOT copy new files over the old files.&#039;&#039;&lt;br /&gt;
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.&lt;br /&gt;
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. &lt;br /&gt;
# As mentioned above, if you had installed any plugins on your site you should add them to the new code tree (Moodle directory structure) now. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle and that you place the plugin folders in the correct directory (the same directory that they are in in the current installation.)&lt;br /&gt;
# Your moodledata folder should be located separately to your Moodle code folder and, as such, should not need anything done to it. Moodle 3.0 will throw a warning if it is located in a web accessible folder and the moodledata should never be located in the Moodle code folder. If you are moving your installation to a new server or new location on your server, then you will need to follow the [[Migration]] documents.&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-latest-{{Version}}.tgz&lt;br /&gt;
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one (&#039;&#039;&#039;check that custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. For maximum security the files should not be writeable by your server. This is especially important on a &#039;production&#039; server open to the public internet. &lt;br /&gt;
 chown -R root:root moodle (Linux debian - or even create a user especially for moodle. &#039;&#039;&#039;Don&#039;t&#039;&#039;&#039; use the web server user, e.g. www-data)&lt;br /&gt;
 chmod -R 755 moodle&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;) &lt;br /&gt;
if necessary. However, for a simple upgrade, there should be no need to change anything with cron.&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.&lt;br /&gt;
===Command line upgrade===&lt;br /&gt;
On Linux servers, Moodle {{Version}} supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
If you put your site into Maintenance mode earlier; take it out now!&lt;br /&gt;
&lt;br /&gt;
To do this just go to &#039;&#039;Site administration &amp;gt; Notifications&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
Note: If you are running multiple servers then you should purge all caches manually (via &#039;&#039;Site administration &amp;gt; Development &amp;gt; Purge all caches&#039;&#039;) after completing the upgrade on all servers.&lt;br /&gt;
===Fatal error: Maximum execution time of 30 seconds exceeded...===&lt;br /&gt;
If your server uses a main language other than English, you may encounter a &#039;Fatal error: Maximum execution time of 30 seconds exceeded&#039; when you try to upgrade it. You can increase max_execution_time = 160 on php.ini to allow the scripts enough time to process the language update. Otherwise, you can switch to English as the default language before doing the upgrade and back to your original language after a successful upgrade. See the forum discussion at https://moodle.org/mod/forum/discuss.php?d=119598.&lt;br /&gt;
==After upgrading==&lt;br /&gt;
{{Note|If BigBlueButtonBN was previously installed, because the recordings are processed asynchronously in the background, the data migration starts after the Moodle upgrade has been completed.&lt;br /&gt;
&lt;br /&gt;
This means that in large deployments (with many recordings), the process may take some time (it can be hours) and therefore recordings may not be displayed immediately. But they are still there.}}&lt;br /&gt;
==Possible issues that may affect you in Moodle {{Version}}==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
See the list of [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%204.1%20AND%20labels%20%3D%20upgrade_notes upgrade_notes-labelled issues] and [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%204.1%20AND%20labels%20%3D%20ui_change ui_change-labelled issues].&lt;br /&gt;
&lt;br /&gt;
=== XMLRPC ===&lt;br /&gt;
* The installation of the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039; is not needed for Moodle 4.1 core anymore. All [[MNet]] features continue working exactly the same, but using a PHP library instead (see MDL-76055 for details).&lt;br /&gt;
* If you were using the &#039;&#039;&#039;webservice_xmlrpc&#039;&#039;&#039; plugin for integrations with other systems, be warned that it has been removed from core for Moodle 4.1 (see MDL-76052 for details). It&#039;s now available @ https://github.com/moodlehq/moodle-webservice_xmlrpc and has been also published in the [https://moodle.org/plugins/webservice_xmlrpc Plugins directory]. Note that, if you want to continue using this plugin, then you will need, &#039;&#039;&#039;before starting the upgrade process&#039;&#039;&#039;, to:&lt;br /&gt;
*# Install the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039;, the webservice requires it.&lt;br /&gt;
*# Install the &#039;&#039;&#039;webservice_xmlrpc plugin&#039;&#039;&#039;, from the links in the previous paragraph, into the &amp;lt;tt&amp;gt;webservice/xmlrpc&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
*# Then, and only then, start the upgrade process.&lt;br /&gt;
&lt;br /&gt;
=== New plugins in Moodle {{Version}} ===&lt;br /&gt;
====BigBlueButton====&lt;br /&gt;
{{Note|For recordings to work properly, [https://docs.moodle.org/403/en/Cron Cron] Jobs must be enabled.  Also, if you are using [https://github.com/blindsidenetworks/scalelite ScaleLite] for load balancing your BigBlueButton servers, make sure you are running the latest release of ScaleLite.}}&lt;br /&gt;
BigBlueButtonBN has been [https://moodle.org/plugins/mod_bigbluebuttonbn contributed plugin] for more than 10 years. It enables Moodle to interoperate with a BigBlueButton server and it is part of Moodle 4.0 as a core plugin. For more details see [https://docs.moodle.org/403/en/BigBlueButton BigBlueButton in Moodle 4.0]&lt;br /&gt;
When upgrading to Moodle 4.0, there are two possible scenarios.&lt;br /&gt;
===== BigBlueButtonBN was not installed =====&lt;br /&gt;
If the plugin was never installed, there are only two considerations to make.&lt;br /&gt;
* BigBlueButton is disabled by default. Administrators must enable it from Site administration &amp;gt; Plugins &amp;gt; Manage activities and then check the box to accept the data processing agreement.&lt;br /&gt;
* BigBlueButton is an external service. The plugin comes pre-configured with a Free Tier Hosting that comes with some restrictions.&lt;br /&gt;
===== BigBlueButtonBN was already installed =====&lt;br /&gt;
If the plugin was already installed, and the steps were followed correctly, the upgrade should be completed normally. But there are also some considerations to make.&lt;br /&gt;
* BigBlueButton may be disabled by default. If this is the case Administrators must enable it from Site administration &amp;gt; Plugins &amp;gt; Manage activities and then check the box to accept the data processing agreement.&lt;br /&gt;
* BigBlueButton is an external service. The plugin will only change the BigBlueButton credentials if the former Free Tier Hosting `https://test-install.blindsidenetworks.com/bigbluebutton/` was used. If it was not, then the existing service will still be the same.&lt;br /&gt;
===== General consideration =====&lt;br /&gt;
Regardless of the scenario, there is one general consideration&lt;br /&gt;
&lt;br /&gt;
BigBlueButton is still the repository for recordings, but the metadata is now stored in Moodle, so instead of making a getRecording requests each time a BigBlueButton activity is displayed, the view is entirely populated with Moodle data. While this makes the code more efficient, it also means that every recording needs to be processed as part of the upgrade.&lt;br /&gt;
# For recordings to work properly, cron jobs must be enabled&lt;br /&gt;
# Since the recording are processed asynchronously in the background, the data migration starts after the Moodle upgrade has been completed. This means that in in large deployments (with many recordings), the recordings may take some time (it can be hours) to be processed and therefore to be displayed as part of the activities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The details of the process can be checked in the cron job logs.&lt;br /&gt;
&lt;br /&gt;
And remember that if the Plugin was not uninstalled, and the pre-existing rooms are there, the recordings are still referenced. Nothing is lost even if they are not shown immediately. They only need to be migrated.&lt;br /&gt;
&lt;br /&gt;
Additionally, when using Scalelite as the Load Balancer for BigBlueButton, make sure the [https://github.com/blindsidenetworks/scalelite/releases/tag/v1.3.4 latest version] is deployed. With any other Load Balancer, make sure the BigBlueButton service updateRecordings is correctly implemented. Otherwise the migration will not be completed.&lt;br /&gt;
===Custom user tours===&lt;br /&gt;
If you have created any custom user tours where the URLs do not end in a % symbol (for example &#039;/course/view.php&#039;), these will no longer appear when viewing a page which has extra text at the end of the URL, such as /course/view.php?id=123. To make these tours work again, add a % to the end of the URL (&#039;/course/view.php%&#039;). The % symbol was always supposed to be necessary, but due to a bug in earlier versions, was previously not required.&lt;br /&gt;
===New capabilities in Moodle {{Version}}===&lt;br /&gt;
* mod/bigbluebuttonbn:addinstance&lt;br /&gt;
* mod/bigbluebuttonbn:addinstancewithmeeting&lt;br /&gt;
* mod/bigbluebuttonbn:addinstancewithrecording&lt;br /&gt;
* mod/bigbluebuttonbn:deleterecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:importrecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:join   &lt;br /&gt;
* mod/bigbluebuttonbn:managerecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:protectrecordings  &lt;br /&gt;
* mod/bigbluebuttonbn:publishrecordings  &lt;br /&gt;
* mod/bigbluebuttonbn:unprotectrecordings    &lt;br /&gt;
* mod/bigbluebuttonbn:unpublishrecordings    &lt;br /&gt;
* mod/bigbluebuttonbn:view   &lt;br /&gt;
&lt;br /&gt;
* mod/quiz:emailnotifyattemptgraded&lt;br /&gt;
&lt;br /&gt;
* moodle/question:commentall&lt;br /&gt;
* moodle/question:commentmine&lt;br /&gt;
&lt;br /&gt;
* moodle/reportbuilder:edit&lt;br /&gt;
* moodle/reportbuilder:editall&lt;br /&gt;
* moodle/reportbuilder:scheduleviewas&lt;br /&gt;
* moodle/reportbuilder:view&lt;br /&gt;
&lt;br /&gt;
* qbank/customfields:changelockedcustomfields &lt;br /&gt;
* qbank/customfields:configurecustomfields   &lt;br /&gt;
* qbank/customfields:viewhiddencustomfields&lt;br /&gt;
=== Moodle 3.6, 3.7, 3.8, 3.9, 3.10 and 3.11 improvements ===&lt;br /&gt;
Depending on which version you are upgrading from, please see the section &#039;Possible issues that may affect you&#039; in the documentation&lt;br /&gt;
* [https://docs.moodle.org/36/en/Upgrading Upgrading to Moodle 3.6]&lt;br /&gt;
* [https://docs.moodle.org/37/en/Upgrading Upgrading to Moodle 3.7]&lt;br /&gt;
* [https://docs.moodle.org/38/en/Upgrading Upgrading to Moodle 3.8]&lt;br /&gt;
* [https://docs.moodle.org/39/en/Upgrading Upgrading to Moodle 3.9]&lt;br /&gt;
* [https://docs.moodle.org/310/en/Upgrading Upgrading to Moodle 3.10]&lt;br /&gt;
* [https://docs.moodle.org/311/en/Upgrading Upgrading to Moodle 3.11]&lt;br /&gt;
&lt;br /&gt;
==Any questions about the process?==&lt;br /&gt;
Please post in the [https://moodle.org/mod/forum/view.php?id=28 Installing and upgrading help forum] on moodle.org.&lt;br /&gt;
==See also==&lt;br /&gt;
* [[dev:Moodle {{Version}} release notes|Moodle {{Version}} release notes]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=393570 Problem accessing dropdown such as personal profile since 3.8 (20191118) update] forum discussion&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=144910</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=144910"/>
		<updated>2022-11-15T14:21:19Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Upgrade notes about XMLRPC added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
&#039;&#039;This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].&#039;&#039;&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
Before upgrading, check that your server meets all requirements for {{Version}} in &#039;&#039;Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
See the [{{Release notes}} release notes] in the dev docs for both [{{Release notes}}#Server_requirements server] and [{{Release notes}}#Client_requirements client] software requirements.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* You can only upgrade to Moodle {{Version}} from Moodle 3.9 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/39/en/Upgrading_to_Moodle_3.9 upgrade to 3.9] as a first step.&lt;br /&gt;
&lt;br /&gt;
==Before upgrading==&lt;br /&gt;
&#039;&#039;&#039;We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Consider setting the [[Upgrade key|upgrade key]] for your site.&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, your Postgres or MySQL database dump)&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
== Check for plugin updates ==&lt;br /&gt;
If you have [[Automatic updates deployment]] enabled, you will be able to update installed plugins automatically during the upgrade. Just make sure you check for available updates (via the button for it) at the Plugins check screen.&lt;br /&gt;
&lt;br /&gt;
If you are updating plugins manually, it is a good moment now to check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a {{Version}} version available for any plugins (including themes) that you have previously installed on your site. If so, download the plugin package. In the next step, you will copy it to the appropriate location in your Moodle code (see [[Installing plugins]]).&lt;br /&gt;
&lt;br /&gt;
The upgrade of the plugin will then happen as part of the Moodle upgrade process.&lt;br /&gt;
&lt;br /&gt;
If an out-of-date plugin causes your upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.&lt;br /&gt;
==Put your site into maintenance mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in. Then you should wait for any currently running cron processes to complete before proceeding.&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
You can download the latest release from [https://download.moodle.org/ Moodle downloads].&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
# Move your old Moodle software program files to another location. &#039;&#039;Do NOT copy new files over the old files.&#039;&#039;&lt;br /&gt;
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.&lt;br /&gt;
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. &lt;br /&gt;
# As mentioned above, if you had installed any plugins on your site you should add them to the new code tree (Moodle directory structure) now. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle and that you place the plugin folders in the correct directory (the same directory that they are in in the current installation.)&lt;br /&gt;
# Your moodledata folder should be located separately to your Moodle code folder and, as such, should not need anything done to it. Moodle 3.0 will throw a warning if it is located in a web accessible folder and the moodledata should never be located in the Moodle code folder. If you are moving your installation to a new server or new location on your server, then you will need to follow the [[Migration]] documents.&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-latest-{{Version}}.tgz&lt;br /&gt;
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one (&#039;&#039;&#039;check that custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. For maximum security the files should not be writeable by your server. This is especially important on a &#039;production&#039; server open to the public internet. &lt;br /&gt;
 chown -R root:root moodle (Linux debian - or even create a user especially for moodle. &#039;&#039;&#039;Don&#039;t&#039;&#039;&#039; use the web server user, e.g. www-data)&lt;br /&gt;
 chmod -R 755 moodle&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;) &lt;br /&gt;
if necessary. However, for a simple upgrade, there should be no need to change anything with cron.&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.&lt;br /&gt;
===Command line upgrade===&lt;br /&gt;
On Linux servers, Moodle {{Version}} supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
If you put your site into Maintenance mode earlier; take it out now!&lt;br /&gt;
&lt;br /&gt;
To do this just go to &#039;&#039;Site administration &amp;gt; Notifications&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
Note: If you are running multiple servers then you should purge all caches manually (via &#039;&#039;Site administration &amp;gt; Development &amp;gt; Purge all caches&#039;&#039;) after completing the upgrade on all servers.&lt;br /&gt;
===Fatal error: Maximum execution time of 30 seconds exceeded...===&lt;br /&gt;
If your server uses a main language other than English, you may encounter a &#039;Fatal error: Maximum execution time of 30 seconds exceeded&#039; when you try to upgrade it. You can increase max_execution_time = 160 on php.ini to allow the scripts enough time to process the language update. Otherwise, you can switch to English as the default language before doing the upgrade and back to your original language after a successful upgrade. See the forum discussion at https://moodle.org/mod/forum/discuss.php?d=119598.&lt;br /&gt;
==After upgrading==&lt;br /&gt;
{{Note|If BigBlueButtonBN was previously installed, because the recordings are processed asynchronously in the background, the data migration starts after the Moodle upgrade has been completed.&lt;br /&gt;
&lt;br /&gt;
This means that in large deployments (with many recordings), the process may take some time (it can be hours) and therefore recordings may not be displayed immediately. But they are still there.}}&lt;br /&gt;
==Possible issues that may affect you in Moodle {{Version}}==&lt;br /&gt;
&lt;br /&gt;
=== XMLRPC ===&lt;br /&gt;
* The installation of the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039; is not needed for Moodle 4.1 core anymore. All [[MNet]] features continue working exactly the same, but using a PHP library instead (see MDL-76055 for details).&lt;br /&gt;
* If you were using the &#039;&#039;&#039;webservice_xmlrpc&#039;&#039;&#039; plugin for integrations with other systems, be warned that it has been removed from core for Moodle 4.1 (see MDL-76052 for details). It&#039;s now available @ https://github.com/moodlehq/moodle-webservice_xmlrpc and has been also published in the [https://moodle.org/plugins/webservice_xmlrpc Plugins directory]. Note that, if you want to continue using this plugin, then you will need, &#039;&#039;&#039;before starting the upgrade process&#039;&#039;&#039;, to:&lt;br /&gt;
*# Install the &#039;&#039;&#039;XMLRPC PHP extension&#039;&#039;&#039;, the webservice requires it.&lt;br /&gt;
*# Install the &#039;&#039;&#039;webservice_xmlrpc plugin&#039;&#039;&#039;, from the links in the previous paragraph, into the &amp;lt;tt&amp;gt;webservice/xmlrpc&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
*# Then, and only then, start the upgrade process.&lt;br /&gt;
&lt;br /&gt;
See also the list of [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%204.0%20AND%20labels%20%3D%20upgrade_notes upgrade_notes-labelled issues] and [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%204.0%20AND%20labels%20%3D%20ui_change ui_change-labelled issues].&lt;br /&gt;
&lt;br /&gt;
=== New plugins in Moodle {{Version}} ===&lt;br /&gt;
====BigBlueButton====&lt;br /&gt;
{{Note|For recordings to work properly, [https://docs.moodle.org/403/en/Cron Cron] Jobs must be enabled.  Also, if you are using [https://github.com/blindsidenetworks/scalelite ScaleLite] for load balancing your BigBlueButton servers, make sure you are running the latest release of ScaleLite.}}&lt;br /&gt;
BigBlueButtonBN has been [https://moodle.org/plugins/mod_bigbluebuttonbn contributed plugin] for more than 10 years. It enables Moodle to interoperate with a BigBlueButton server and it is part of Moodle 4.0 as a core plugin. For more details see [https://docs.moodle.org/403/en/BigBlueButton BigBlueButton in Moodle 4.0]&lt;br /&gt;
When upgrading to Moodle 4.0, there are two possible scenarios.&lt;br /&gt;
===== BigBlueButtonBN was not installed =====&lt;br /&gt;
If the plugin was never installed, there are only two considerations to make.&lt;br /&gt;
* BigBlueButton is disabled by default. Administrators must enable it from Site administration &amp;gt; Plugins &amp;gt; Manage activities and then check the box to accept the data processing agreement.&lt;br /&gt;
* BigBlueButton is an external service. The plugin comes pre-configured with a Free Tier Hosting that comes with some restrictions.&lt;br /&gt;
===== BigBlueButtonBN was already installed =====&lt;br /&gt;
If the plugin was already installed, and the steps were followed correctly, the upgrade should be completed normally. But there are also some considerations to make.&lt;br /&gt;
* BigBlueButton may be disabled by default. If this is the case Administrators must enable it from Site administration &amp;gt; Plugins &amp;gt; Manage activities and then check the box to accept the data processing agreement.&lt;br /&gt;
* BigBlueButton is an external service. The plugin will only change the BigBlueButton credentials if the former Free Tier Hosting `https://test-install.blindsidenetworks.com/bigbluebutton/` was used. If it was not, then the existing service will still be the same.&lt;br /&gt;
===== General consideration =====&lt;br /&gt;
Regardless of the scenario, there is one general consideration&lt;br /&gt;
&lt;br /&gt;
BigBlueButton is still the repository for recordings, but the metadata is now stored in Moodle, so instead of making a getRecording requests each time a BigBlueButton activity is displayed, the view is entirely populated with Moodle data. While this makes the code more efficient, it also means that every recording needs to be processed as part of the upgrade.&lt;br /&gt;
# For recordings to work properly, cron jobs must be enabled&lt;br /&gt;
# Since the recording are processed asynchronously in the background, the data migration starts after the Moodle upgrade has been completed. This means that in in large deployments (with many recordings), the recordings may take some time (it can be hours) to be processed and therefore to be displayed as part of the activities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The details of the process can be checked in the cron job logs.&lt;br /&gt;
&lt;br /&gt;
And remember that if the Plugin was not uninstalled, and the pre-existing rooms are there, the recordings are still referenced. Nothing is lost even if they are not shown immediately. They only need to be migrated.&lt;br /&gt;
&lt;br /&gt;
Additionally, when using Scalelite as the Load Balancer for BigBlueButton, make sure the [https://github.com/blindsidenetworks/scalelite/releases/tag/v1.3.4 latest version] is deployed. With any other Load Balancer, make sure the BigBlueButton service updateRecordings is correctly implemented. Otherwise the migration will not be completed.&lt;br /&gt;
===Custom user tours===&lt;br /&gt;
If you have created any custom user tours where the URLs do not end in a % symbol (for example &#039;/course/view.php&#039;), these will no longer appear when viewing a page which has extra text at the end of the URL, such as /course/view.php?id=123. To make these tours work again, add a % to the end of the URL (&#039;/course/view.php%&#039;). The % symbol was always supposed to be necessary, but due to a bug in earlier versions, was previously not required.&lt;br /&gt;
===New capabilities in Moodle {{Version}}===&lt;br /&gt;
* mod/bigbluebuttonbn:addinstance&lt;br /&gt;
* mod/bigbluebuttonbn:addinstancewithmeeting&lt;br /&gt;
* mod/bigbluebuttonbn:addinstancewithrecording&lt;br /&gt;
* mod/bigbluebuttonbn:deleterecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:importrecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:join   &lt;br /&gt;
* mod/bigbluebuttonbn:managerecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:protectrecordings  &lt;br /&gt;
* mod/bigbluebuttonbn:publishrecordings  &lt;br /&gt;
* mod/bigbluebuttonbn:unprotectrecordings    &lt;br /&gt;
* mod/bigbluebuttonbn:unpublishrecordings    &lt;br /&gt;
* mod/bigbluebuttonbn:view   &lt;br /&gt;
&lt;br /&gt;
* mod/quiz:emailnotifyattemptgraded&lt;br /&gt;
&lt;br /&gt;
* moodle/question:commentall&lt;br /&gt;
* moodle/question:commentmine&lt;br /&gt;
&lt;br /&gt;
* moodle/reportbuilder:edit&lt;br /&gt;
* moodle/reportbuilder:editall&lt;br /&gt;
* moodle/reportbuilder:scheduleviewas&lt;br /&gt;
* moodle/reportbuilder:view&lt;br /&gt;
&lt;br /&gt;
* qbank/customfields:changelockedcustomfields &lt;br /&gt;
* qbank/customfields:configurecustomfields   &lt;br /&gt;
* qbank/customfields:viewhiddencustomfields&lt;br /&gt;
=== Moodle 3.6, 3.7, 3.8, 3.9, 3.10 and 3.11 improvements ===&lt;br /&gt;
Depending on which version you are upgrading from, please see the section &#039;Possible issues that may affect you&#039; in the documentation&lt;br /&gt;
* [https://docs.moodle.org/36/en/Upgrading Upgrading to Moodle 3.6]&lt;br /&gt;
* [https://docs.moodle.org/37/en/Upgrading Upgrading to Moodle 3.7]&lt;br /&gt;
* [https://docs.moodle.org/38/en/Upgrading Upgrading to Moodle 3.8]&lt;br /&gt;
* [https://docs.moodle.org/39/en/Upgrading Upgrading to Moodle 3.9]&lt;br /&gt;
* [https://docs.moodle.org/310/en/Upgrading Upgrading to Moodle 3.10]&lt;br /&gt;
* [https://docs.moodle.org/311/en/Upgrading Upgrading to Moodle 3.11]&lt;br /&gt;
&lt;br /&gt;
==Any questions about the process?==&lt;br /&gt;
Please post in the [https://moodle.org/mod/forum/view.php?id=28 Installing and upgrading help forum] on moodle.org.&lt;br /&gt;
==See also==&lt;br /&gt;
* [[dev:Moodle {{Version}} release notes|Moodle {{Version}} release notes]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=393570 Problem accessing dropdown such as personal profile since 3.8 (20191118) update] forum discussion&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=144909</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=144909"/>
		<updated>2022-11-15T13:54:19Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Moodle 4.1 requires Moodle 3.9 to upgrade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
&#039;&#039;This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].&#039;&#039;&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
Before upgrading, check that your server meets all requirements for {{Version}} in &#039;&#039;Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
See the [{{Release notes}} release notes] in the dev docs for both [{{Release notes}}#Server_requirements server] and [{{Release notes}}#Client_requirements client] software requirements.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* You can only upgrade to Moodle {{Version}} from Moodle 3.9 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/39/en/Upgrading_to_Moodle_3.9 upgrade to 3.9] as a first step.&lt;br /&gt;
&lt;br /&gt;
==Before upgrading==&lt;br /&gt;
&#039;&#039;&#039;We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Consider setting the [[Upgrade key|upgrade key]] for your site.&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, your Postgres or MySQL database dump)&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
== Check for plugin updates ==&lt;br /&gt;
If you have [[Automatic updates deployment]] enabled, you will be able to update installed plugins automatically during the upgrade. Just make sure you check for available updates (via the button for it) at the Plugins check screen.&lt;br /&gt;
&lt;br /&gt;
If you are updating plugins manually, it is a good moment now to check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a {{Version}} version available for any plugins (including themes) that you have previously installed on your site. If so, download the plugin package. In the next step, you will copy it to the appropriate location in your Moodle code (see [[Installing plugins]]).&lt;br /&gt;
&lt;br /&gt;
The upgrade of the plugin will then happen as part of the Moodle upgrade process.&lt;br /&gt;
&lt;br /&gt;
If an out-of-date plugin causes your upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.&lt;br /&gt;
==Put your site into maintenance mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in. Then you should wait for any currently running cron processes to complete before proceeding.&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
You can download the latest release from [https://download.moodle.org/ Moodle downloads].&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
# Move your old Moodle software program files to another location. &#039;&#039;Do NOT copy new files over the old files.&#039;&#039;&lt;br /&gt;
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.&lt;br /&gt;
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. &lt;br /&gt;
# As mentioned above, if you had installed any plugins on your site you should add them to the new code tree (Moodle directory structure) now. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle and that you place the plugin folders in the correct directory (the same directory that they are in in the current installation.)&lt;br /&gt;
# Your moodledata folder should be located separately to your Moodle code folder and, as such, should not need anything done to it. Moodle 3.0 will throw a warning if it is located in a web accessible folder and the moodledata should never be located in the Moodle code folder. If you are moving your installation to a new server or new location on your server, then you will need to follow the [[Migration]] documents.&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-latest-{{Version}}.tgz&lt;br /&gt;
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one (&#039;&#039;&#039;check that custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. For maximum security the files should not be writeable by your server. This is especially important on a &#039;production&#039; server open to the public internet. &lt;br /&gt;
 chown -R root:root moodle (Linux debian - or even create a user especially for moodle. &#039;&#039;&#039;Don&#039;t&#039;&#039;&#039; use the web server user, e.g. www-data)&lt;br /&gt;
 chmod -R 755 moodle&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;) &lt;br /&gt;
if necessary. However, for a simple upgrade, there should be no need to change anything with cron.&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.&lt;br /&gt;
===Command line upgrade===&lt;br /&gt;
On Linux servers, Moodle {{Version}} supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
If you put your site into Maintenance mode earlier; take it out now!&lt;br /&gt;
&lt;br /&gt;
To do this just go to &#039;&#039;Site administration &amp;gt; Notifications&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
Note: If you are running multiple servers then you should purge all caches manually (via &#039;&#039;Site administration &amp;gt; Development &amp;gt; Purge all caches&#039;&#039;) after completing the upgrade on all servers.&lt;br /&gt;
===Fatal error: Maximum execution time of 30 seconds exceeded...===&lt;br /&gt;
If your server uses a main language other than English, you may encounter a &#039;Fatal error: Maximum execution time of 30 seconds exceeded&#039; when you try to upgrade it. You can increase max_execution_time = 160 on php.ini to allow the scripts enough time to process the language update. Otherwise, you can switch to English as the default language before doing the upgrade and back to your original language after a successful upgrade. See the forum discussion at https://moodle.org/mod/forum/discuss.php?d=119598.&lt;br /&gt;
==After upgrading==&lt;br /&gt;
{{Note|If BigBlueButtonBN was previously installed, because the recordings are processed asynchronously in the background, the data migration starts after the Moodle upgrade has been completed.&lt;br /&gt;
&lt;br /&gt;
This means that in large deployments (with many recordings), the process may take some time (it can be hours) and therefore recordings may not be displayed immediately. But they are still there.}}&lt;br /&gt;
==Possible issues that may affect you in Moodle {{Version}}==&lt;br /&gt;
&#039;&#039;Please add items here...&#039;&#039;&lt;br /&gt;
* [[:dev:Core plugins review for Moodle 4.0]]&lt;br /&gt;
* [[:dev:Add a block cleanup]]&lt;br /&gt;
&lt;br /&gt;
See also the list of [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%204.0%20AND%20labels%20%3D%20upgrade_notes upgrade_notes-labelled issues] and [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%204.0%20AND%20labels%20%3D%20ui_change ui_change-labelled issues].&lt;br /&gt;
&lt;br /&gt;
=== New plugins in Moodle {{Version}} ===&lt;br /&gt;
====BigBlueButton====&lt;br /&gt;
{{Note|For recordings to work properly, [https://docs.moodle.org/403/en/Cron Cron] Jobs must be enabled.  Also, if you are using [https://github.com/blindsidenetworks/scalelite ScaleLite] for load balancing your BigBlueButton servers, make sure you are running the latest release of ScaleLite.}}&lt;br /&gt;
BigBlueButtonBN has been [https://moodle.org/plugins/mod_bigbluebuttonbn contributed plugin] for more than 10 years. It enables Moodle to interoperate with a BigBlueButton server and it is part of Moodle 4.0 as a core plugin. For more details see [https://docs.moodle.org/403/en/BigBlueButton BigBlueButton in Moodle 4.0]&lt;br /&gt;
When upgrading to Moodle 4.0, there are two possible scenarios.&lt;br /&gt;
===== BigBlueButtonBN was not installed =====&lt;br /&gt;
If the plugin was never installed, there are only two considerations to make.&lt;br /&gt;
* BigBlueButton is disabled by default. Administrators must enable it from Site administration &amp;gt; Plugins &amp;gt; Manage activities and then check the box to accept the data processing agreement.&lt;br /&gt;
* BigBlueButton is an external service. The plugin comes pre-configured with a Free Tier Hosting that comes with some restrictions.&lt;br /&gt;
===== BigBlueButtonBN was already installed =====&lt;br /&gt;
If the plugin was already installed, and the steps were followed correctly, the upgrade should be completed normally. But there are also some considerations to make.&lt;br /&gt;
* BigBlueButton may be disabled by default. If this is the case Administrators must enable it from Site administration &amp;gt; Plugins &amp;gt; Manage activities and then check the box to accept the data processing agreement.&lt;br /&gt;
* BigBlueButton is an external service. The plugin will only change the BigBlueButton credentials if the former Free Tier Hosting `https://test-install.blindsidenetworks.com/bigbluebutton/` was used. If it was not, then the existing service will still be the same.&lt;br /&gt;
===== General consideration =====&lt;br /&gt;
Regardless of the scenario, there is one general consideration&lt;br /&gt;
&lt;br /&gt;
BigBlueButton is still the repository for recordings, but the metadata is now stored in Moodle, so instead of making a getRecording requests each time a BigBlueButton activity is displayed, the view is entirely populated with Moodle data. While this makes the code more efficient, it also means that every recording needs to be processed as part of the upgrade.&lt;br /&gt;
# For recordings to work properly, cron jobs must be enabled&lt;br /&gt;
# Since the recording are processed asynchronously in the background, the data migration starts after the Moodle upgrade has been completed. This means that in in large deployments (with many recordings), the recordings may take some time (it can be hours) to be processed and therefore to be displayed as part of the activities.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The details of the process can be checked in the cron job logs.&lt;br /&gt;
&lt;br /&gt;
And remember that if the Plugin was not uninstalled, and the pre-existing rooms are there, the recordings are still referenced. Nothing is lost even if they are not shown immediately. They only need to be migrated.&lt;br /&gt;
&lt;br /&gt;
Additionally, when using Scalelite as the Load Balancer for BigBlueButton, make sure the [https://github.com/blindsidenetworks/scalelite/releases/tag/v1.3.4 latest version] is deployed. With any other Load Balancer, make sure the BigBlueButton service updateRecordings is correctly implemented. Otherwise the migration will not be completed.&lt;br /&gt;
===Custom user tours===&lt;br /&gt;
If you have created any custom user tours where the URLs do not end in a % symbol (for example &#039;/course/view.php&#039;), these will no longer appear when viewing a page which has extra text at the end of the URL, such as /course/view.php?id=123. To make these tours work again, add a % to the end of the URL (&#039;/course/view.php%&#039;). The % symbol was always supposed to be necessary, but due to a bug in earlier versions, was previously not required.&lt;br /&gt;
===New capabilities in Moodle {{Version}}===&lt;br /&gt;
* mod/bigbluebuttonbn:addinstance&lt;br /&gt;
* mod/bigbluebuttonbn:addinstancewithmeeting&lt;br /&gt;
* mod/bigbluebuttonbn:addinstancewithrecording&lt;br /&gt;
* mod/bigbluebuttonbn:deleterecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:importrecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:join   &lt;br /&gt;
* mod/bigbluebuttonbn:managerecordings   &lt;br /&gt;
* mod/bigbluebuttonbn:protectrecordings  &lt;br /&gt;
* mod/bigbluebuttonbn:publishrecordings  &lt;br /&gt;
* mod/bigbluebuttonbn:unprotectrecordings    &lt;br /&gt;
* mod/bigbluebuttonbn:unpublishrecordings    &lt;br /&gt;
* mod/bigbluebuttonbn:view   &lt;br /&gt;
&lt;br /&gt;
* mod/quiz:emailnotifyattemptgraded&lt;br /&gt;
&lt;br /&gt;
* moodle/question:commentall&lt;br /&gt;
* moodle/question:commentmine&lt;br /&gt;
&lt;br /&gt;
* moodle/reportbuilder:edit&lt;br /&gt;
* moodle/reportbuilder:editall&lt;br /&gt;
* moodle/reportbuilder:scheduleviewas&lt;br /&gt;
* moodle/reportbuilder:view&lt;br /&gt;
&lt;br /&gt;
* qbank/customfields:changelockedcustomfields &lt;br /&gt;
* qbank/customfields:configurecustomfields   &lt;br /&gt;
* qbank/customfields:viewhiddencustomfields&lt;br /&gt;
=== Moodle 3.6, 3.7, 3.8, 3.9, 3.10 and 3.11 improvements ===&lt;br /&gt;
Depending on which version you are upgrading from, please see the section &#039;Possible issues that may affect you&#039; in the documentation&lt;br /&gt;
* [https://docs.moodle.org/36/en/Upgrading Upgrading to Moodle 3.6]&lt;br /&gt;
* [https://docs.moodle.org/37/en/Upgrading Upgrading to Moodle 3.7]&lt;br /&gt;
* [https://docs.moodle.org/38/en/Upgrading Upgrading to Moodle 3.8]&lt;br /&gt;
* [https://docs.moodle.org/39/en/Upgrading Upgrading to Moodle 3.9]&lt;br /&gt;
* [https://docs.moodle.org/310/en/Upgrading Upgrading to Moodle 3.10]&lt;br /&gt;
* [https://docs.moodle.org/311/en/Upgrading Upgrading to Moodle 3.11]&lt;br /&gt;
&lt;br /&gt;
==Any questions about the process?==&lt;br /&gt;
Please post in the [https://moodle.org/mod/forum/view.php?id=28 Installing and upgrading help forum] on moodle.org.&lt;br /&gt;
==See also==&lt;br /&gt;
* [[dev:Moodle {{Version}} release notes|Moodle {{Version}} release notes]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=393570 Problem accessing dropdown such as personal profile since 3.8 (20191118) update] forum discussion&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Analytics_settings&amp;diff=142522</id>
		<title>Analytics settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Analytics_settings&amp;diff=142522"/>
		<updated>2021-11-11T18:16:26Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: tidy up some code and information making reference to mlbackend versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Analytics}}&lt;br /&gt;
The Moodle learning analytics system requires some initial configuration before it can be used. You can access &#039;&#039;Analytics settings&#039;&#039; from &#039;&#039;Site administration &amp;gt; Analytics &amp;gt; Analytics settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Site information ==&lt;br /&gt;
&lt;br /&gt;
Site information will be used to help learning analytics models take characteristics of the institution into account. This information is also reported as part of site data collection when you register your site. This will allow HQ to understand which areas in learning analytics are seeing the most use and prioritize development resources appropriately.&lt;br /&gt;
&lt;br /&gt;
== Configure learning analytics settings ==&lt;br /&gt;
&lt;br /&gt;
Analytics may be disabled from Site administration / Advanced features&lt;br /&gt;
&lt;br /&gt;
They may then be configured from Site administration / Analytics. &lt;br /&gt;
&lt;br /&gt;
=== Predictions processor ===&lt;br /&gt;
&lt;br /&gt;
 [[Image:analytics01_predictions_processor34.png|frame|center|Predictions processor selection]]&lt;br /&gt;
&lt;br /&gt;
Prediction processors are the machine learning backends that process the datasets generated from the calculated indicators and targets and return predictions. Moodle core includes 2 prediction processors:&lt;br /&gt;
&lt;br /&gt;
==== PHP predictions processor ====&lt;br /&gt;
&lt;br /&gt;
The PHP processor is the default. There are no other system requirements to use this processor.&lt;br /&gt;
&lt;br /&gt;
==== Python predictions processor ====&lt;br /&gt;
&lt;br /&gt;
The Python processor is more powerful and it generates [https://www.tensorflow.org/get_started/summaries_and_tensorboard graphs that explain the model performance]. It requires setting up extra tools: Python itself (https://wiki.python.org/moin/BeginnersGuide/Download) and the moodlemlbackend python package. The package can be installed in the web server (in all the nodes if in a clustered environment) or in a separate server.&lt;br /&gt;
&lt;br /&gt;
===== Versions =====&lt;br /&gt;
&lt;br /&gt;
* Moodle 3.8 and up uses package 2.3.* (minimum 2.3.1)&lt;br /&gt;
* Moodle 3.9.11 and up uses package 2.6.* (minimum 2.6.4)&lt;br /&gt;
* Moodle 3.10.8 and up uses package 2.6.* (minimum 2.6.4)&lt;br /&gt;
* Moodle 3.11.4 and up uses package 2.6.* (minimum 2.6.4)&lt;br /&gt;
* Moodle 4.0 and up uses package 3.0.* (minimum 3.0.2)&lt;br /&gt;
&lt;br /&gt;
===== Installed in the web server ===== &lt;br /&gt;
&lt;br /&gt;
The latest version of the [https://pypi.org/project/moodlemlbackend/ packages for &#039;&#039;&#039;Moodle 3.8&#039;&#039;&#039; and up] are compatible with &#039;&#039;&#039;Python 3.4, 3.5, 3.6 and 3.7&#039;&#039;&#039;. Note that the package should be available for both the Command Line Interface (CLI) user and the user who runs the web server (e.g. www-data).&lt;br /&gt;
&lt;br /&gt;
# If necessary, install Python 3 (and pip for Python 3)&lt;br /&gt;
# Ensure that you use Python 3 to install the moodlemlbackend package (for VERSION, see the previous section):&lt;br /&gt;
&lt;br /&gt;
    sudo -H python3 -m pip install &amp;quot;moodlemlbackend==VERSION&amp;quot;&lt;br /&gt;
# You must also enter the path to the Python 3 executable in Site administration -&amp;gt; Server -&amp;gt; System paths:&lt;br /&gt;
[[File:path_to_python_3.png|frame|center|Enter system path for Python 3]]&lt;br /&gt;
&lt;br /&gt;
===== Installed in a separate server =====&lt;br /&gt;
&lt;br /&gt;
To install the python package in a separate server instead of installing it on the web server/s have some advantages:&lt;br /&gt;
* Keeps the python ML backend as an external service&lt;br /&gt;
* To keep a separated control of the resources the web server/s dedicate to serving Moodle and the resources dedicated to the python ML backend&lt;br /&gt;
* You can reuse the same ML server for multiple Moodle sites. Easier to setup and maintain than to install/upgrade the python package in all nodes in the cluster&lt;br /&gt;
* You can install the package as a new docker container in your dockerized environment&lt;br /&gt;
* You can serve the ML backend from AWS through the API gateway and AWS lambda, storing the trained model files in S3&lt;br /&gt;
&lt;br /&gt;
On the other hand, it is expected that there can be some added latency in connecting to the python ML backend server.&lt;br /&gt;
&lt;br /&gt;
The python backend is exposed as a Flask application. The Flask application is part of the official &#039;moodlemlbackend&#039; Python package and its FLASK_APP script is &#039;webapp&#039;, in the root of the package. You are free to use the setup that better suits your existing infrastructure.&lt;br /&gt;
&lt;br /&gt;
====== New server in your infrastructure ======&lt;br /&gt;
&lt;br /&gt;
The python ML backend is exposed as a Flask application, which uses a WSGI server (https://wsgi.readthedocs.io/en/latest/what.html) to be exposed to the www. The official documentation on how to deploy a Flask app can be found in https://flask.palletsprojects.com/en/1.0.x/tutorial/deploy/.&lt;br /&gt;
&lt;br /&gt;
* Use MOODLE_MLBACKEND_PYTHON_USERS environment var to set a list of users and password (comma-separated). The value is &#039;default:sshhhh&#039; (user: default, password: sshhhh).&lt;br /&gt;
* Set MOODLE_MLBACKEND_PYTHON_DIR to the path you want to use to store the data generated by the package&lt;br /&gt;
&lt;br /&gt;
====== Docker ======&lt;br /&gt;
&lt;br /&gt;
https://hub.docker.com/r/moodlehq/moodle-mlbackend-python is the official moodle-mlbackend-python docker image. We use it internally at Moodle HQ for internal testing and you can use it as well. You may want more control over the image, if that is the case https://github.com/moodlehq/moodle-docker-mlbackend-python/blob/master/Dockerfile can serve as an example of what is needed to get the python moodlemlbackend package working.&lt;br /&gt;
&lt;br /&gt;
* Use MOODLE_MLBACKEND_PYTHON_USERS environment var to set a list of users and passwords (comma-separated). The value is &#039;default:sshhhh&#039; (user: default, password: sshhhh).&lt;br /&gt;
&lt;br /&gt;
To run the docker container locally you can execute (For &amp;lt;tt&amp;gt;VERSION&amp;lt;/tt&amp;gt;, see the Versions section above):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker pull moodlehq/moodle-mlbackend-python:VERSION-python3.7.5&lt;br /&gt;
docker run -d -p 5000:5000 --name=mlbackendpython --rm --add-host=mlbackendpython:0.0.0.0 moodlehq/moodle-mlbackend-python:VERSION-python3.7.5&lt;br /&gt;
&amp;lt;/syntaxhighlight &amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; that you need to add &amp;lt;tt&amp;gt;--network=moodledocker_default&amp;lt;/tt&amp;gt; if your are using moodle-docker and you want this container to be visible from the web server.&lt;br /&gt;
&lt;br /&gt;
Then add this to your config.php file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;pathtopython = &#039;python&#039;;&lt;br /&gt;
define(&#039;TEST_MLBACKEND_PYTHON_HOST&#039;, &#039;localhost&#039;); // Change to &amp;quot;mlbackendpython&amp;quot; if your are using moodle-docker.&lt;br /&gt;
define(&#039;TEST_MLBACKEND_PYTHON_PORT&#039;, 5000);&lt;br /&gt;
define(&#039;TEST_MLBACKEND_PYTHON_USERNAME&#039;, &#039;default&#039;);&lt;br /&gt;
define(&#039;TEST_MLBACKEND_PYTHON_PASSWORD&#039;, &#039;sshhhh&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check if it works, this command should not Skip any test:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
vendor/bin/phpunit analytics/tests/prediction_test.php --verbose&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== AWS serverless service ======&lt;br /&gt;
&lt;br /&gt;
You can serve the Flask application as a serverless application using the AWS API gateway and AWS lambda. The easiest way to do it is using Zappa https://github.com/Miserlou/Zappa to deploy the Flask application contained in the python ML package.&lt;br /&gt;
&lt;br /&gt;
* Use MOODLE_MLBACKEND_PYTHON_USERS environment var to set a list of users and password (comma-separated). The value is &#039;default:sshhhh&#039; (user: default, password: sshhhh).&lt;br /&gt;
* Set MOODLE_MLBACKEND_PYTHON_DIR to the path you want to use to store the data generated by the package&lt;br /&gt;
* Set these environment variables below to setup the S3 access:&lt;br /&gt;
** MOODLE_MLBACKEND_PYTHON_S3_BUCKET_NAME to the bucket name&lt;br /&gt;
**AWS_ACCESS_KEY_ID as usual&lt;br /&gt;
** AWS_SECRET_ACCESS_KEY as usual&lt;br /&gt;
&lt;br /&gt;
Once this has been done, you can select the Python prediction processor as the default or for an individual model:&lt;br /&gt;
[[File:python_backend.png|frame|center|Predictions processor default]]&lt;br /&gt;
&lt;br /&gt;
[[File:python_backend_at_model.png|frame|center|Predictions processor selection for an individual model]]&lt;br /&gt;
&lt;br /&gt;
=== Log store ===&lt;br /&gt;
From Moodle version 2.7 and up, the “Standard logstore” is the default. If for some reason you also have data in the older “legacy logs,” you can enable the Moodle Learning Analytics system to access them instead.&lt;br /&gt;
&lt;br /&gt;
=== Analysis intervals ===&lt;br /&gt;
&lt;br /&gt;
Analysis intervals determine how often insights will be generated, and how much information to use for each calculation. Using proportional analysis intervals allows courses of different lengths to be used to train a single model.&lt;br /&gt;
&lt;br /&gt;
Several analysis intervals are available for models in the system. In this setting, the analysis intervals that will be used to evaluate models are defined, e.g. so the best analysis interval identified by the evaluation process can be selected for the model. This setting does not restrict the analysis intervals that can be used for specific models.&lt;br /&gt;
&lt;br /&gt;
[[Image:06_timesplitting.png|frame|center|Analysis intervals]]&lt;br /&gt;
&lt;br /&gt;
Each analysis interval divides the course duration into segments. At the end of each defined segment, the predictions engine will run and generate insights. It is recommended that you only enable the analysis intervals you are interested in using; the evaluation process will iterate through all enabled analysis intervals, so the more analysis intervals enabled, the slower the evaluation process will be.&lt;br /&gt;
&lt;br /&gt;
=== Models output directory ===&lt;br /&gt;
&lt;br /&gt;
 [[Image:03_models_output_directory.png|frame|center|Models output directory]]&lt;br /&gt;
&lt;br /&gt;
This setting allows you to define a directory where machine learning backends data is stored. Be sure this directory exists and is writable by the web server. This setting can be used by Moodle sites with multiple frontend nodes (a cluster) to specify a shared directory across nodes. This directory can be used by machine learning backends to store trained algorithms (its internal variables weights and stuff like that) to use them later to get predictions. Moodle cron lock will prevent multiple executions of the analytics tasks that train machine learning algorithms and get predictions from them.&lt;br /&gt;
&lt;br /&gt;
== Scheduled tasks ==&lt;br /&gt;
&lt;br /&gt;
Most analytics API processes are executed through [[Scheduled_tasks|scheduled tasks]]. These processes usually read the activity log table and can require some time to finish. You can find &#039;&#039;Train models&#039;&#039; and &#039;&#039;Predict models&#039;&#039; scheduled tasks listed in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Scheduled tasks.&#039;&#039; It is recommended to edit the tasks schedule so they run nightly.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
There are two analytics capabilities:&lt;br /&gt;
&lt;br /&gt;
* [[Capabilities/moodle/analytics:managemodels|Manage models]] - allowed for the default role of manager only&lt;br /&gt;
* [[Capabilities/moodle/analytics:listinsights|List insights]] - allowed for the default roles of manager, teacher and non-editing teacher&lt;br /&gt;
&lt;br /&gt;
To receive notifications and view insights, a user must have the list insights capability within the context used as the &amp;quot;Analysable&amp;quot; for the model. For example, the [[Students at risk of dropping out]] model operates within the context of a course. Insights will be generated for each enrolment within any course matching the criteria of the model (courses with a start date in the past and an end date in the future, with at least one teacher and student), and these insights will be sent to anyone with the list insights capability in that course. &lt;br /&gt;
&lt;br /&gt;
Some models (e.g. the &#039;&#039;No teaching&#039;&#039; model) generate insights at the Site level. To receive insights from these models, the user must have a role assignment at the System level which includes the list insights capability. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Site administrators do &#039;&#039;&#039;not&#039;&#039;&#039; automatically receive insight notifications, though they can choose to view details of any insight notifications on the system. To enable site administrators to receive notifications of insights, assign an additional role that includes the list insights capability to the site administrator at the system level.&lt;br /&gt;
&lt;br /&gt;
[[Category:Analytics]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuraciones de analítica]]&lt;br /&gt;
[[de:Analytics-Einstellungen]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Analytics_settings&amp;diff=142521</id>
		<title>Analytics settings</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Analytics_settings&amp;diff=142521"/>
		<updated>2021-11-11T17:46:37Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Specify the versions to be used by different Moodle branches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Analytics}}&lt;br /&gt;
The Moodle learning analytics system requires some initial configuration before it can be used. You can access &#039;&#039;Analytics settings&#039;&#039; from &#039;&#039;Site administration &amp;gt; Analytics &amp;gt; Analytics settings&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Site information ==&lt;br /&gt;
&lt;br /&gt;
Site information will be used to help learning analytics models take characteristics of the institution into account. This information is also reported as part of site data collection when you register your site. This will allow HQ to understand which areas in learning analytics are seeing the most use and prioritize development resources appropriately.&lt;br /&gt;
&lt;br /&gt;
== Configure learning analytics settings ==&lt;br /&gt;
&lt;br /&gt;
Analytics may be disabled from Site administration / Advanced features&lt;br /&gt;
&lt;br /&gt;
They may then be configured from Site administration / Analytics. &lt;br /&gt;
&lt;br /&gt;
=== Predictions processor ===&lt;br /&gt;
&lt;br /&gt;
 [[Image:analytics01_predictions_processor34.png|frame|center|Predictions processor selection]]&lt;br /&gt;
&lt;br /&gt;
Prediction processors are the machine learning backends that process the datasets generated from the calculated indicators and targets and return predictions. Moodle core includes 2 prediction processors:&lt;br /&gt;
&lt;br /&gt;
==== PHP predictions processor ====&lt;br /&gt;
&lt;br /&gt;
The PHP processor is the default. There are no other system requirements to use this processor.&lt;br /&gt;
&lt;br /&gt;
==== Python predictions processor ====&lt;br /&gt;
&lt;br /&gt;
The Python processor is more powerful and it generates [https://www.tensorflow.org/get_started/summaries_and_tensorboard graphs that explain the model performance]. It requires setting up extra tools: Python itself (https://wiki.python.org/moin/BeginnersGuide/Download) and the moodlemlbackend python package. The package can be installed in the web server (in all the nodes if in a clustered environment) or in a separate server.&lt;br /&gt;
&lt;br /&gt;
===== Versions =====&lt;br /&gt;
&lt;br /&gt;
* Moodle 3.8 and up uses package 2.3.* (minimum 2.3.1)&lt;br /&gt;
* Moodle 3.9.11 and up uses package 2.6.* (minimum 2.6.4)&lt;br /&gt;
* Moodle 3.10.8 and up uses package 2.6.* (minimum 2.6.4)&lt;br /&gt;
* Moodle 3.11.4 and up uses package 2.6.* (minimum 2.6.4)&lt;br /&gt;
* Moodle 4.0 and up uses package 3.0.* (minimum 3.0.2)&lt;br /&gt;
&lt;br /&gt;
===== Installed in the web server ===== &lt;br /&gt;
&lt;br /&gt;
The latest version of the [https://pypi.org/project/moodlemlbackend/ packages for &#039;&#039;&#039;Moodle 3.8&#039;&#039;&#039; and up] are compatible with &#039;&#039;&#039;Python 3.4, 3.5, 3.6 and 3.7&#039;&#039;&#039;. Note that the package should be available for both the Command Line Interface (CLI) user and the user who runs the web server (e.g. www-data).&lt;br /&gt;
&lt;br /&gt;
# If necessary, install Python 3 (and pip for Python 3)&lt;br /&gt;
# Ensure that you use Python 3 to install the moodlemlbackend package (for VERSION, see the previous section):&lt;br /&gt;
&lt;br /&gt;
    sudo -H python3 -m pip install &amp;quot;moodlemlbackend==VERSION&amp;quot;&lt;br /&gt;
# You must also enter the path to the Python 3 executable in Site administration -&amp;gt; Server -&amp;gt; System paths:&lt;br /&gt;
[[File:path_to_python_3.png|frame|center|Enter system path for Python 3]]&lt;br /&gt;
&lt;br /&gt;
===== Installed in a separate server =====&lt;br /&gt;
&lt;br /&gt;
To install the python package in a separate server instead of installing it on the web server/s have some advantages:&lt;br /&gt;
* Keeps the python ML backend as an external service&lt;br /&gt;
* To keep a separated control of the resources the web server/s dedicate to serving Moodle and the resources dedicated to the python ML backend&lt;br /&gt;
* You can reuse the same ML server for multiple Moodle sites. Easier to setup and maintain than to install/upgrade the python package in all nodes in the cluster&lt;br /&gt;
* You can install the package as a new docker container in your dockerized environment&lt;br /&gt;
* You can serve the ML backend from AWS through the API gateway and AWS lambda, storing the trained model files in S3&lt;br /&gt;
&lt;br /&gt;
On the other hand, it is expected that there can be some added latency in connecting to the python ML backend server.&lt;br /&gt;
&lt;br /&gt;
The python backend is exposed as a Flask application. The Flask application is part of the official &#039;moodlemlbackend&#039; Python package and its FLASK_APP script is &#039;webapp&#039;, in the root of the package. You are free to use the setup that better suits your existing infrastructure.&lt;br /&gt;
&lt;br /&gt;
====== New server in your infrastructure ======&lt;br /&gt;
&lt;br /&gt;
The python ML backend is exposed as a Flask application, which uses a WSGI server (https://wsgi.readthedocs.io/en/latest/what.html) to be exposed to the www. The official documentation on how to deploy a Flask app can be found in https://flask.palletsprojects.com/en/1.0.x/tutorial/deploy/.&lt;br /&gt;
&lt;br /&gt;
* Use MOODLE_MLBACKEND_PYTHON_USERS environment var to set a list of users and password (comma-separated). The value is &#039;default:sshhhh&#039; (user: default, password: sshhhh).&lt;br /&gt;
* Set MOODLE_MLBACKEND_PYTHON_DIR to the path you want to use to store the data generated by the package&lt;br /&gt;
&lt;br /&gt;
====== Docker ======&lt;br /&gt;
&lt;br /&gt;
https://hub.docker.com/r/moodlehq/moodle-mlbackend-python is the official moodle-mlbackend-python docker image. We use it internally at Moodle HQ for internal testing and you can use it as well. You may want more control over the image, if that is the case https://github.com/moodlehq/moodle-docker-mlbackend-python/blob/master/Dockerfile can serve as an example of what is needed to get the python moodlemlbackend package working.&lt;br /&gt;
&lt;br /&gt;
* Use MOODLE_MLBACKEND_PYTHON_USERS environment var to set a list of users and passwords (comma-separated). The value is &#039;default:sshhhh&#039; (user: default, password: sshhhh).&lt;br /&gt;
&lt;br /&gt;
To run the docker container locally you can execute:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
docker pull moodlehq/moodle-mlbackend-python:2.4.0-python3.7.5&lt;br /&gt;
# Note that you need to add --network=moodledocker_default if your are using moodle-docker and you want this container to be visible from the web server.&lt;br /&gt;
docker run -d -p 5000:5000 --name=mlbackendpython --rm --add-host=mlbackendpython:0.0.0.0 moodlehq/moodle-mlbackend-python:2.4.0-python3.7.5&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then add this to your config.php file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;pathtopython = &#039;python&#039;;&lt;br /&gt;
define(&#039;TEST_MLBACKEND_PYTHON_HOST&#039;, &#039;localhost&#039;); // Change to &amp;quot;mlbackendpython&amp;quot; if your are using moodle-docker.&lt;br /&gt;
define(&#039;TEST_MLBACKEND_PYTHON_PORT&#039;, 5000);&lt;br /&gt;
define(&#039;TEST_MLBACKEND_PYTHON_USERNAME&#039;, &#039;default&#039;);&lt;br /&gt;
define(&#039;TEST_MLBACKEND_PYTHON_PASSWORD&#039;, &#039;sshhhh&#039;);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check if it works, this command should not Skip any test:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
vendor/bin/phpunit analytics/tests/prediction_test.php --verbose&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== AWS serverless service ======&lt;br /&gt;
&lt;br /&gt;
You can serve the Flask application as a serverless application using the AWS API gateway and AWS lambda. The easiest way to do it is using Zappa https://github.com/Miserlou/Zappa to deploy the Flask application contained in the python ML package.&lt;br /&gt;
&lt;br /&gt;
* Use MOODLE_MLBACKEND_PYTHON_USERS environment var to set a list of users and password (comma-separated). The value is &#039;default:sshhhh&#039; (user: default, password: sshhhh).&lt;br /&gt;
* Set MOODLE_MLBACKEND_PYTHON_DIR to the path you want to use to store the data generated by the package&lt;br /&gt;
* Set these environment variables below to setup the S3 access:&lt;br /&gt;
** MOODLE_MLBACKEND_PYTHON_S3_BUCKET_NAME to the bucket name&lt;br /&gt;
**AWS_ACCESS_KEY_ID as usual&lt;br /&gt;
** AWS_SECRET_ACCESS_KEY as usual&lt;br /&gt;
&lt;br /&gt;
Once this has been done, you can select the Python prediction processor as the default or for an individual model:&lt;br /&gt;
[[File:python_backend.png|frame|center|Predictions processor default]]&lt;br /&gt;
&lt;br /&gt;
[[File:python_backend_at_model.png|frame|center|Predictions processor selection for an individual model]]&lt;br /&gt;
&lt;br /&gt;
=== Log store ===&lt;br /&gt;
From Moodle version 2.7 and up, the “Standard logstore” is the default. If for some reason you also have data in the older “legacy logs,” you can enable the Moodle Learning Analytics system to access them instead.&lt;br /&gt;
&lt;br /&gt;
=== Analysis intervals ===&lt;br /&gt;
&lt;br /&gt;
Analysis intervals determine how often insights will be generated, and how much information to use for each calculation. Using proportional analysis intervals allows courses of different lengths to be used to train a single model.&lt;br /&gt;
&lt;br /&gt;
Several analysis intervals are available for models in the system. In this setting, the analysis intervals that will be used to evaluate models are defined, e.g. so the best analysis interval identified by the evaluation process can be selected for the model. This setting does not restrict the analysis intervals that can be used for specific models.&lt;br /&gt;
&lt;br /&gt;
[[Image:06_timesplitting.png|frame|center|Analysis intervals]]&lt;br /&gt;
&lt;br /&gt;
Each analysis interval divides the course duration into segments. At the end of each defined segment, the predictions engine will run and generate insights. It is recommended that you only enable the analysis intervals you are interested in using; the evaluation process will iterate through all enabled analysis intervals, so the more analysis intervals enabled, the slower the evaluation process will be.&lt;br /&gt;
&lt;br /&gt;
=== Models output directory ===&lt;br /&gt;
&lt;br /&gt;
 [[Image:03_models_output_directory.png|frame|center|Models output directory]]&lt;br /&gt;
&lt;br /&gt;
This setting allows you to define a directory where machine learning backends data is stored. Be sure this directory exists and is writable by the web server. This setting can be used by Moodle sites with multiple frontend nodes (a cluster) to specify a shared directory across nodes. This directory can be used by machine learning backends to store trained algorithms (its internal variables weights and stuff like that) to use them later to get predictions. Moodle cron lock will prevent multiple executions of the analytics tasks that train machine learning algorithms and get predictions from them.&lt;br /&gt;
&lt;br /&gt;
== Scheduled tasks ==&lt;br /&gt;
&lt;br /&gt;
Most analytics API processes are executed through [[Scheduled_tasks|scheduled tasks]]. These processes usually read the activity log table and can require some time to finish. You can find &#039;&#039;Train models&#039;&#039; and &#039;&#039;Predict models&#039;&#039; scheduled tasks listed in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; Scheduled tasks.&#039;&#039; It is recommended to edit the tasks schedule so they run nightly.&lt;br /&gt;
&lt;br /&gt;
==Capabilities==&lt;br /&gt;
&lt;br /&gt;
There are two analytics capabilities:&lt;br /&gt;
&lt;br /&gt;
* [[Capabilities/moodle/analytics:managemodels|Manage models]] - allowed for the default role of manager only&lt;br /&gt;
* [[Capabilities/moodle/analytics:listinsights|List insights]] - allowed for the default roles of manager, teacher and non-editing teacher&lt;br /&gt;
&lt;br /&gt;
To receive notifications and view insights, a user must have the list insights capability within the context used as the &amp;quot;Analysable&amp;quot; for the model. For example, the [[Students at risk of dropping out]] model operates within the context of a course. Insights will be generated for each enrolment within any course matching the criteria of the model (courses with a start date in the past and an end date in the future, with at least one teacher and student), and these insights will be sent to anyone with the list insights capability in that course. &lt;br /&gt;
&lt;br /&gt;
Some models (e.g. the &#039;&#039;No teaching&#039;&#039; model) generate insights at the Site level. To receive insights from these models, the user must have a role assignment at the System level which includes the list insights capability. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: Site administrators do &#039;&#039;&#039;not&#039;&#039;&#039; automatically receive insight notifications, though they can choose to view details of any insight notifications on the system. To enable site administrators to receive notifications of insights, assign an additional role that includes the list insights capability to the site administrator at the system level.&lt;br /&gt;
&lt;br /&gt;
[[Category:Analytics]]&lt;br /&gt;
&lt;br /&gt;
[[es:Configuraciones de analítica]]&lt;br /&gt;
[[de:Analytics-Einstellungen]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Configuration_file&amp;diff=141664</id>
		<title>Configuration file</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Configuration_file&amp;diff=141664"/>
		<updated>2021-09-09T14:22:48Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: fix filter_tex plugin name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
The name for Moodle&#039;s configuration file is config.php. The file is located in the moodle directory. It is not included in the Moodle download packages and is created by the installation process from the template file config-dist.php (which is included in Moodle packages).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==config-dist.php==&lt;br /&gt;
Although the installation process creates the config.php file for you, there may be times when you want to do this yourself. A sample config file, called config-dist.php, is shipped with Moodle.&lt;br /&gt;
&lt;br /&gt;
To get started simply copy config-dist.php to config.php, then edit config.php with you favourite editor. The file is very well commented. The important options (which you must supply) are all nearer the top. Other less common options are further down.&lt;br /&gt;
&lt;br /&gt;
==Setting $CFG-&amp;gt;wwwroot correctly==&lt;br /&gt;
This setting must be a fixed URL (a string constant) that points to your site. Do not try to set this with any PHP code that can generate a variable URL. This is not supported, can cause strange problems and will stop command line scripts working completely. If your site is accessed from different IP addresses this should be done with a split DNS, see [[Masquerading]]&lt;br /&gt;
&lt;br /&gt;
If you change your site from http to https, you &#039;&#039;&#039;MUST&#039;&#039;&#039; update this setting. If you don’t, you will have problems - for example (but not limited to) css scripts won’t load properly and you will also experience problems with logging in to your site. Also see [[Transitioning_to_HTTPS]]&lt;br /&gt;
&lt;br /&gt;
==Enabling password salting==&lt;br /&gt;
&lt;br /&gt;
See [[Password salting]].&lt;br /&gt;
&lt;br /&gt;
==Including passwords in backups==&lt;br /&gt;
&lt;br /&gt;
Hashed user passwords are no longer saved in backup files containing user data.&lt;br /&gt;
&lt;br /&gt;
If you really need passwords to be saved (in the rare case of restoring a [[Backup of user data|backup with user data]] to a different site), the following line may be added to config.php:&lt;br /&gt;
&lt;br /&gt;
 $CFG-&amp;gt;includeuserpasswordsinbackup = true;&lt;br /&gt;
&lt;br /&gt;
Note regarding restoring Moodle 2.5 backups to sites with old PHP versions:&lt;br /&gt;
&lt;br /&gt;
Because bcrypt is not supported in PHP versions below 5.3.7, course backups made using the $CFG-&amp;gt;includeuserpasswordsinbackup setting on a site using PHP version 5.3.7+ that are subsequently restored to a site with PHP version &amp;lt; 5.3.7 will require a password reset.&lt;br /&gt;
&lt;br /&gt;
==Changing default block layout for new courses==&lt;br /&gt;
&lt;br /&gt;
See [[Block layout]].&lt;br /&gt;
&lt;br /&gt;
==Adding extra theme directory location==&lt;br /&gt;
It is possible to add an extra themes directory stored outside of $CFG-&amp;gt;dirroot. This local directory does not have to be accessible from internet. Themes placed in the directory specified by these variables will then be available for selection using the theme selector.&lt;br /&gt;
&lt;br /&gt;
For example, should you wish to place extra themes in a subdirectory called &#039;my_moodle_themes&#039;, your config.php might look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;wwwroot   = &#039;http://my.moodle.site.edu&#039;;&lt;br /&gt;
$CFG-&amp;gt;dirroot   = &#039;/var/www/my.moodle.site.edu/public_html&#039;;&lt;br /&gt;
$CFG-&amp;gt;themedir  = $CFG-&amp;gt;dirroot . &#039;/my_moodle_themes&#039;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Disabling update notifications==&lt;br /&gt;
&lt;br /&gt;
See [[Notifications]].&lt;br /&gt;
&lt;br /&gt;
==Enabling debugging==&lt;br /&gt;
&lt;br /&gt;
See [[Debugging]].&lt;br /&gt;
&lt;br /&gt;
==Forcing the value of admin settings==&lt;br /&gt;
&lt;br /&gt;
As explained in config-dist.php, it is possible to specify normal admin settings here, the point is that they can not be changed through the standard admin settings pages any more. Just set the value in config.php like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;showuseridentity = &#039;email,idnumber,username&#039;;&lt;br /&gt;
$CFG-&amp;gt;preventexecpath = true;&lt;br /&gt;
$CFG-&amp;gt;pathtodu = &amp;quot;/usr/bin/du&amp;quot;;&lt;br /&gt;
$CFG-&amp;gt;pathtodot = &amp;quot;/usr/bin/dot&amp;quot;;&lt;br /&gt;
$CFG-&amp;gt;pathtogs = &amp;quot;/usr/bin/gs&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration for plugins can also be forced by the syntax is different, eg continuing the example above for security to always hard coded paths to all executable files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;forced_plugin_settings[&#039;filter_tex&#039;][&#039;pathconvert&#039;] = &#039;/usr/bin/convert&#039;;&lt;br /&gt;
$CFG-&amp;gt;forced_plugin_settings[&#039;filter_tex&#039;][&#039;pathdvips&#039;]   = &#039;/usr/bin/dvips&#039;;&lt;br /&gt;
$CFG-&amp;gt;forced_plugin_settings[&#039;filter_tex&#039;][&#039;pathdvisvgm&#039;] = &#039;/usr/bin/dvisvgm&#039;;&lt;br /&gt;
$CFG-&amp;gt;forced_plugin_settings[&#039;filter_tex&#039;][&#039;pathlatex&#039;]   = &#039;/usr/bin/latex&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=137889 Moodle Salting] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[de:Konfigurationsdatei]]&lt;br /&gt;
[[es:config.php]]&lt;br /&gt;
[[fr:Fichier de configuration]]&lt;br /&gt;
[[ja:設定ファイル]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Administration_via_command_line&amp;diff=140558</id>
		<title>Administration via command line</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Administration_via_command_line&amp;diff=140558"/>
		<updated>2021-06-02T22:06:12Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Content only applicable to previous version: Removing this from stable versions following the removal of code for 4.0 - MDL-71476&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
==Running CLI scripts==&lt;br /&gt;
If you have shell access to your web server, you may find various CLI (command line interface) scripts useful during Moodle administration. Core admin CLI tools are located in the &amp;lt;code&amp;gt;admin/cli/*&amp;lt;/code&amp;gt; folder. Other plugins provide their CLI functionality via scripts in their own cli folder. For example, the enrol_db sync script is located in &amp;lt;code&amp;gt;enrol/db/cli/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To avoid problems with access control, you should run them as the owner of the web server process. It is especially important for CLI installation and upgrade as they create new files in moodledata directory and the web server has to have write access to them. In Linux distributions, the user that runs the web server is usually apache or wwrun or httpd or something similar. As a root, you will probably want to execute Moodle CLI scripts like this:&lt;br /&gt;
&lt;br /&gt;
    $ cd /path/to/your/moodle/dir&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/somescript.php --params&lt;br /&gt;
&lt;br /&gt;
Most of the scripts accept common --help (or -h) parameter to display the full usage information, for example:&lt;br /&gt;
&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/install.php --help&lt;br /&gt;
&lt;br /&gt;
{{Note|These scripts are supposed to be run under the identity of the web server user. Examples on this page use the &amp;lt;tt&amp;gt;apache&amp;lt;/tt&amp;gt; user for illustration. The particular value depends on your OS distribution and local set-up. Typical values may be &amp;lt;tt&amp;gt;apache&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;www-data&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;httpd&amp;lt;/tt&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
Moodle can be upgraded from the command line. As with the installation script, there is either interactive or non-interactive mode of the upgrade. The script itself does not put the site into the maintenance mode, you have to do it on your own. Also, the script does not backup any data (if you read this page, you probably have some own scripts to backup your moodledata and the database, right?)&lt;br /&gt;
&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/upgrade.php&lt;br /&gt;
&lt;br /&gt;
Upgrading via command line is a very comfortable way of Moodle upgrade if you use Git checkout of the Moodle source code (see [[Git for Administrators]]). See the following procedure how to upgrade your site within several seconds to the most recent version while preserving your eventual local customizations tracked in git repository:&lt;br /&gt;
&lt;br /&gt;
    $ cd /var/www/sites/moodle/htdocs/&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable&lt;br /&gt;
    $ git pull&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/upgrade.php&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
There are two modes of installing Moodle from the command line. In interactive mode, the install script asks you for all data needed to properly set up new Moodle site. In non-interactive mode, you must provide all required data as the script parameters and then the new site is installed silently. The parameters can be passed in the interactive mode, too. The provided values are then used as the default values during the interactive session.&lt;br /&gt;
&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/install.php --lang=cs&lt;br /&gt;
&lt;br /&gt;
If your arguments contain some specials characters for Linux based systems, don&#039;t forget to &#039;&#039;escape&#039;&#039; them with a backslash. For example, if you want to create an admin with &#039;&#039;pa$sword&#039;&#039; as password you should wrote &#039;&#039;pa\$sword&#039;&#039; instead!&lt;br /&gt;
&lt;br /&gt;
If required, the database install may be skipped, with just config.php populated.&lt;br /&gt;
&lt;br /&gt;
   $ sudo -u apache /usr/bin/php admin/cli/install.php --skip-database&lt;br /&gt;
&lt;br /&gt;
== Maintenance mode ==&lt;br /&gt;
&lt;br /&gt;
To switch your site into the maintenance mode via CLI, you can use&lt;br /&gt;
&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable&lt;br /&gt;
&lt;br /&gt;
To turn maintenance mode off, execute the same script with the --disable parameter:&lt;br /&gt;
&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to enable maintenance mode immediately, but show a countdown to your users, execute the same script with the --enablelater parameter and the number of minutes which the countdown should run:&lt;br /&gt;
&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enablelater=10&lt;br /&gt;
&lt;br /&gt;
This script will also create and remove the climaintenance.html file for &amp;quot;Offline&amp;quot; mode.&lt;br /&gt;
&lt;br /&gt;
== Offline mode ==&lt;br /&gt;
&lt;br /&gt;
In some situations, you may want to switch your Moodle site into offline mode so that it is not accessible via the web but you can not stop the web server completely (typically because there are other web pages and applications running there). If a file called &amp;lt;code&amp;gt;climaintenance.html&amp;lt;/code&amp;gt; exists in the root folder of moodledata directory, Moodle will automatically display the contents of that file instead of any other page.&lt;br /&gt;
&lt;br /&gt;
    $ cd /var/www/sites/moodle/moodledata/&lt;br /&gt;
    $ echo &#039;&amp;amp;lt;h1&amp;amp;gt;Sorry, maintenance in progress&amp;amp;lt;/h1&amp;amp;gt;&#039; &amp;amp;gt; climaintenance.html&lt;br /&gt;
&lt;br /&gt;
You can prepare a nice formatted HTML page to inform your users about the server being down and keep in the moodledata directory under a name like &amp;lt;code&amp;gt;climaintenance.off&amp;lt;/code&amp;gt; and rename it to the &amp;lt;code&amp;gt;climaintenance.html&amp;lt;/code&amp;gt; if needed.&lt;br /&gt;
&lt;br /&gt;
== Custom site defaults ==&lt;br /&gt;
&lt;br /&gt;
During the install and upgrade via CLI, Moodle sets the administration variables to the default values. You can use different defaults. See MDL-17850 for details. Shortly, all you need to do is to add a file &amp;lt;code&amp;gt;local/defaults.php&amp;lt;/code&amp;gt; into your Moodle installation. The format of the file is like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$defaults[&#039;pluginname&#039;][&#039;settingname&#039;] = &#039;settingvalue&#039;; // for plugins&lt;br /&gt;
$defaults[&#039;moodle&#039;][&#039;settingname&#039;] = &#039;settingvalue&#039;;     // for core settings&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These defaults are used during install, upgrade and are also displayed as defaults on Site administration pages.&lt;br /&gt;
&lt;br /&gt;
== Reset user password ==&lt;br /&gt;
&lt;br /&gt;
If you happen to forget your admin password (or you want to set a password for any other user on the site), you can use reset_password.php script. The script sets the correctly salted password for the given user.&lt;br /&gt;
&lt;br /&gt;
    $ sudo -u apache /usr/bin/php admin/cli/reset_password.php&lt;br /&gt;
&lt;br /&gt;
==Converting InnoDB tables to Barracuda==&lt;br /&gt;
&lt;br /&gt;
Sites using MySQL with database tables using Antelope as the file format are recommended to convert the tables to the Barracuda file format.&lt;br /&gt;
&lt;br /&gt;
This is because tables using Antelope as the file format cannot handle more than 10 text columns. This file formats only supports &#039;&#039;compact&#039;&#039; and &#039;&#039;redundant&#039;&#039; row formats for backward compatibility reasons. This may cause a problem on larger sites when restoring a course, in which case the following error will be displayed: &lt;br /&gt;
&lt;br /&gt;
 Row size too large (&amp;gt;8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.&lt;br /&gt;
&lt;br /&gt;
Barracuda is the newest innoDB file format. In addition to supporting &#039;&#039;compact&#039;&#039; and &#039;&#039;redundant&#039;&#039; row formats, Barracuda also supports &#039;&#039;compressed&#039;&#039; and &#039;&#039;dynamic&#039;&#039; row formats. &lt;br /&gt;
&lt;br /&gt;
However, converting tables to Barracuda is only recommended, and not required, since not all MySQL users are affected. (It may only be a problem for larger sites.)&lt;br /&gt;
&lt;br /&gt;
===Tool for converting tables===&lt;br /&gt;
&lt;br /&gt;
A command line tool is included in Moodle for converting tables to Barracuda.&lt;br /&gt;
&lt;br /&gt;
To view tables requiring conversion, use the list option:&lt;br /&gt;
&lt;br /&gt;
 $ php admin/cli/mysql_compressed_rows.php --list&lt;br /&gt;
&lt;br /&gt;
Here is an example output:&lt;br /&gt;
&lt;br /&gt;
 mdl_data                            Compact     (needs fixing) &lt;br /&gt;
 mdl_data_fields                     Compact     (needs fixing)&lt;br /&gt;
 mdl_enrol_paypal                    Compact     (needs fixing)&lt;br /&gt;
&lt;br /&gt;
To proceed with the conversion, run the command using the fix option:&lt;br /&gt;
&lt;br /&gt;
 $ php admin/cli/mysql_compressed_rows.php --fix&lt;br /&gt;
&lt;br /&gt;
Successful table conversion will be reported in the output, for example:&lt;br /&gt;
&lt;br /&gt;
 mdl_data                   ... Compressed&lt;br /&gt;
 mdl_data_fields            ... Compressed&lt;br /&gt;
 mdl_enrol_paypal           ... Compressed&lt;br /&gt;
&lt;br /&gt;
Please note that the commands must be executed on your moodle directory. Once tables are fixed, the warning message will no longer be displayed.&lt;br /&gt;
 &lt;br /&gt;
For further information on InnoDB file formats see the [http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_antelope MySQL InnoDB glossary - Antelope] and the [http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_barracuda MySQL InnoDB glossary - Barracuda].&lt;br /&gt;
&lt;br /&gt;
If you get errors due to having insufficient privileges to run these commands (this is quite likely) then the easiest solution is to generate the required SQL commands using,&lt;br /&gt;
&lt;br /&gt;
 $ php admin/cli/mysql_compressed_rows.php --showsql&lt;br /&gt;
&lt;br /&gt;
You can then copy the generated SQL into your mysql client running as the &#039;root&#039; user.&lt;br /&gt;
&lt;br /&gt;
==Converting to the new character set and collation==&lt;br /&gt;
&lt;br /&gt;
 $ php admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci&lt;br /&gt;
&lt;br /&gt;
== Running cron via command line ==&lt;br /&gt;
&lt;br /&gt;
In versions 1.x, you could execute admin/cron.php either from command line or via the web. Since Moodle 2.0, only admin/cli/cron.php script can be run via command line.&lt;br /&gt;
&lt;br /&gt;
== Scheduled tasks ==&lt;br /&gt;
&lt;br /&gt;
Scheduled tasks are automatically run by the cron script, but the specific tasks which run on each cron iteration are determined by the scheduled tasks configuration. It is possible to override the scheduled tasks configuration and run a single scheduled task immediately using the admin/tool/task/cli/schedule_task.php script. &lt;br /&gt;
&lt;br /&gt;
This script accepts the following arguments:&lt;br /&gt;
&lt;br /&gt;
 --list - list all the known scheduled tasks. The tasks are listed by the class name used to run the task. This class name is required as the argument to the next option in order to run a specific task immediately.&lt;br /&gt;
&lt;br /&gt;
 --execute=&amp;lt;task&amp;gt; - Runs a single scheduled task immediately - regardless of scheduling settings. This will even run disabled tasks. Tasks will still use locking to prevent concurrent execution of the same task - even on clusters. The format of the &amp;lt;task&amp;gt; argument must be the same as returned by the --list option above.&lt;br /&gt;
&lt;br /&gt;
 --showsql - Shows sql queries before they are execute&lt;br /&gt;
&lt;br /&gt;
 --showdebugging - Shows developer debugging info&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; You must escape the &amp;quot;\&amp;quot; with an extra \ when using the --execute command. Take the following for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;php admin/tool/task/cli/schedule_task.php --list&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will return something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== List of scheduled tasks (http://yourserver.com/moodle) ==&lt;br /&gt;
\enrol_imsenterprise\task\cron_task                10 * * * * *      ASAP&lt;br /&gt;
\logstore_legacy\task\cleanup_task                 * 5 * * * *       ASAP&lt;br /&gt;
\logstore_standard\task\cleanup_task               * 4 * * * *       Wednesday, November 12, 2014, 4:35 AM&lt;br /&gt;
\mod_forum\task\cron_task                          * * * * * *       ASAP&lt;br /&gt;
\core\task\automated_backup_task                   50 * * * * *      ASAP&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run the first task in that list, you would execute&lt;br /&gt;
&lt;br /&gt;
 php admin/tool/task/cli/schedule_task.php --execute=&#039;\enrol_imsenterprise\task\cron_task&#039;&lt;br /&gt;
&lt;br /&gt;
Be aware of the single quotes. Without them, you would need to use double backlashes to avoid escaping by the shell.&lt;br /&gt;
&lt;br /&gt;
==Database transfer==&lt;br /&gt;
&lt;br /&gt;
A command line script for [[Database transfer]] may be found in &#039;&#039;admin/tool/dbtransfer/cli/migrate.php&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Purge caches==&lt;br /&gt;
&lt;br /&gt;
You can purge caches using this script:&lt;br /&gt;
&lt;br /&gt;
  php admin/cli/purge_caches.php&lt;br /&gt;
&lt;br /&gt;
==Kill all sessions==&lt;br /&gt;
If needed for administrative reasons, you can kill all user sessions using this script:&lt;br /&gt;
&lt;br /&gt;
 php admin/cli/kill_all_sessions.php&lt;br /&gt;
&lt;br /&gt;
As a result, all users will be logged out from Moodle.&lt;br /&gt;
&lt;br /&gt;
==Backup and restore of large courses==&lt;br /&gt;
&lt;br /&gt;
See Backup via CLI in [[Course backup]] and Restore via CLI in [[Course restore]] (new in 3.10 onwards).&lt;br /&gt;
&lt;br /&gt;
==Fix course / module sequences==&lt;br /&gt;
&lt;br /&gt;
In rare cases (such as after upgrading from a very old version of Moodle), the course / section / module sequence data can be out of sync. This can cause various problems for affected courses, such as sections not appearing, backups failing, pages not displaying etc. There is a specific check to check for errors caused by this problem, and to fix the data in the database if they are found. To run this script please use the command below:&lt;br /&gt;
&lt;br /&gt;
  php admin/cli/fix_course_sequence.php -c=* --fix&lt;br /&gt;
&lt;br /&gt;
This will check every course in Moodle and report which ones had errors and were fixed.&lt;br /&gt;
&lt;br /&gt;
==Fix orphaned question categories==&lt;br /&gt;
&lt;br /&gt;
When a quiz is created, a new question category for the quiz is automatically created. In versions of Moodle prior to 2.9.1, if the quiz is deleted, the question category and any questions in the category remain in database. These orphaned question categories may be fixed by running the admin/cli/fix_orphaned_question_categories.php script with the --fix option.&lt;br /&gt;
&lt;br /&gt;
==Search and replace text==&lt;br /&gt;
&lt;br /&gt;
This script can be used to search and replace text throughout the whole database. Use carefully and backup first always. More info in [[Search and replace tool]].&lt;br /&gt;
&lt;br /&gt;
  php admin/tool/replace/cli/replace.php --search=//oldsitehost --replace=//newsitehost&lt;br /&gt;
&lt;br /&gt;
==Build theme CSS cache==&lt;br /&gt;
&lt;br /&gt;
If Moodle is not running in theme designer mode it will keep a copy of the compiled CSS on local disk and serve that to the browser when it requests a page. If there isn&#039;t a copy on local disk then a copy will be built the first time a page within Moodle is requested. &lt;br /&gt;
&lt;br /&gt;
With this script you can pre-compile the cached CSS files for themes within Moodle to avoid having a user wait for the theme to compile during the first page request.&lt;br /&gt;
&lt;br /&gt;
  php admin/cli/build_theme_css.php --themes=boost&lt;br /&gt;
&lt;br /&gt;
==Get and set configuration values==&lt;br /&gt;
&lt;br /&gt;
Displays the current value of the given setting, or set the given setting to the specified value.&lt;br /&gt;
&lt;br /&gt;
 $ php admin/cli/cfg.php [--component=&amp;lt;componentname&amp;gt;] [--json] [--shell-arg]&lt;br /&gt;
 $ php admin/cli/cfg.php --name=&amp;lt;configname&amp;gt; [--component=&amp;lt;componentname&amp;gt;] [--shell-arg] [--no-eol]&lt;br /&gt;
 $ php admin/cli/cfg.php --name=&amp;lt;configname&amp;gt; [--component=&amp;lt;componentname&amp;gt;] --set=&amp;lt;value&amp;gt;&lt;br /&gt;
 $ php admin/cli/cfg.php --name=&amp;lt;configname&amp;gt; [--component=&amp;lt;componentname&amp;gt;] --unset&lt;br /&gt;
 $ php admin/cli/cfg.php [--help|-h]&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
 $ php admin/cli/cfg.php --name=langmenu&lt;br /&gt;
will display the value of &#039;&#039;Display language menu&#039;&#039; in &#039;&#039;Site administration &amp;gt; Language &amp;gt; Language settings&#039;&#039; (0 for &#039;&#039;No&#039;&#039; or 1 for &#039;&#039;Yes&#039;&#039;).&lt;br /&gt;
 $ php cfg.php --name=maxsizetodownload --component=folder&lt;br /&gt;
will display the value of &#039;&#039;Maximum folder download size (MB)&#039;&#039; accessible from &#039;&#039;Site administration &amp;gt; Plugins &amp;gt; Activity modules &amp;gt; Folder&#039;&#039;.&lt;br /&gt;
 $ php admin/cli/cfg.php --name=langmenu --set=0&lt;br /&gt;
will disable the &#039;&#039;Language menu&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* MDL-35736 - Manage plugins via command line&lt;br /&gt;
* MDL-36237 - Resort course list via CLI&lt;br /&gt;
* [http://moosh-online.com/ MOOSH] - MOOdle SHell. It is a commandline tool that will allow you to perform most common Moodle tasks.&lt;br /&gt;
&lt;br /&gt;
[[fr:Administration en ligne de commande]]&lt;br /&gt;
[[de:Administration über Kommandozeile]]&lt;br /&gt;
[[es:Administración por línea de comando]]&lt;br /&gt;
[[it:Amministrazione via linea di comando]]&lt;br /&gt;
[[ja:コマンドライン経由の管理]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=140371</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=140371"/>
		<updated>2021-05-17T00:09:47Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Moodle 3.11 required Moodle 3.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}	&lt;br /&gt;
&#039;&#039;This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
&lt;br /&gt;
Before upgrading, check that your server meets all requirements for {{Version}} in &#039;&#039;Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
See the [{{Release notes}} release notes] in the dev docs for both [{{Release notes}}#Server_requirements server] and [{{Release notes}}#Client_requirements client] software requirements.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* You can only upgrade to Moodle {{Version}} from Moodle 3.6 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/36/en/Upgrading_to_Moodle_3.6 upgrade to 3.6] as a first step.&lt;br /&gt;
&lt;br /&gt;
==Before upgrading==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Consider setting the [[Upgrade key|upgrade key]] for your site.&lt;br /&gt;
&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, your Postgres or MySQL database dump)&lt;br /&gt;
&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
&lt;br /&gt;
== Check for plugin updates ==&lt;br /&gt;
&lt;br /&gt;
If you have [[Automatic updates deployment]] enabled, you will be able to update installed plugins automatically during the upgrade. Just make sure you check for available updates (via the button for it) at the Plugins check screen.&lt;br /&gt;
&lt;br /&gt;
If you are updating plugins manually, it is a good moment now to check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a {{Version}} version available for any plugins (including themes) that you have previously installed on your site. If so, download the plugin package. In the next step, you will copy it to the appropriate location in your Moodle code (see [[Installing plugins]]).&lt;br /&gt;
&lt;br /&gt;
The upgrade of the plugin will then happen as part of the Moodle upgrade process.&lt;br /&gt;
&lt;br /&gt;
If an out-of-date plugin causes your upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.&lt;br /&gt;
&lt;br /&gt;
==Put your site into maintenance mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in. Then you should wait for any currently running cron processes to complete before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
You can fetch the current version of the software at&lt;br /&gt;
&lt;br /&gt;
wget http://sourceforge.net/projects/moodle/files/Moodle/stable39/moodle-latest-39.tgz&lt;br /&gt;
&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
&lt;br /&gt;
# Move your old Moodle software program files to another location. &#039;&#039;Do NOT copy new files over the old files.&#039;&#039;&lt;br /&gt;
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.&lt;br /&gt;
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. &lt;br /&gt;
# As mentioned above, if you had installed any plugins on your site you should add them to the new code tree (Moodle directory structure) now. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle and that you place the plugin folders in the correct directory (the same directory that they are in in the current installation.)&lt;br /&gt;
# Your moodledata folder should be located separately to your Moodle code folder and, as such, should not need anything done to it.  Moodle 3.0 will throw a warning if it is located in a web accessible folder and the moodledata should never be located in the Moodle code folder.  If you are moving your installation to a new server or new location on your server, then you will need to follow the [[Migration]] documents.&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-latest-{{Version}}.tgz&lt;br /&gt;
&lt;br /&gt;
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one (&#039;&#039;&#039;check that custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. For maximum security the files should not be writeable by your server. This is especially important on a &#039;production&#039; server open to the public internet. &lt;br /&gt;
&lt;br /&gt;
 chown -R root:root moodle (Linux debian - or even create a user especially for moodle. &#039;&#039;&#039;Don&#039;t&#039;&#039;&#039; use the web server user, e.g. www-data)&lt;br /&gt;
 chmod -R 755 moodle&lt;br /&gt;
&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;) &lt;br /&gt;
if necessary.  However, for a simple upgrade, there should be no need to change anything with cron.&lt;br /&gt;
&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
&lt;br /&gt;
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.&lt;br /&gt;
&lt;br /&gt;
===Command line upgrade===&lt;br /&gt;
&lt;br /&gt;
On Linux servers, Moodle {{Version}} supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.&lt;br /&gt;
&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
If you put your site into Maintenance mode earlier; take it out now!&lt;br /&gt;
&lt;br /&gt;
To do this just go to &#039;&#039;Site administration &amp;gt; Notifications&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
Note: If you are running multiple servers then you should purge all caches manually (via &#039;&#039;Site administration &amp;gt; Development &amp;gt; Purge all caches&#039;&#039;) after completing the upgrade on all servers.&lt;br /&gt;
&lt;br /&gt;
===Fatal error: Maximum execution time of 30 seconds exceeded...===&lt;br /&gt;
&lt;br /&gt;
If your server uses a main language other than English, you may encounter a &#039;Fatal error: Maximum execution time of 30 seconds exceeded&#039; when you try to upgrade it. You can increase max_execution_time = 160 on php.ini to allow the scripts enough time to process the language update. Otherwise, you can switch to English as the default language before doing the upgrade and back to your original language after a successful upgrade. See the forum discussion at https://moodle.org/mod/forum/discuss.php?d=119598.&lt;br /&gt;
&lt;br /&gt;
==After upgrading==&lt;br /&gt;
&lt;br /&gt;
==Possible issues that may affect you in Moodle {{Version}}==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please add items here...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See also the list of [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%203.10%20AND%20labels%20%3D%20upgrade_notes upgrade_notes-labelled issues] and [https://tracker.moodle.org/issues/?jql=project%20%3D%20MDL%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%203.10%20AND%20labels%20%3D%20ui_change ui_change-labelled issues]. &lt;br /&gt;
&lt;br /&gt;
===New capabilities in Moodle {{Version}}===&lt;br /&gt;
&lt;br /&gt;
* block/accessreview:addinstance&lt;br /&gt;
* block/accessreview:view&lt;br /&gt;
* mod/quiz:viewoverrides&lt;br /&gt;
* moodle/contentbank:viewunlistedcontent&lt;br /&gt;
* tool/brickfield:viewcoursetools&lt;br /&gt;
* tool/brickfield:viewsystemtools&lt;br /&gt;
&lt;br /&gt;
=== Moodle 3.6, 3.7, 3.8, 3.9 and 3.10 improvements ===&lt;br /&gt;
&lt;br /&gt;
Depending on which version you are upgrading from, please see the section &#039;Possible issues that may affect you&#039; in the documentation&lt;br /&gt;
&lt;br /&gt;
* [https://docs.moodle.org/36/en/Upgrading Upgrading to Moodle 3.6]&lt;br /&gt;
* [https://docs.moodle.org/37/en/Upgrading Upgrading to Moodle 3.7]&lt;br /&gt;
* [https://docs.moodle.org/38/en/Upgrading Upgrading to Moodle 3.8]&lt;br /&gt;
* [https://docs.moodle.org/39/en/Upgrading Upgrading to Moodle 3.9]&lt;br /&gt;
* [https://docs.moodle.org/310/en/Upgrading Upgrading to Moodle 3.10]&lt;br /&gt;
&lt;br /&gt;
==Any questions about the process?==&lt;br /&gt;
&lt;br /&gt;
Please post in the [https://moodle.org/mod/forum/view.php?id=28 Installing and upgrading help forum] on moodle.org.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[dev:Moodle {{Version}} release notes|Moodle {{Version}} release notes]]&lt;br /&gt;
* [https://moodle.org/mod/forum/discuss.php?d=393570 Problem accessing dropdown such as personal profile since 3.8 (20191118) update] forum discussion&lt;br /&gt;
&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Environment_-_max_input_vars&amp;diff=140255</id>
		<title>Environment - max input vars</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Environment_-_max_input_vars&amp;diff=140255"/>
		<updated>2021-05-06T17:02:43Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Add environment category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PHP setting &#039;&#039;&#039;max_input_vars&#039;&#039;&#039; determines how many input variables may be accepted (limit is applied to $_GET, $_POST and $_COOKIE superglobal separately). If there are more input variables than specified by this directive, an E_WARNING is issued, and further input variables are truncated from the request. &lt;br /&gt;
&lt;br /&gt;
There are a lot of big or potentially big forms in Moodle, such as:&lt;br /&gt;
* Site administration tree search&lt;br /&gt;
* Editing roles&lt;br /&gt;
* Grading courses with big number of participants&lt;br /&gt;
* Large quizzes and quiz settings&lt;br /&gt;
 &lt;br /&gt;
The default value for max_input_vars in PHP is &#039;&#039;&#039;1000&#039;&#039;&#039;, this is not enough for many cases.&lt;br /&gt;
&lt;br /&gt;
If you are using PHP 7 the recommended value for the &#039;&#039;&#039;max_input_vars&#039;&#039;&#039; in Moodle is &#039;&#039;&#039;5000&#039;&#039;&#039; but you can still use Moodle with the lower value. Moodle code has a workaround that allows to submit the forms even with bigger limit however this workaround is not perfect. It is much better to increase the setting.&lt;br /&gt;
&lt;br /&gt;
If you are using PHP 8 the minimum value of 5000 &#039;&#039;&#039;is required&#039;&#039;&#039;.  By default PHP 8 sets to display startup errors (see [[https://php.watch/versions/8.0/startup-errors-enabled]]). This means that the warning about exceeding max_input_vars appears before the workaround even applied.&lt;br /&gt;
&lt;br /&gt;
To change max_input_vars you can either set it in php.ini or modify it in runtime, for example for Apache you can create &#039;&#039;&#039;.htaccess&#039;&#039;&#039; file:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
php_value max_input_vars 5000&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Environment|PHP]]&lt;br /&gt;
&lt;br /&gt;
[[es:admin/environment/custom check/max input vars]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Environment_-_PHP_extension_sodium&amp;diff=140251</id>
		<title>Environment - PHP extension sodium</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Environment_-_PHP_extension_sodium&amp;diff=140251"/>
		<updated>2021-05-06T12:25:04Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Environment}}&lt;br /&gt;
&lt;br /&gt;
The php-sodium extension provides strong encryption capabilities in an easy and consistent way. &lt;br /&gt;
&lt;br /&gt;
Note that, for sites not having the extension installed, a php-openssl based solution, considered suboptimal, is used, and this fallback will stop working in a few versions (Moodle 4.2). See MDL-71421 for more details.&lt;br /&gt;
&lt;br /&gt;
Hence, it&#039;s highly recommended to start using php-sodium.&lt;br /&gt;
&lt;br /&gt;
Please see [https://www.php.net/manual/book.sodium.php https://www.php.net/manual/book.sodium.php]&lt;br /&gt;
&lt;br /&gt;
Please see [https://py-ipv8.readthedocs.io/en/latest/preliminaries/install_libsodium/]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environment|PHP]]&lt;br /&gt;
&lt;br /&gt;
[[es:admin/environment/php extension/sodium]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Environment_-_PHP_extension_sodium&amp;diff=140250</id>
		<title>Environment - PHP extension sodium</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Environment_-_PHP_extension_sodium&amp;diff=140250"/>
		<updated>2021-05-06T12:24:39Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Some notes about php-sodium and current php-openssl fallback&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Environment}}&lt;br /&gt;
&lt;br /&gt;
The php-sodium extension provides strong encryption capabilities in an easy and consistent way. &lt;br /&gt;
&lt;br /&gt;
Note that, for sites not having the extension installed, a php-openssl based solution, considered suboptimal, is used, and this fallback will stop working in a few versions (Moodle 4.2).&lt;br /&gt;
&lt;br /&gt;
Hence, it&#039;s highly recommended to start using php-sodium.&lt;br /&gt;
&lt;br /&gt;
Please see [https://www.php.net/manual/book.sodium.php https://www.php.net/manual/book.sodium.php]&lt;br /&gt;
&lt;br /&gt;
Please see [https://py-ipv8.readthedocs.io/en/latest/preliminaries/install_libsodium/]&lt;br /&gt;
&lt;br /&gt;
[[Category:Environment|PHP]]&lt;br /&gt;
&lt;br /&gt;
[[es:admin/environment/php extension/sodium]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=132613</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=132613"/>
		<updated>2018-12-03T00:49:37Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: reorganize the section to avoid duplicating incomplete information. Always refer to the release notes for server and client requirements.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}	&lt;br /&gt;
&#039;&#039;This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
&lt;br /&gt;
Before upgrading, check that your server meets all requirements for {{Version}} in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
See the [{{Release notes}} release notes] in the dev docs for both [{{Release notes}}#Server_requirements server] and [{{Release notes}}#Client_requirements client] software requirements.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* You can only upgrade to Moodle {{Version}} from Moodle 3.1 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/31/en/Upgrading_to_Moodle_3.1 upgrade to 3.1] as a first step.&lt;br /&gt;
&lt;br /&gt;
==Before upgrading==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Consider setting the [[Upgrade key|upgrade key]] for your site.&lt;br /&gt;
&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, your Postgres or MySQL database dump)&lt;br /&gt;
&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
&lt;br /&gt;
== Check for plugin updates ==&lt;br /&gt;
&lt;br /&gt;
If you have [[Automatic updates deployment]] enabled, you will be able to update installed plugins automatically during the upgrade. Just make sure you check for available updates (via the button for it) at the Plugins check screen.&lt;br /&gt;
&lt;br /&gt;
If you are updating plugins manually, it is a good moment now to check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a {{Version}} version available for any plugins (including themes) that you have previously installed on your site. If so, download the plugin package. In the next step, you will copy it to the appropriate location in your Moodle code (see [[Installing plugins]]).&lt;br /&gt;
&lt;br /&gt;
The upgrade of the plugin will then happen as part of the Moodle upgrade process.&lt;br /&gt;
&lt;br /&gt;
If an out-of-date plugin causes your upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.&lt;br /&gt;
&lt;br /&gt;
==Put your site into maintenance mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in. Then you should wait for any currently running cron processes to complete before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
You can fetch the current version of the software through &lt;br /&gt;
&lt;br /&gt;
wget http://sourceforge.net/projects/moodle/files/Moodle/stable{{Version2}}/moodle-latest-{{Version2}}.tgz&lt;br /&gt;
&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
&lt;br /&gt;
# Move your old Moodle software program files to another location. &#039;&#039;Do NOT copy new files over the old files.&#039;&#039;&lt;br /&gt;
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.&lt;br /&gt;
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. &lt;br /&gt;
# As mentioned above, if you had installed any plugins on your site you should add them to the new code tree (Moodle directory structure) now. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle and that you place the plugin folders in the correct directory (the same directory that they are in in the current installation.)&lt;br /&gt;
# Your moodledata folder should be located separately to your Moodle code folder and, as such, should not need anything done to it.  Moodle 3.0 will throw a warning if it is located in a web accessible folder and the moodledata should never be located in the Moodle code folder.  If you are moving your installation to a new server or new location on your server, then you will need to follow the Migration documents.&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-{{Version}}.tgz&lt;br /&gt;
&lt;br /&gt;
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one (&#039;&#039;&#039;check that custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. Ideally the files should not be writeable by your server.&lt;br /&gt;
&lt;br /&gt;
chown -R www-data:www-data moodle (Linux debian - change to appropriate user and group for your OS version)&lt;br /&gt;
chmod -R 755 moodle&lt;br /&gt;
&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;) &lt;br /&gt;
if necessary.  However, for a simple upgrade, there should be no need to change anything with cron.&lt;br /&gt;
&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
&lt;br /&gt;
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.&lt;br /&gt;
&lt;br /&gt;
===Command line upgrade===&lt;br /&gt;
&lt;br /&gt;
On Linux servers, Moodle {{Version}} supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.&lt;br /&gt;
&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
If you put your site into Maintenance mode earlier; take it out now!&lt;br /&gt;
&lt;br /&gt;
To do this just go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Notifications&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
Note: If you are running multiple servers then you should purge all caches manually (via &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Development &amp;gt; Purge all caches&#039;&#039;) after completing the upgrade on all servers.&lt;br /&gt;
&lt;br /&gt;
===Fatal error: Maximum execution time of 30 seconds exceeded...===&lt;br /&gt;
&lt;br /&gt;
If your server uses a main language other than English, you may encounter a &#039;Fatal error: Maximum execution time of 30 seconds exceeded&#039; when you try to upgrade it. You can increase max_execution_time = 160 on php.ini to allow the scripts enough time to process the language update. Otherwise, you can switch to English as the default language before doing the upgrade and back to your original language after a succcessful upgrade. See the forum discussion at https://moodle.org/mod/forum/discuss.php?d=119598.&lt;br /&gt;
&lt;br /&gt;
==After upgrading==&lt;br /&gt;
&lt;br /&gt;
The config.php file from your installation should work fine but if you take a look at config-dist.php that came with Moodle 3.0 there are more/different options available (e.g. database drivers and settings). It&#039;s a good idea to map your old config.php settings to a new one based on the 3.0 config-dist.php.&lt;br /&gt;
&lt;br /&gt;
===Cron===&lt;br /&gt;
&lt;br /&gt;
Cron has received a major update (MDL-25499) and now has support for both scheduled and ad hoc tasks.&lt;br /&gt;
&lt;br /&gt;
The benefits of these changes are:&lt;br /&gt;
* The schedule for every task can be configured by the admin&lt;br /&gt;
* Tasks can run in parallel&lt;br /&gt;
* Cron processes use locking to prevent the same task running at the same time by different processes&lt;br /&gt;
* Clusters with multiple identical application nodes are supported, you can run cron on all of them&lt;br /&gt;
&lt;br /&gt;
A result of this is that cron can be run much more often, which means (for example) forum posts can be sent out sooner.  To take advantage of the new cron system it is now strongly recommended that administrators increase the frequency that cron is run to at least &#039;&#039;once per minute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
You also may need to modify any automated scripts you have that are parsing the output from cron. It is no longer possible to simply monitor the output of cron for the string &amp;quot;Cron script completed correctly&amp;quot; (if that is what you were doing). An alternative is to monitor the output for the string &amp;quot;task failed:&amp;quot;. If you detect that a task is failing, [[Cron#Debugging_Scheduled_Tasks|here]] are some tips for debugging the failure. &lt;br /&gt;
&lt;br /&gt;
Before the upgrade, there may have been a cron task that was failing, which was preventing the rest of cron from being executed. A failure in any single task will no longer prevent the rest of the Moodle cron tasks from executing, so you may uncover previously masked bugs. It is a good idea to closely monitor the output from cron after the upgrade.&lt;br /&gt;
&lt;br /&gt;
===Assignments===&lt;br /&gt;
&lt;br /&gt;
The old assignment (2.2) module has been removed from core and has been replaced by a stub to support transparently remapping URLs and restoring course backups from the old module to the new one. &lt;br /&gt;
&lt;br /&gt;
If you are still using the old assignment (2.2) module, after upgrading to Moodle 3.0 all assignment (2.2) activities will be hidden. You need to run the [[Assignment upgrade tool]] to un-hide the activities.&lt;br /&gt;
&lt;br /&gt;
If you really, really need to keep using the old assignment (2.2) module, you should update the code to Moodle 3.0, and then replace the &amp;quot;mod/assignment&amp;quot; folder with the one from https://github.com/moodlehq/moodle-mod_assignment/releases before completing the upgrade.&lt;br /&gt;
&lt;br /&gt;
==Possible issues that may affect you in Moodle {{Version}}==&lt;br /&gt;
&lt;br /&gt;
* To use &#039;Run now&#039; links in [[Scheduled tasks]], you need to set &#039;Path to PHP CLI&#039; (pathtophp) in Site administration &amp;gt; Server &amp;gt; System paths.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Items to be added...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See also the list of [https://tracker.moodle.org/issues/?jql=project%20%3D%20mdl%20AND%20resolution%20%3D%20fixed%20AND%20fixVersion%20in%20(%223.6%22)%20AND%20labels%20%3D%20upgrade_notes upgrade_notes-labelled issues] and [https://tracker.moodle.org/issues/?jql=project%20%3D%20mdl%20AND%20resolution%20%3D%20fixed%20AND%20fixVersion%20in%20(%223.6%22)%20AND%20labels%20%3D%20ui_change%20 ui_change-labelled issues]. &lt;br /&gt;
&lt;br /&gt;
=== Moodle 3.1, 3.2, 3.3, 3.4 and 3.5 improvements ===&lt;br /&gt;
&lt;br /&gt;
Depending on which version you are upgrading from, please see the section &#039;Possible issues that may affect you&#039; in the documentation&lt;br /&gt;
&lt;br /&gt;
* [https://docs.moodle.org/31/en/Upgrading Upgrading to Moodle 3.1]&lt;br /&gt;
* [https://docs.moodle.org/32/en/Upgrading Upgrading to Moodle 3.2]&lt;br /&gt;
* [https://docs.moodle.org/33/en/Upgrading Upgrading to Moodle 3.3]&lt;br /&gt;
* [https://docs.moodle.org/34/en/Upgrading Upgrading to Moodle 3.4]&lt;br /&gt;
* [https://docs.moodle.org/35/en/Upgrading Upgrading to Moodle 3.5]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation help forum] &lt;br /&gt;
* [[dev:Moodle {{Version}} release notes|Moodle {{Version}} release notes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=132376</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=132376"/>
		<updated>2018-11-25T12:28:24Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Add a note about PHP 7.3 being work in progress.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}	&lt;br /&gt;
&#039;&#039;This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
&lt;br /&gt;
Check that your server meets all requirements for {{Version}} in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;. &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;
Notes:&lt;br /&gt;
&lt;br /&gt;
* You can only upgrade to Moodle {{Version}} from Moodle 3.1 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/31/en/Upgrading_to_Moodle_3.1 upgrade to 3.1] as a first step.&lt;br /&gt;
* The minimum PHP version has increased and is now 7.0.0. PHP 7.3 support is being implemented (MDL-63420) for Moodle 3.6.x and later releases. Hence it&#039;s still incomplete and only for development purposes.&lt;br /&gt;
* The PHP extension &#039;&#039;&#039;intl&#039;&#039;&#039; is now required in Moodle 3.4 (previously it was only recommended).&lt;br /&gt;
&lt;br /&gt;
==Before upgrading==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Consider setting the [[Upgrade key|upgrade key]] for your site.&lt;br /&gt;
&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, your Postgres or MySQL database dump)&lt;br /&gt;
&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
&lt;br /&gt;
== Check for plugin updates ==&lt;br /&gt;
&lt;br /&gt;
If you have [[Automatic updates deployment]] enabled, you will be able to update installed plugins automatically during the upgrade. Just make sure you check for available updates (via the button for it) at the Plugins check screen.&lt;br /&gt;
&lt;br /&gt;
If you are updating plugins manually, it is a good moment now to check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a {{Version}} version available for any plugins (including themes) that you have previously installed on your site. If so, download the plugin package. In the next step, you will copy it to the appropriate location in your Moodle code (see [[Installing plugins]]).&lt;br /&gt;
&lt;br /&gt;
The upgrade of the plugin will then happen as part of the Moodle upgrade process.&lt;br /&gt;
&lt;br /&gt;
If an out-of-date plugin causes your upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.&lt;br /&gt;
&lt;br /&gt;
==Put your site into maintenance mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in. Then you should wait for any currently running cron processes to complete before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
You can fetch the current version of the software through &lt;br /&gt;
&lt;br /&gt;
wget http://sourceforge.net/projects/moodle/files/Moodle/stable{{Version2}}/moodle-latest-{{Version2}}.tgz&lt;br /&gt;
&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
&lt;br /&gt;
# Move your old Moodle software program files to another location. &#039;&#039;Do NOT copy new files over the old files.&#039;&#039;&lt;br /&gt;
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.&lt;br /&gt;
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. &lt;br /&gt;
# As mentioned above, if you had installed any plugins on your site you should add them to the new code tree (Moodle directory structure) now. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle and that you place the plugin folders in the correct directory (the same directory that they are in in the current installation.)&lt;br /&gt;
# Your moodledata folder should be located separately to your Moodle code folder and, as such, should not need anything done to it.  Moodle 3.0 will throw a warning if it is located in a web accessible folder and the moodledata should never be located in the Moodle code folder.  If you are moving your installation to a new server or new location on your server, then you will need to follow the Migration documents.&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-{{Version}}.tgz&lt;br /&gt;
&lt;br /&gt;
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one (&#039;&#039;&#039;check that custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. Ideally the files should not be writeable by your server.&lt;br /&gt;
&lt;br /&gt;
chown -R www-data:www-data moodle (Linux debian - change to appropriate user and group for your OS version)&lt;br /&gt;
chmod -R 755 moodle&lt;br /&gt;
&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;) &lt;br /&gt;
if necessary.  However, for a simple upgrade, there should be no need to change anything with cron.&lt;br /&gt;
&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
&lt;br /&gt;
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.&lt;br /&gt;
&lt;br /&gt;
===Command line upgrade===&lt;br /&gt;
&lt;br /&gt;
On Linux servers, Moodle {{Version}} supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.&lt;br /&gt;
&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
If you put your site into Maintenance mode earlier; take it out now!&lt;br /&gt;
&lt;br /&gt;
To do this just go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Notifications&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
Note: If you are running multiple servers then you should purge all caches manually (via &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Development &amp;gt; Purge all caches&#039;&#039;) after completing the upgrade on all servers.&lt;br /&gt;
&lt;br /&gt;
===Fatal error: Maximum execution time of 30 seconds exceeded...===&lt;br /&gt;
&lt;br /&gt;
If your server uses a main language other than English, you may encounter a &#039;Fatal error: Maximum execution time of 30 seconds exceeded&#039; when you try to upgrade it. You can increase max_execution_time = 160 on php.ini to allow the scripts enough time to process the language update. Otherwise, you can switch to English as the default language before doing the upgrade and back to your original language after a succcessful upgrade. See the forum discussion at https://moodle.org/mod/forum/discuss.php?d=119598.&lt;br /&gt;
&lt;br /&gt;
==After upgrading==&lt;br /&gt;
&lt;br /&gt;
The config.php file from your installation should work fine but if you take a look at config-dist.php that came with Moodle 3.0 there are more/different options available (e.g. database drivers and settings). It&#039;s a good idea to map your old config.php settings to a new one based on the 3.0 config-dist.php.&lt;br /&gt;
&lt;br /&gt;
===Cron===&lt;br /&gt;
&lt;br /&gt;
Cron has received a major update (MDL-25499) and now has support for both scheduled and ad hoc tasks.&lt;br /&gt;
&lt;br /&gt;
The benefits of these changes are:&lt;br /&gt;
* The schedule for every task can be configured by the admin&lt;br /&gt;
* Tasks can run in parallel&lt;br /&gt;
* Cron processes use locking to prevent the same task running at the same time by different processes&lt;br /&gt;
* Clusters with multiple identical application nodes are supported, you can run cron on all of them&lt;br /&gt;
&lt;br /&gt;
A result of this is that cron can be run much more often, which means (for example) forum posts can be sent out sooner.  To take advantage of the new cron system it is now strongly recommended that administrators increase the frequency that cron is run to at least &#039;&#039;once per minute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
You also may need to modify any automated scripts you have that are parsing the output from cron. It is no longer possible to simply monitor the output of cron for the string &amp;quot;Cron script completed correctly&amp;quot; (if that is what you were doing). An alternative is to monitor the output for the string &amp;quot;task failed:&amp;quot;. If you detect that a task is failing, [[Cron#Debugging_Scheduled_Tasks|here]] are some tips for debugging the failure. &lt;br /&gt;
&lt;br /&gt;
Before the upgrade, there may have been a cron task that was failing, which was preventing the rest of cron from being executed. A failure in any single task will no longer prevent the rest of the Moodle cron tasks from executing, so you may uncover previously masked bugs. It is a good idea to closely monitor the output from cron after the upgrade.&lt;br /&gt;
&lt;br /&gt;
===Assignments===&lt;br /&gt;
&lt;br /&gt;
The old assignment (2.2) module has been removed from core and has been replaced by a stub to support transparently remapping URLs and restoring course backups from the old module to the new one. &lt;br /&gt;
&lt;br /&gt;
If you are still using the old assignment (2.2) module, after upgrading to Moodle 3.0 all assignment (2.2) activities will be hidden. You need to run the [[Assignment upgrade tool]] to un-hide the activities.&lt;br /&gt;
&lt;br /&gt;
If you really, really need to keep using the old assignment (2.2) module, you should update the code to Moodle 3.0, and then replace the &amp;quot;mod/assignment&amp;quot; folder with the one from https://github.com/moodlehq/moodle-mod_assignment/releases before completing the upgrade.&lt;br /&gt;
&lt;br /&gt;
==Possible issues that may affect you in Moodle {{Version}}==&lt;br /&gt;
&lt;br /&gt;
* To use &#039;Run now&#039; links in [[Scheduled tasks]], you need to set &#039;Path to PHP CLI&#039; (pathtophp) in Site administration &amp;gt; Server &amp;gt; System paths.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Items to be added...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See also the list of [https://tracker.moodle.org/issues/?jql=project%20%3D%20mdl%20AND%20resolution%20%3D%20fixed%20AND%20fixVersion%20in%20(%223.6%22)%20AND%20labels%20%3D%20upgrade_notes upgrade_notes-labelled issues] and [https://tracker.moodle.org/issues/?jql=project%20%3D%20mdl%20AND%20resolution%20%3D%20fixed%20AND%20fixVersion%20in%20(%223.6%22)%20AND%20labels%20%3D%20ui_change%20 ui_change-labelled issues]. &lt;br /&gt;
&lt;br /&gt;
=== Moodle 3.1, 3.2, 3.3, 3.4 and 3.5 improvements ===&lt;br /&gt;
&lt;br /&gt;
Depending on which version you are upgrading from, please see the section &#039;Possible issues that may affect you&#039; in the documentation&lt;br /&gt;
&lt;br /&gt;
* [https://docs.moodle.org/31/en/Upgrading Upgrading to Moodle 3.1]&lt;br /&gt;
* [https://docs.moodle.org/32/en/Upgrading Upgrading to Moodle 3.2]&lt;br /&gt;
* [https://docs.moodle.org/33/en/Upgrading Upgrading to Moodle 3.3]&lt;br /&gt;
* [https://docs.moodle.org/34/en/Upgrading Upgrading to Moodle 3.4]&lt;br /&gt;
* [https://docs.moodle.org/35/en/Upgrading Upgrading to Moodle 3.5]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation help forum] &lt;br /&gt;
* [[dev:Moodle {{Version}} release notes|Moodle {{Version}} release notes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=131339</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Upgrading&amp;diff=131339"/>
		<updated>2018-07-01T22:13:09Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Add a note in upgrade about the new PostgreSQL default behavior in 3.5 and up.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}	&lt;br /&gt;
&#039;&#039;This page explains in detail how to upgrade Moodle. For a summary of the process, see [[Upgrade overview]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Check the requirements==&lt;br /&gt;
&lt;br /&gt;
Check that your server meets all requirements for {{Version}} in &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Server &amp;gt; [[Environment]]&#039;&#039;. &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;
Notes:&lt;br /&gt;
&lt;br /&gt;
* You can only upgrade to Moodle {{Version}} from Moodle 3.1 or later. If upgrading from earlier versions, you must [https://docs.moodle.org/31/en/Upgrading_to_Moodle_3.1 upgrade to 3.1] as a first step.&lt;br /&gt;
* The minimum PHP version has increased and is now 7.0.0.&lt;br /&gt;
* The PHP extension &#039;&#039;&#039;intl&#039;&#039;&#039; is now required in Moodle 3.4 (previously it was only recommended).&lt;br /&gt;
&lt;br /&gt;
==Before upgrading==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We advise that you test the upgrade first on a COPY of your production site, to make sure it works as you expect.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Consider setting the [[Upgrade key|upgrade key]] for your site.&lt;br /&gt;
&lt;br /&gt;
== Backup important data ==&lt;br /&gt;
&lt;br /&gt;
There are three areas that should be backed up before any upgrade:&lt;br /&gt;
#Moodle software (For example, everything in server/htdocs/moodle)&lt;br /&gt;
#Moodle uploaded files (For example, server/moodledata)&lt;br /&gt;
#Moodle database (For example, your Postgres or MySQL database dump)&lt;br /&gt;
&lt;br /&gt;
See [[Site backup]] for more specific information.&lt;br /&gt;
&lt;br /&gt;
== Check for plugin updates ==&lt;br /&gt;
&lt;br /&gt;
If you have [[Automatic updates deployment]] enabled, you will be able to update installed plugins automatically during the upgrade. Just make sure you check for available updates (via the button for it) at the Plugins check screen.&lt;br /&gt;
&lt;br /&gt;
If you are updating plugins manually, it is a good moment now to check in the [http://moodle.org/plugins Moodle Plugins directory] whether there is a {{Version}} version available for any plugins (including themes) that you have previously installed on your site. If so, download the plugin package. In the next step, you will copy it to the appropriate location in your Moodle code (see [[Installing plugins]]).&lt;br /&gt;
&lt;br /&gt;
The upgrade of the plugin will then happen as part of the Moodle upgrade process.&lt;br /&gt;
&lt;br /&gt;
If an out-of-date plugin causes your upgrade to fail, you can usually delete the plugin code rather than uninstalling it from within Moodle so that the data associated with it is not deleted.&lt;br /&gt;
&lt;br /&gt;
==Put your site into maintenance mode==&lt;br /&gt;
Before you begin upgrading your site, you should put it into [[Maintenance_mode | maintenance mode]] to stop any non-admin users from logging in. Then you should wait for any currently running cron processes to complete before proceeding.&lt;br /&gt;
&lt;br /&gt;
== Install the new Moodle software ==&lt;br /&gt;
You can fetch the current version of the software through &lt;br /&gt;
&lt;br /&gt;
wget http://sourceforge.net/projects/moodle/files/Moodle/stable{{Version2}}/moodle-latest-{{Version2}}.tgz&lt;br /&gt;
&lt;br /&gt;
=== Standard install package ===&lt;br /&gt;
&lt;br /&gt;
# Move your old Moodle software program files to another location. &#039;&#039;Do NOT copy new files over the old files.&#039;&#039;&lt;br /&gt;
# Unzip or unpack the upgrade file so that all the new Moodle software program files are in the location the old files used to be in on the server. Moodle will adjust SQL and moodledata if it needs to in the upgrade.&lt;br /&gt;
# Copy your old [[Configuration file|config.php file]] back to the new Moodle directory. &lt;br /&gt;
# As mentioned above, if you had installed any plugins on your site you should add them to the new code tree (Moodle directory structure) now. It is important to check that you get the correct version for your new version of Moodle. Be particularly careful that you do not overwrite any code in the new version of Moodle and that you place the plugin folders in the correct directory (the same directory that they are in in the current installation.)&lt;br /&gt;
# Your moodledata folder should be located separately to your Moodle code folder and, as such, should not need anything done to it.  Moodle 3.0 will throw a warning if it is located in a web accessible folder and the moodledata should never be located in the Moodle code folder.  If you are moving your installation to a new server or new location on your server, then you will need to follow the Migration documents.&lt;br /&gt;
&lt;br /&gt;
====Linux====&lt;br /&gt;
 mv moodle moodle.backup&lt;br /&gt;
 tar xvzf moodle-{{Version}}.tgz&lt;br /&gt;
&lt;br /&gt;
Next, copy across your config.php, any custom plugins, and your .htaccess file if you created one (&#039;&#039;&#039;check that custom plugins are the correct version for your new Moodle first&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
 cp moodle.backup/config.php moodle&lt;br /&gt;
 cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme&lt;br /&gt;
 cp -pr moodle.backup/mod/mymod moodle/mod/mymod&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to make moodle/config.php (and the rest of the source code) readable by your www server. Ideally the files should not be writeable by your server.&lt;br /&gt;
&lt;br /&gt;
chown -R www-data:www-data moodle (Linux debian - change to appropriate user and group for your OS version)&lt;br /&gt;
chmod -R 755 moodle&lt;br /&gt;
&lt;br /&gt;
If you use cron, take care that cron.php is executeable and uses the correct php command: &lt;br /&gt;
 chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755)&lt;br /&gt;
 copy the first line from cron.php (if it looks like &#039;#!/usr/local/bin/php&#039; or &#039;#!/usr/local/bin/php5.3&#039;, no need to copy &#039;&amp;lt;?php&#039;) &lt;br /&gt;
if necessary.  However, for a simple upgrade, there should be no need to change anything with cron.&lt;br /&gt;
&lt;br /&gt;
=== Using Git ===&lt;br /&gt;
&lt;br /&gt;
You can use Git for updating or upgrading your Moodle. See [[Git for Administrators]] for details.&lt;br /&gt;
&lt;br /&gt;
===Command line upgrade===&lt;br /&gt;
&lt;br /&gt;
On Linux servers, Moodle {{Version}} supports running the [[CLI|upgrade from the command line]], rather than through a web browser. This is likely to be more reliable, particularly for large sites.&lt;br /&gt;
&lt;br /&gt;
== Finishing the upgrade ==&lt;br /&gt;
&lt;br /&gt;
The last step is to trigger the upgrade processes within Moodle. &lt;br /&gt;
&lt;br /&gt;
If you put your site into Maintenance mode earlier; take it out now!&lt;br /&gt;
&lt;br /&gt;
To do this just go to &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Notifications&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Moodle will automatically detect the new version and perform all the SQL database or file system upgrades that are necessary. If there is anything it can&#039;t do itself (very rare) then you will see messages telling you what you need to do.&lt;br /&gt;
&lt;br /&gt;
Assuming all goes well (no error messages) then you can start using your new version of Moodle and enjoy the new features!&lt;br /&gt;
&lt;br /&gt;
Note: If you are running multiple servers then you should purge all caches manually (via &#039;&#039;Administration &amp;gt; Site administration &amp;gt; Development &amp;gt; Purge all caches&#039;&#039;) after completing the upgrade on all servers.&lt;br /&gt;
&lt;br /&gt;
===Fatal error: Maximum execution time of 30 seconds exceeded...===&lt;br /&gt;
&lt;br /&gt;
If your server uses a main language other than English, you may encounter a &#039;Fatal error: Maximum execution time of 30 seconds exceeded&#039; when you try to upgrade it. You can increase max_execution_time = 160 on php.ini to allow the scripts enough time to process the language update. Otherwise, you can switch to English as the default language before doing the upgrade and back to your original language after a succcessful upgrade. See the forum discussion at https://moodle.org/mod/forum/discuss.php?d=119598.&lt;br /&gt;
&lt;br /&gt;
==After upgrading==&lt;br /&gt;
&lt;br /&gt;
The config.php file from your installation should work fine but if you take a look at config-dist.php that came with Moodle 3.0 there are more/different options available (e.g. database drivers and settings). It&#039;s a good idea to map your old config.php settings to a new one based on the 3.0 config-dist.php.&lt;br /&gt;
&lt;br /&gt;
===Cron===&lt;br /&gt;
&lt;br /&gt;
Cron has received a major update (MDL-25499) and now has support for both scheduled and ad hoc tasks.&lt;br /&gt;
&lt;br /&gt;
The benefits of these changes are:&lt;br /&gt;
* The schedule for every task can be configured by the admin&lt;br /&gt;
* Tasks can run in parallel&lt;br /&gt;
* Cron processes use locking to prevent the same task running at the same time by different processes&lt;br /&gt;
* Clusters with multiple identical application nodes are supported, you can run cron on all of them&lt;br /&gt;
&lt;br /&gt;
A result of this is that cron can be run much more often, which means (for example) forum posts can be sent out sooner.  To take advantage of the new cron system it is now strongly recommended that administrators increase the frequency that cron is run to at least &#039;&#039;once per minute&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
You also may need to modify any automated scripts you have that are parsing the output from cron. It is no longer possible to simply monitor the output of cron for the string &amp;quot;Cron script completed correctly&amp;quot; (if that is what you were doing). An alternative is to monitor the output for the string &amp;quot;task failed:&amp;quot;. If you detect that a task is failing, [[Cron#Debugging_Scheduled_Tasks|here]] are some tips for debugging the failure. &lt;br /&gt;
&lt;br /&gt;
Before the upgrade, there may have been a cron task that was failing, which was preventing the rest of cron from being executed. A failure in any single task will no longer prevent the rest of the Moodle cron tasks from executing, so you may uncover previously masked bugs. It is a good idea to closely monitor the output from cron after the upgrade.&lt;br /&gt;
&lt;br /&gt;
===Assignments===&lt;br /&gt;
&lt;br /&gt;
The old assignment (2.2) module has been removed from core and has been replaced by a stub to support transparently remapping URLs and restoring course backups from the old module to the new one. &lt;br /&gt;
&lt;br /&gt;
If you are still using the old assignment (2.2) module, after upgrading to Moodle 3.0 all assignment (2.2) activities will be hidden. You need to run the [[Assignment upgrade tool]] to un-hide the activities.&lt;br /&gt;
&lt;br /&gt;
If you really, really need to keep using the old assignment (2.2) module, you should update the code to Moodle 3.0, and then replace the &amp;quot;mod/assignment&amp;quot; folder with the one from https://github.com/moodlehq/moodle-mod_assignment/releases before completing the upgrade.&lt;br /&gt;
&lt;br /&gt;
==Possible issues that may affect you in Moodle {{Version}}==&lt;br /&gt;
&lt;br /&gt;
* &#039;Site policies&#039; in the Site administration has been renamed &#039;[[Site security settings]]&#039;.&lt;br /&gt;
&lt;br /&gt;
* Moodle presets have changed. Most of the Bootstrap 4 variables have changed and the way bootstrap, font awesome and core scss is included. For more info on the Bootstrap 4 changes visit https://getbootstrap.com/docs/4.0/migration/&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
// Example code, place scss variables here.&lt;br /&gt;
// $font-size-base: 0.9375rem&lt;br /&gt;
&lt;br /&gt;
// Import FontAwesome.&lt;br /&gt;
@import &amp;quot;fontawesome&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Import All of Bootstrap.&lt;br /&gt;
@import &amp;quot;bootstrap&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Import Core moodle CSS.&lt;br /&gt;
@import &amp;quot;moodle&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Example code, place scss using Bootstrap mixins and extends here.&lt;br /&gt;
// .navbar {&lt;br /&gt;
//   @include shadow();&lt;br /&gt;
// }&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The PostgreSQL driver has been improved and, now, the &amp;lt;tt&amp;gt;get_recordset_xxx()&amp;lt;/tt&amp;gt; operations don&#039;t fetch all the records into memory for big (&amp;gt;100000) datasets. This can be configured or disabled using the new &amp;lt;tt&amp;gt;fetchbuffersize&amp;lt;/tt&amp;gt; [https://github.com/moodle/moodle/blob/f61ee4e857a894a5b8b69516b00be88ae499964b/config-dist.php#L73 dboption]. Note this is known to affect installations using pg_bouncer in transaction mode. See MDL-60174 for more information.&lt;br /&gt;
&lt;br /&gt;
See also the list of [https://tracker.moodle.org/issues/?jql=project%20%3D%20mdl%20AND%20resolution%20%3D%20fixed%20AND%20fixVersion%20in%20(%223.5%22)%20AND%20labels%20%3D%20ui_change%20 issues fixed in Moodle 3.5 which are labelled ui_change]. &lt;br /&gt;
&lt;br /&gt;
=== Moodle 3.1, 3.2, 3.3 and 3.4 improvements ===&lt;br /&gt;
&lt;br /&gt;
Depending on which version you are upgrading from, please see the section &#039;Possible issues that may affect you&#039; in the documentation&lt;br /&gt;
&lt;br /&gt;
* [https://docs.moodle.org/31/en/Upgrading Upgrading to Moodle 3.1]&lt;br /&gt;
* [https://docs.moodle.org/32/en/Upgrading Upgrading to Moodle 3.2]&lt;br /&gt;
* [https://docs.moodle.org/33/en/Upgrading Upgrading to Moodle 3.3]&lt;br /&gt;
* [https://docs.moodle.org/34/en/Upgrading Upgrading to Moodle 3.4]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[Installation]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation help forum] &lt;br /&gt;
* [[dev:Moodle {{Version}} release notes|Moodle {{Version}} release notes]]&lt;br /&gt;
&lt;br /&gt;
[[es:Actualización de moodle]]&lt;br /&gt;
[[fr:Mise à jour]]&lt;br /&gt;
[[ja:Moodleをアップグレードする]]&lt;br /&gt;
[[de:Aktualisierung von Moodle]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=131076</id>
		<title>Complete install packages for Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=131076"/>
		<updated>2018-05-19T18:50:12Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Complete install packages are available from Moodle.org&#039;s [https://download.moodle.org/windows/ Windows download page] and also from [https://bitnami.com/stacks Bitnami stacks]. The packages are designed for new installations on a standalone computer. All them use the popular [https://www.apachefriends.org/ XAMPP Apache Friends packages]. The complete install package can be used on a server, but &#039;&#039;&#039;it is not recommended that it be used as a production site&#039;&#039;&#039;. Please note Moodle.org&#039;s [http://download.moodle.org Standard install packages] only contain the Moodle code.&lt;br /&gt;
&lt;br /&gt;
This document provides instructions for using the Windows packages. Separate instructions are available for [[Complete Install Packages for Mac OS X|Mac OS X packages]].&lt;br /&gt;
&lt;br /&gt;
The complete install packages allow Moodle to be installed, along with the prerequisites that includes a web server, Apache, database, MySQL, scripting language, PHP and Moodle all wrapped in the Xampp-lite shell. Several versions of the complete install package are available. The instructions on the download page provide guidance on which version is likely to be most suitable.&lt;br /&gt;
&lt;br /&gt;
In short, complete install packages are designed to create a matched webserver and Moodle site on a standalone computer with minimal effort. &lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
:*256 MB RAM (minimum), 1GB RAM (recommended)&lt;br /&gt;
:*500 MB free Fixed Disk (more space will be needed depending on user uploads)&lt;br /&gt;
:* For old versions of Moodle:&lt;br /&gt;
:**Windows 98/ME (minimum)&lt;br /&gt;
:**Windows NT/2000/XP/2003 (recommended)&lt;br /&gt;
:* For Moodle 3.1 and later versions:&lt;br /&gt;
:**Windows Vista/7/8/10/2008/2012&lt;br /&gt;
:**Microsoft Visual C++ 2015 Redistributable package is required for PHP ([https://www.microsoft.com/en-us/download/details.aspx?id=48145 download link)]. This must be the &#039;&#039;&#039;vc_redist.x86.exe&#039;&#039;&#039; download as the PHP build is 32-bit.&lt;br /&gt;
&lt;br /&gt;
===Port 80 Conflict if Skype is already installed===&lt;br /&gt;
As the Moodle Windows package uses the same port (80) as [http://www.skype.com/en/ Skype] does, it will not work if the computer has Skype already installed.&lt;br /&gt;
&lt;br /&gt;
The fix is very simple: Exit Skype (don&#039;t just close the window), then start the Moodle Windows package. Once Moodle for Windows is running, it should be safe to start Skype again. If the local Moodle is using the port 80, Skype will automatically select a different port when it is run.&lt;br /&gt;
&lt;br /&gt;
===Vista and Windows 7/8/10===&lt;br /&gt;
&lt;br /&gt;
Packages generated for Moodle 3.1 and later versions should work with Vista/7/8/10 out of the box. They include PHP 7 and MariaDB instead of MySQL, resulting in a smoother experience than previous versions of the packages.&lt;br /&gt;
&lt;br /&gt;
People facing problems with the new packages should:&lt;br /&gt;
&lt;br /&gt;
:* Read the Requirements and Troubleshooting information, both here and in the package&#039;s README.txt file.&lt;br /&gt;
:* Report any consistent problem in the [https://tracker.moodle.org Moodle Tracker], so it can be investigated and, hopefully, fixed.&lt;br /&gt;
:* Consider installing a virtual machine (eg, [https://www.virtualbox.org/ VirtualBox]) with a windows or linux LAMP stack and then install Moodle there.&lt;br /&gt;
:* Use other Moodle-ready alternatives [https://moodlecloud.com out there].&lt;br /&gt;
&lt;br /&gt;
==Install complete package process==&lt;br /&gt;
The complete install package is a zip file that contains a webserver called [[Apache]], plus Moodle and Moodle&#039;s required [[MySQL]] database and [[PHP]] program. &lt;br /&gt;
&lt;br /&gt;
There are three basic parts to the this install process.  &lt;br /&gt;
#Download and unpack the complete install package. &lt;br /&gt;
#Start the webserver. &lt;br /&gt;
#Install Moodle using a web browser.&lt;br /&gt;
&lt;br /&gt;
===First create file structure===&lt;br /&gt;
====Download the package====&lt;br /&gt;
[http://download.moodle.org/windows Download Windows] packed-zip file from Moodle.&lt;br /&gt;
&lt;br /&gt;
====Unpack the package====&lt;br /&gt;
Unpack (extract files by clicking on) the zip file you downloaded to a drive or partition of your choice. The extract process will create three files (&amp;quot;Start Moodle&amp;quot;, &amp;quot;Stop Moodle&amp;quot;, and &amp;quot;README&amp;quot;) and a subfolder called &amp;quot;server&amp;quot;. &lt;br /&gt;
*Do NOT rename the &amp;quot;server&amp;quot; subfolder  &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; There will also be a folder under this server subfolder, called \moodle that holds the Moodle program.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Create a folder and extract the files there.  For example, you might have one folder called Moodle254 and another one called Moodle281 for different versions or purposes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Make path to &amp;quot;server&amp;quot; subfolder simple. Best way if it will be in drive root. Like &amp;quot;D:\moodle281\server&amp;quot;. A long path, especially with any strange symbols, can prevent XAMPP from working properly.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;NOTE:&#039;&#039; If you will be installing a server with a language other than English, the install process will need to download the corresponding language pack, which will take some time, and you will likely get a script timeout error. To prevent this, you will need to edit the server/php/php.ini file and change the line that has &#039;max_execution_time = 30&#039; into &#039;max_execution_time = 600&#039;.&lt;br /&gt;
&lt;br /&gt;
===Second - start the webserver===&lt;br /&gt;
Now you are ready to start the webserver.  Use the &amp;quot;Start Moodle.exe&amp;quot; file which you should find in the top directory. Once the &amp;quot;Start Moodle.exe&amp;quot; program is open, don&#039;t close it; use &amp;quot;Stop Moodle.exe&amp;quot; for that purpose.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; These programs control both Apache and MySQL programs that operate the webserver.  Some sites will individually start and stop Apache and MySQL with the Xampp bat files found in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; Alternatively, on a standalone computer with several potential webservers that might be running, you can use the &amp;quot;xampp_restart.exe&amp;quot; file in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; You can also add shortcuts to the commands that start and stop the site in your Windows &amp;quot;start&amp;quot; menu.&lt;br /&gt;
 &lt;br /&gt;
Now you are ready to start the Moodle installation.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Warning:&#039;&#039; Windows XP requires the msvcr71.dll library file in order to run Xampp. Installing the [http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en .Net 1.1 framework] (not .Net 2.0 and upper) could resolve it. You can also search for the file on Google, download it and copy it into the server/apache/bin folder.&lt;br /&gt;
&lt;br /&gt;
===Third - start Moodle installation===&lt;br /&gt;
Start your web browser and type &amp;lt;nowiki&amp;gt; localhost, or  http://127.0.0.1 or http://localhost &amp;lt;/nowiki&amp;gt;in the address bar. You will either start your first time Moodle installation or if it is already installed you will enter the Moodle site&#039;s [[Front Page]] or Login screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle_Setup_localhost_browser.jpg|frame|center|A browser&#039;s addressbar showing &amp;quot;localhost&amp;quot;. Click on  the green Goto arrow will go to the installed Moodle site.]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; After Moodle installs, put the site in your &amp;quot;favorites&amp;quot; or as a &amp;quot;bookmark&amp;quot; in you browser.&lt;br /&gt;
&lt;br /&gt;
====Set language====&lt;br /&gt;
The initial install page will be displayed after you type &amp;quot;localhost&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:C Install Windows 1.png|thumb|center|600px|Set initial language]]&lt;br /&gt;
&lt;br /&gt;
*Choose your preferred language (English is used in this example) and click the “Next” button.&lt;br /&gt;
&lt;br /&gt;
====Diagnostic results====&lt;br /&gt;
A diagnostic report is displayed – hopefully it will look like this, if not you may need to address some issues.&lt;br /&gt;
[[Image:Complete Windows Install 2.png|thumb|center|546px|Moodle liked and gave a Pass ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Moodle paths====&lt;br /&gt;
The paths for your Moodle installation are shown – if you are only using this as a local testing server, accept the ones that are shown on your screen.&lt;br /&gt;
&lt;br /&gt;
What you enter in the &amp;quot;Web Address&amp;quot; field depends on what you intend to use the new Moodle installation for. &lt;br /&gt;
If you are just going to use it for local testing, then use &#039;http://localhost&#039;. &lt;br /&gt;
If you are going to test the new installation on a LAN, and will be accessing it from other machines on that LAN, then put the private IP address or network name of the serving machine, followed by a forward slash and moodle: Web Address - http://192.168.1.1/moodle&lt;br /&gt;
If you are going to test the installation on the internet, then you will need to put the public ip address followed by a forward slash and moodle: http://your_ip_address/moodle or you can put your domain name here instead.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 3.png|thumb|center|600px|Installation paths]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Database configuration====&lt;br /&gt;
*In the next fields, we enter the database settings. The fields are populated with some suggested values.&lt;br /&gt;
&lt;br /&gt;
*We strongly recommend you place a user name and password in this screen. (Don&#039;t forget them).&lt;br /&gt;
&lt;br /&gt;
*DO NOT USE THE “ROOT” USER WITHOUT A PASSWORD FOR PRODUCTION INSTALLATIONS AS THIS CREATES A SECURITY VULNERABILITY&lt;br /&gt;
[[image:Complete install Windows 4.png|thumb|center|535px|Installation&#039;s database settings]]&lt;br /&gt;
&lt;br /&gt;
*When the fields have been populated, click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Check server====&lt;br /&gt;
The install process checks the server is installed. All the checks should pass as far as the [[#System_requirements|system requirements]] have been fulfilled. &lt;br /&gt;
[[image:Complete install Windows 5.png|thumb|center|535px|Check server environment screen]]&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Confirm initial language pack====&lt;br /&gt;
Moodle will now check to see if the language pack is available for the language you selected at the first step.  If it is not, Moodle will continue with the install in English.&lt;br /&gt;
[[image:Complete install Windows 6.png|thumb|center|535px|Language pack check]]&lt;br /&gt;
&lt;br /&gt;
====Confirm config.php====&lt;br /&gt;
Provided the Moodle folder is writable, a message confirming the configuration has been completed will be displayed.&lt;br /&gt;
[[image:Complete install Windows 7.png|thumb|center|549px|Confirmation that config.php has been created]]&lt;br /&gt;
&lt;br /&gt;
*Click the “ Continue” button to proceed.&lt;br /&gt;
&lt;br /&gt;
====Moodle copyright &amp;amp; agreement====&lt;br /&gt;
The Moodle copyright / license notices are displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 8.png|thumb|center|400px|Copyright notice and agreement]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Yes” button to continue.  &lt;br /&gt;
&lt;br /&gt;
====Current release and unattended option====&lt;br /&gt;
The current release information is shown. &lt;br /&gt;
&#039;&#039;&#039;Check off the unattended operations box&#039;&#039;&#039;. This will automatically advance through many screens.  If you would like to watch the install screen by screen, do not check this box and be prepared to press the &amp;quot;continute button&amp;quot; many times.&lt;br /&gt;
 &lt;br /&gt;
*Click the &amp;quot;Continue&amp;quot; button and wait.&lt;br /&gt;
[[Image:Complete install Windows 9.png|thumb|center|600px|Current release and &amp;quot;unattended&amp;quot; check box]]&lt;br /&gt;
&lt;br /&gt;
====Installation modules and blocks screens====&lt;br /&gt;
In most cases this will be followed by a series of screens that have a continue button on the bottom.  This process stops with Admin user profile settings which needs to be filled out.&lt;br /&gt;
&lt;br /&gt;
====Administrator user profile====&lt;br /&gt;
[[Image:Complete install Windows 10.png|thumb|center|The administrator&#039;s users profile screen]]&lt;br /&gt;
&lt;br /&gt;
Fill out the required fields.&lt;br /&gt;
*Click on &amp;quot;Save&amp;quot; to continue&lt;br /&gt;
&lt;br /&gt;
====Front page settings====&lt;br /&gt;
The next screen is the Front Page settings page.  There are two parts to it.&lt;br /&gt;
The first part will ask for your Full site name and a short name for the navigation bar. There is also a place for a description. You can change these later.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11a.png|thumb|center|The Moodle sites [[Front Page]] information]]&lt;br /&gt;
&lt;br /&gt;
The second part on the bottom instructs Moodle if you will disable the new user self [[Authentication|authentication]] through email process.  The default is to disable.  This can be changed later in the [[Site administration block|site administration block]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11ba.png|thumb|center|500px|Determine if users can create their own profiles when they log onto the side via email self authentication]]&lt;br /&gt;
&lt;br /&gt;
*Click on &amp;quot;Save changes&amp;quot; button to go to Moodle sites home page.&lt;br /&gt;
&lt;br /&gt;
====Moodle on====&lt;br /&gt;
&#039;&#039;&#039;Now you are ready to Moodle !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 12.png|thumb|center|Blank Front page of your new site]]&lt;br /&gt;
&lt;br /&gt;
The Site Administration block is on the left, the &amp;quot;Turn edit on&amp;quot; button in the upper right corner, withe the site description block just below it.&lt;br /&gt;
&lt;br /&gt;
===Congratulations - Moodle has been installed===&lt;br /&gt;
This finishes the installation of a complete package.   Type &amp;lt;nowiki&amp;gt;http://localhost&amp;lt;/nowiki&amp;gt; (or what ever you set for web address earlier in the setup!) in your browser and Moodle will open. &lt;br /&gt;
&lt;br /&gt;
Your next task will be to configure Moodle to meet your needs.  Don&#039;t worry, it is easy to change any of the settings now that Moodle is up and running.&lt;br /&gt;
*Check &#039;&#039;Settings &amp;gt; Site administration&#039;&#039; for further links.&lt;br /&gt;
&lt;br /&gt;
==More tips and cautions==&lt;br /&gt;
*For installation on a Windows 2000 or Windows 2003 production server it is good practice to perform a manual install (see the manual installation section in [[Windows_installation|Windows Installation]]). &lt;br /&gt;
&lt;br /&gt;
*After installing the Windows package, you may wish to add additional contributed modules and plugins.  Theset may involve more customization of configuration files.&lt;br /&gt;
&lt;br /&gt;
*The latest complete install package version components, may not be backwardly compatible. Always check version compatibility of each component if you intend to develop materials on a later version of Moodle than the version installed on your &amp;quot;main&amp;quot; Moodle site.  In short, complete install packages are designed for first time install on a &amp;quot;clean&amp;quot; machine.  &lt;br /&gt;
&lt;br /&gt;
== Security matters (A MUST READ!)==&lt;br /&gt;
&lt;br /&gt;
As mentioned before, XAMPP is not meant for production use but only for developers &lt;br /&gt;
in a development environment. The way XAMPP is configured is to be open as possible &lt;br /&gt;
and allowing the developer anything he/she wants. For development environments this &lt;br /&gt;
is great but in a production environment it could be fatal. Here a list of missing security &lt;br /&gt;
in XAMPP:&lt;br /&gt;
&lt;br /&gt;
The MySQL administrator (root) has no password.&lt;br /&gt;
The MySQL daemon is accessible via network.&lt;br /&gt;
Examples are accessible via network.&lt;br /&gt;
&lt;br /&gt;
To fix most of the security weaknesses simply call the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/security/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The root password for MySQL and also a XAMPP directory protection can be established here.&lt;br /&gt;
&lt;br /&gt;
Note that on the Windows installer package, some (all?) of these issues have been fixed already by default and the above link does not work.&lt;br /&gt;
&lt;br /&gt;
If in doubt, more info is [http://www.apachefriends.org/en/faq-xampp-windows.html  here]&lt;br /&gt;
&lt;br /&gt;
== Apache and MySQL tweaks ==&lt;br /&gt;
Most of the time it is not necessary to tweak Apache or MySQL after completing the complete install package. Nor is it necessary to individually start and stop them because that is what the Xampp_start, Xampp_restart and Xammp_stop files are for.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing Apache and MySQL as services===&lt;br /&gt;
(This is only for NT4 | Windows 2000 | Windows XP operating systems)&lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_installservice.bat =&lt;br /&gt;
==&amp;gt; Install Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_installservice.bat =&lt;br /&gt;
==&amp;gt; Install MySQL as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall MySQL as service   &lt;br /&gt;
&lt;br /&gt;
==&amp;gt; After all Service (un)installations, please restart your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apache Notes===&lt;br /&gt;
&lt;br /&gt;
You can use the apache_start and apache_stop bat files to start and stop apache from running. However the Xampp_start or Xampp_restart and Xampp_stop is recommended to turn on/off both Apache and MySQL.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
If you find that Apache is very flaky, with the page often not loading properly or even at all (especially on localhost), try adding these lines to the end of C:\your_moodle_installer_directory\apache\conf\httpd.conf &lt;br /&gt;
&lt;br /&gt;
  EnableSendfile Off&lt;br /&gt;
  EnableMMAP Off&lt;br /&gt;
  Win32DisableAcceptEx&lt;br /&gt;
&lt;br /&gt;
If You edit some .php files but browser still show old state of them, try to disable eAccelerator extension in \server\php\php.ini&lt;br /&gt;
&lt;br /&gt;
 [eAccelerator]&lt;br /&gt;
 ;extension=eaccelerator.dll&lt;br /&gt;
&lt;br /&gt;
===MySQL notes===&lt;br /&gt;
Again, the recommendation to start and stop the entire webserver is to use the xampp_start or Xampp_restart and the Xampp_stop.  The following maybe useful if you wish to tweak the system further.  Please be careful.&lt;br /&gt;
&lt;br /&gt;
(1) The MySQL server can be started by double-clicking (executing) mysql_start.bat. This file can be found in the same folder you installed xampp in, most likely this will be C:\xampplite\.  The exact path to this file is X:\xampplite\mysql_start.bat, where &amp;quot;X&amp;quot; indicates the letter of the drive you unpacked xampp into.This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.&lt;br /&gt;
    &lt;br /&gt;
Do not close the DOS window or you&#039;ll crash the server! To stop the server, please use mysql_shutdown.bat, which is located in the same directory.&lt;br /&gt;
&lt;br /&gt;
(2) To use the MySQL Daemon with &amp;quot;innodb&amp;quot; for better performance, &lt;br /&gt;
please edit the &amp;quot;my&amp;quot; (or &amp;quot;my.cnf&amp;quot;) file in the /xampplite/mysql/bin directory or for services the c:\my.cnf for windows NT/2000/XP. In that director, activate the&lt;br /&gt;
 &amp;quot;innodb_data_file_path=ibdata1:30M&amp;quot;&lt;br /&gt;
statement. Attention, &amp;quot;innodb&amp;quot; is not recommended for 95/98/ME.&lt;br /&gt;
    &lt;br /&gt;
:To use MySQL as Service for NT/2000/XP, simply copy the &amp;quot;my&amp;quot; / &amp;quot;my.cnf&amp;quot; file to C:\my, or C:\my.cnf. Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the &amp;quot;mysql_installservice.bat&amp;quot; in the mysql folder. 	&lt;br /&gt;
   	&lt;br /&gt;
&lt;br /&gt;
(3) MySQL starts with standard values for the user id and the password. The preset user id is &amp;quot;root&amp;quot;, the password is &amp;quot;&amp;quot; (= no password). To access MySQL via PHP with the preset values, you&#039;ll have to use the following syntax:&lt;br /&gt;
 mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;root&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
If you want to set a password for MySQL access, please use of mysqladmin.&lt;br /&gt;
To set the password &amp;quot;secret&amp;quot; for the user &amp;quot;root&amp;quot;, type the following:&lt;br /&gt;
   &lt;br /&gt;
  \xampplite\mysql\bin\mysqladmin -u root password secret&lt;br /&gt;
&lt;br /&gt;
Have a lot of fun! Viel Spaß! Bonne Chance!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.moodle.org/19/en/Installation_guide_-_Moodle_for_Windows_on_a_USB_Memory_Stick Installation guide - Moodle 1.9 for Windows on a USB Memory Stick]&lt;br /&gt;
*Return to [[Windows installation]]&lt;br /&gt;
*[[Windows 1 computer many servers |Multiple web servers, on 1 computer]] similar to windows installation page, with some tips&lt;br /&gt;
*[https://docs.moodle.org/en/Windows_installation_using_XAMPP#Troubleshooting Troubleshooting]if you are running Skype. &lt;br /&gt;
*[[Installing_AMP]] lots of XAMPP stuff.  XAMPP stands for X (cross platform), Apache, MySQL,PHP and Perl.  XAMPP used in Moodle does not include Perl. MAMP stands for Mac, Apache, MySQL and PHP.  &lt;br /&gt;
*[[Installation Package for OS X]] &lt;br /&gt;
&lt;br /&gt;
[[es:Paquetes para Instalación Completa para Windows]]&lt;br /&gt;
[[pl:Kompletne pakiety instalacyjne]]&lt;br /&gt;
[[de:Vollständiges Installationspaket für Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=131075</id>
		<title>Complete install packages for Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=131075"/>
		<updated>2018-05-19T18:44:16Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: remember system requirements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Complete install packages are available from Moodle.org&#039;s [https://download.moodle.org/windows/ Windows download page] and also from [https://bitnami.com/stacks Bitnami stacks]. The packages are designed for new installations on a standalone computer. All them use the popular [https://www.apachefriends.org/ XAMPP Apache Friends packages]. The complete install package can be used on a server, but &#039;&#039;&#039;it is not recommended that it be used as a production site&#039;&#039;&#039;. Please note Moodle.org&#039;s [http://download.moodle.org Standard install packages] only contain the Moodle code.&lt;br /&gt;
&lt;br /&gt;
This document provides instructions for using the Windows packages. Separate instructions are available for [[Complete Install Packages for Mac OS X|Mac OS X packages]].&lt;br /&gt;
&lt;br /&gt;
The complete install packages allow Moodle to be installed, along with the prerequisites that includes a web server, Apache, database, MySQL, scripting language, PHP and Moodle all wrapped in the Xampp-lite shell. Several versions of the complete install package are available. The instructions on the download page provide guidance on which version is likely to be most suitable.&lt;br /&gt;
&lt;br /&gt;
In short, complete install packages are designed to create a matched webserver and Moodle site on a standalone computer with minimal effort. &lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
:*256 MB RAM (minimum), 1GB RAM (recommended)&lt;br /&gt;
:*500 MB free Fixed Disk (more space will be needed depending on user uploads)&lt;br /&gt;
:* For old versions of Moodle:&lt;br /&gt;
:**Windows 98/ME (minimum)&lt;br /&gt;
:**Windows NT/2000/XP/2003 (recommended)&lt;br /&gt;
:* For Moodle 3.1 and later versions:&lt;br /&gt;
:**Windows Vista/7/8/10/2008/2012&lt;br /&gt;
:**Microsoft Visual C++ 2015 Redistributable package is required for PHP ([https://www.microsoft.com/en-us/download/details.aspx?id=48145 download link)]. This must be the &#039;&#039;&#039;vc_redist.x86.exe&#039;&#039;&#039; download as the PHP build is 32-bit.&lt;br /&gt;
&lt;br /&gt;
===Port 80 Conflict if Skype is already installed===&lt;br /&gt;
As the Moodle Windows package uses the same port (80) as [http://www.skype.com/en/ Skype] does, it will not work if the computer has Skype already installed.&lt;br /&gt;
&lt;br /&gt;
The fix is very simple: Exit Skype (don&#039;t just close the window), then start the Moodle Windows package. Once Moodle for Windows is running, it should be safe to start Skype again. If the local Moodle is using the port 80, Skype will automatically select a different port when it is run.&lt;br /&gt;
&lt;br /&gt;
===Vista and Windows 7/8/10===&lt;br /&gt;
&lt;br /&gt;
Packages generated for Moodle 3.1 and later versions should work with Vista/7/8/10 out of the box. They include PHP 7 and MariaDB instead of MySQL, resulting in a smoother experience than previous versions of the packages.&lt;br /&gt;
&lt;br /&gt;
People facing problems with the new packages should:&lt;br /&gt;
&lt;br /&gt;
:* Read the Requirements and Troubleshooting information, both here and in the package&#039;s README.txt file.&lt;br /&gt;
:* Report any consistent problem in the [https://tracker.moodle.org Moodle Tracker], so it can be investigated and, hopefully, fixed.&lt;br /&gt;
:* Consider installing a virtual machine (eg, [https://www.virtualbox.org/ VirtualBox]) with a windows or linux LAMP stack and then install Moodle there.&lt;br /&gt;
:* Use other Moodle-ready alternatives [https://moodlecloud.com out there].&lt;br /&gt;
&lt;br /&gt;
==Install complete package process==&lt;br /&gt;
The complete install package is a zip file that contains a webserver called [[Apache]], plus Moodle and Moodle&#039;s required [[MySQL]] database and [[PHP]] program. &lt;br /&gt;
&lt;br /&gt;
There are three basic parts to the this install process.  &lt;br /&gt;
#Download and unpack the complete install package. &lt;br /&gt;
#Start the webserver. &lt;br /&gt;
#Install Moodle using a web browser.&lt;br /&gt;
&lt;br /&gt;
===First create file structure===&lt;br /&gt;
====Download the package====&lt;br /&gt;
[http://download.moodle.org/windows Download Windows] packed-zip file from Moodle.&lt;br /&gt;
&lt;br /&gt;
====Unpack the package====&lt;br /&gt;
Unpack (extract files by clicking on) the zip file you downloaded to a drive or partition of your choice. The extract process will create three files (&amp;quot;Start Moodle&amp;quot;, &amp;quot;Stop Moodle&amp;quot;, and &amp;quot;README&amp;quot;) and a subfolder called &amp;quot;server&amp;quot;. &lt;br /&gt;
*Do NOT rename the &amp;quot;server&amp;quot; subfolder  &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; There will also be a folder under this server subfolder, called \moodle that holds the Moodle program.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Create a folder and extract the files there.  For example, you might have one folder called Moodle254 and another one called Moodle281 for different versions or purposes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Make path to &amp;quot;server&amp;quot; subfolder simple. Best way if it will be in drive root. Like &amp;quot;D:\moodle281\server&amp;quot;. A long path, especially with any strange symbols, can prevent XAMPP from working properly.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;NOTE:&#039;&#039; If you will be installing a server with a language other than English, the install process will need to download the corresponding language pack, which will take some time, and you will likely get a script timeout error. To prevent this, you will need to edit the server/php/php.ini file and change the line that has &#039;max_execution_time = 30&#039; into &#039;max_execution_time = 600&#039;.&lt;br /&gt;
&lt;br /&gt;
===Second - start the webserver===&lt;br /&gt;
Now you are ready to start the webserver.  Use the &amp;quot;Start Moodle.exe&amp;quot; file which you should find in the top directory. Once the &amp;quot;Start Moodle.exe&amp;quot; program is open, don&#039;t close it; use &amp;quot;Stop Moodle.exe&amp;quot; for that purpose.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; These programs control both Apache and MySQL programs that operate the webserver.  Some sites will individually start and stop Apache and MySQL with the Xampp bat files found in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; Alternatively, on a standalone computer with several potential webservers that might be running, you can use the &amp;quot;xampp_restart.exe&amp;quot; file in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; You can also add shortcuts to the commands that start and stop the site in your Windows &amp;quot;start&amp;quot; menu.&lt;br /&gt;
 &lt;br /&gt;
Now you are ready to start the Moodle installation.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Warning:&#039;&#039; Windows XP requires the msvcr71.dll library file in order to run Xampp. Installing the [http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en .Net 1.1 framework] (not .Net 2.0 and upper) could resolve it. You can also search for the file on Google, download it and copy it into the server/apache/bin folder.&lt;br /&gt;
&lt;br /&gt;
===Third - start Moodle installation===&lt;br /&gt;
Start your web browser and type &amp;lt;nowiki&amp;gt; localhost, or  http://127.0.0.1 or http://localhost &amp;lt;/nowiki&amp;gt;in the address bar. You will either start your first time Moodle installation or if it is already installed you will enter the Moodle site&#039;s [[Front Page]] or Login screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle_Setup_localhost_browser.jpg|frame|center|A browser&#039;s addressbar showing &amp;quot;localhost&amp;quot;. Click on  the green Goto arrow will go to the installed Moodle site.]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; After Moodle installs, put the site in your &amp;quot;favorites&amp;quot; or as a &amp;quot;bookmark&amp;quot; in you browser.&lt;br /&gt;
&lt;br /&gt;
====Set language====&lt;br /&gt;
The initial install page will be displayed after you type &amp;quot;localhost&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:C Install Windows 1.png|thumb|center|600px|Set initial language]]&lt;br /&gt;
&lt;br /&gt;
*Choose your preferred language (English is used in this example) and click the “Next” button.&lt;br /&gt;
&lt;br /&gt;
====Diagnostic results====&lt;br /&gt;
A diagnostic report is displayed – hopefully it will look like this, if not you may need to address some issues.&lt;br /&gt;
[[Image:Complete Windows Install 2.png|thumb|center|546px|Moodle liked and gave a Pass ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Moodle paths====&lt;br /&gt;
The paths for your Moodle installation are shown – if you are only using this as a local testing server, accept the ones that are shown on your screen.&lt;br /&gt;
&lt;br /&gt;
What you enter in the &amp;quot;Web Address&amp;quot; field depends on what you intend to use the new Moodle installation for. &lt;br /&gt;
If you are just going to use it for local testing, then use &#039;http://localhost&#039;. &lt;br /&gt;
If you are going to test the new installation on a LAN, and will be accessing it from other machines on that LAN, then put the private IP address or network name of the serving machine, followed by a forward slash and moodle: Web Address - http://192.168.1.1/moodle&lt;br /&gt;
If you are going to test the installation on the internet, then you will need to put the public ip address followed by a forward slash and moodle: http://your_ip_address/moodle or you can put your domain name here instead.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 3.png|thumb|center|600px|Installation paths]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Database configuration====&lt;br /&gt;
*In the next fields, we enter the database settings. The fields are populated with some suggested values.&lt;br /&gt;
&lt;br /&gt;
*We strongly recommend you place a user name and password in this screen. (Don&#039;t forget them).&lt;br /&gt;
&lt;br /&gt;
*DO NOT USE THE “ROOT” USER WITHOUT A PASSWORD FOR PRODUCTION INSTALLATIONS AS THIS CREATES A SECURITY VULNERABILITY&lt;br /&gt;
[[image:Complete install Windows 4.png|thumb|center|535px|Installation&#039;s database settings]]&lt;br /&gt;
&lt;br /&gt;
*When the fields have been populated, click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Check server====&lt;br /&gt;
The install process checks the server it installed. All the checks should pass as far as the [[#System_requirements|system requirements]] have been fulfilled. &lt;br /&gt;
[[image:Complete install Windows 5.png|thumb|center|535px|Check server environment screen]]&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Confirm initial language pack====&lt;br /&gt;
Moodle will now check to see if the language pack is available for the language you selected at the first step.  If it is not, Moodle will continue with the install in English.&lt;br /&gt;
[[image:Complete install Windows 6.png|thumb|center|535px|Language pack check]]&lt;br /&gt;
&lt;br /&gt;
====Confirm config.php====&lt;br /&gt;
Provided the Moodle folder is writable, a message confirming the configuration has been completed will be displayed.&lt;br /&gt;
[[image:Complete install Windows 7.png|thumb|center|549px|Confirmation that config.php has been created]]&lt;br /&gt;
&lt;br /&gt;
*Click the “ Continue” button to proceed.&lt;br /&gt;
&lt;br /&gt;
====Moodle copyright &amp;amp; agreement====&lt;br /&gt;
The Moodle copyright / license notices are displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 8.png|thumb|center|400px|Copyright notice and agreement]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Yes” button to continue.  &lt;br /&gt;
&lt;br /&gt;
====Current release and unattended option====&lt;br /&gt;
The current release information is shown. &lt;br /&gt;
&#039;&#039;&#039;Check off the unattended operations box&#039;&#039;&#039;. This will automatically advance through many screens.  If you would like to watch the install screen by screen, do not check this box and be prepared to press the &amp;quot;continute button&amp;quot; many times.&lt;br /&gt;
 &lt;br /&gt;
*Click the &amp;quot;Continue&amp;quot; button and wait.&lt;br /&gt;
[[Image:Complete install Windows 9.png|thumb|center|600px|Current release and &amp;quot;unattended&amp;quot; check box]]&lt;br /&gt;
&lt;br /&gt;
====Installation modules and blocks screens====&lt;br /&gt;
In most cases this will be followed by a series of screens that have a continue button on the bottom.  This process stops with Admin user profile settings which needs to be filled out.&lt;br /&gt;
&lt;br /&gt;
====Administrator user profile====&lt;br /&gt;
[[Image:Complete install Windows 10.png|thumb|center|The administrator&#039;s users profile screen]]&lt;br /&gt;
&lt;br /&gt;
Fill out the required fields.&lt;br /&gt;
*Click on &amp;quot;Save&amp;quot; to continue&lt;br /&gt;
&lt;br /&gt;
====Front page settings====&lt;br /&gt;
The next screen is the Front Page settings page.  There are two parts to it.&lt;br /&gt;
The first part will ask for your Full site name and a short name for the navigation bar. There is also a place for a description. You can change these later.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11a.png|thumb|center|The Moodle sites [[Front Page]] information]]&lt;br /&gt;
&lt;br /&gt;
The second part on the bottom instructs Moodle if you will disable the new user self [[Authentication|authentication]] through email process.  The default is to disable.  This can be changed later in the [[Site administration block|site administration block]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11ba.png|thumb|center|500px|Determine if users can create their own profiles when they log onto the side via email self authentication]]&lt;br /&gt;
&lt;br /&gt;
*Click on &amp;quot;Save changes&amp;quot; button to go to Moodle sites home page.&lt;br /&gt;
&lt;br /&gt;
====Moodle on====&lt;br /&gt;
&#039;&#039;&#039;Now you are ready to Moodle !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 12.png|thumb|center|Blank Front page of your new site]]&lt;br /&gt;
&lt;br /&gt;
The Site Administration block is on the left, the &amp;quot;Turn edit on&amp;quot; button in the upper right corner, withe the site description block just below it.&lt;br /&gt;
&lt;br /&gt;
===Congratulations - Moodle has been installed===&lt;br /&gt;
This finishes the installation of a complete package.   Type &amp;lt;nowiki&amp;gt;http://localhost&amp;lt;/nowiki&amp;gt; (or what ever you set for web address earlier in the setup!) in your browser and Moodle will open. &lt;br /&gt;
&lt;br /&gt;
Your next task will be to configure Moodle to meet your needs.  Don&#039;t worry, it is easy to change any of the settings now that Moodle is up and running.&lt;br /&gt;
*Check &#039;&#039;Settings &amp;gt; Site administration&#039;&#039; for further links.&lt;br /&gt;
&lt;br /&gt;
==More tips and cautions==&lt;br /&gt;
*For installation on a Windows 2000 or Windows 2003 production server it is good practice to perform a manual install (see the manual installation section in [[Windows_installation|Windows Installation]]). &lt;br /&gt;
&lt;br /&gt;
*After installing the Windows package, you may wish to add additional contributed modules and plugins.  Theset may involve more customization of configuration files.&lt;br /&gt;
&lt;br /&gt;
*The latest complete install package version components, may not be backwardly compatible. Always check version compatibility of each component if you intend to develop materials on a later version of Moodle than the version installed on your &amp;quot;main&amp;quot; Moodle site.  In short, complete install packages are designed for first time install on a &amp;quot;clean&amp;quot; machine.  &lt;br /&gt;
&lt;br /&gt;
== Security matters (A MUST READ!)==&lt;br /&gt;
&lt;br /&gt;
As mentioned before, XAMPP is not meant for production use but only for developers &lt;br /&gt;
in a development environment. The way XAMPP is configured is to be open as possible &lt;br /&gt;
and allowing the developer anything he/she wants. For development environments this &lt;br /&gt;
is great but in a production environment it could be fatal. Here a list of missing security &lt;br /&gt;
in XAMPP:&lt;br /&gt;
&lt;br /&gt;
The MySQL administrator (root) has no password.&lt;br /&gt;
The MySQL daemon is accessible via network.&lt;br /&gt;
Examples are accessible via network.&lt;br /&gt;
&lt;br /&gt;
To fix most of the security weaknesses simply call the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/security/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The root password for MySQL and also a XAMPP directory protection can be established here.&lt;br /&gt;
&lt;br /&gt;
Note that on the Windows installer package, some (all?) of these issues have been fixed already by default and the above link does not work.&lt;br /&gt;
&lt;br /&gt;
If in doubt, more info is [http://www.apachefriends.org/en/faq-xampp-windows.html  here]&lt;br /&gt;
&lt;br /&gt;
== Apache and MySQL tweaks ==&lt;br /&gt;
Most of the time it is not necessary to tweak Apache or MySQL after completing the complete install package. Nor is it necessary to individually start and stop them because that is what the Xampp_start, Xampp_restart and Xammp_stop files are for.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing Apache and MySQL as services===&lt;br /&gt;
(This is only for NT4 | Windows 2000 | Windows XP operating systems)&lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_installservice.bat =&lt;br /&gt;
==&amp;gt; Install Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_installservice.bat =&lt;br /&gt;
==&amp;gt; Install MySQL as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall MySQL as service   &lt;br /&gt;
&lt;br /&gt;
==&amp;gt; After all Service (un)installations, please restart your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apache Notes===&lt;br /&gt;
&lt;br /&gt;
You can use the apache_start and apache_stop bat files to start and stop apache from running. However the Xampp_start or Xampp_restart and Xampp_stop is recommended to turn on/off both Apache and MySQL.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
If you find that Apache is very flaky, with the page often not loading properly or even at all (especially on localhost), try adding these lines to the end of C:\your_moodle_installer_directory\apache\conf\httpd.conf &lt;br /&gt;
&lt;br /&gt;
  EnableSendfile Off&lt;br /&gt;
  EnableMMAP Off&lt;br /&gt;
  Win32DisableAcceptEx&lt;br /&gt;
&lt;br /&gt;
If You edit some .php files but browser still show old state of them, try to disable eAccelerator extension in \server\php\php.ini&lt;br /&gt;
&lt;br /&gt;
 [eAccelerator]&lt;br /&gt;
 ;extension=eaccelerator.dll&lt;br /&gt;
&lt;br /&gt;
===MySQL notes===&lt;br /&gt;
Again, the recommendation to start and stop the entire webserver is to use the xampp_start or Xampp_restart and the Xampp_stop.  The following maybe useful if you wish to tweak the system further.  Please be careful.&lt;br /&gt;
&lt;br /&gt;
(1) The MySQL server can be started by double-clicking (executing) mysql_start.bat. This file can be found in the same folder you installed xampp in, most likely this will be C:\xampplite\.  The exact path to this file is X:\xampplite\mysql_start.bat, where &amp;quot;X&amp;quot; indicates the letter of the drive you unpacked xampp into.This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.&lt;br /&gt;
    &lt;br /&gt;
Do not close the DOS window or you&#039;ll crash the server! To stop the server, please use mysql_shutdown.bat, which is located in the same directory.&lt;br /&gt;
&lt;br /&gt;
(2) To use the MySQL Daemon with &amp;quot;innodb&amp;quot; for better performance, &lt;br /&gt;
please edit the &amp;quot;my&amp;quot; (or &amp;quot;my.cnf&amp;quot;) file in the /xampplite/mysql/bin directory or for services the c:\my.cnf for windows NT/2000/XP. In that director, activate the&lt;br /&gt;
 &amp;quot;innodb_data_file_path=ibdata1:30M&amp;quot;&lt;br /&gt;
statement. Attention, &amp;quot;innodb&amp;quot; is not recommended for 95/98/ME.&lt;br /&gt;
    &lt;br /&gt;
:To use MySQL as Service for NT/2000/XP, simply copy the &amp;quot;my&amp;quot; / &amp;quot;my.cnf&amp;quot; file to C:\my, or C:\my.cnf. Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the &amp;quot;mysql_installservice.bat&amp;quot; in the mysql folder. 	&lt;br /&gt;
   	&lt;br /&gt;
&lt;br /&gt;
(3) MySQL starts with standard values for the user id and the password. The preset user id is &amp;quot;root&amp;quot;, the password is &amp;quot;&amp;quot; (= no password). To access MySQL via PHP with the preset values, you&#039;ll have to use the following syntax:&lt;br /&gt;
 mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;root&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
If you want to set a password for MySQL access, please use of mysqladmin.&lt;br /&gt;
To set the password &amp;quot;secret&amp;quot; for the user &amp;quot;root&amp;quot;, type the following:&lt;br /&gt;
   &lt;br /&gt;
  \xampplite\mysql\bin\mysqladmin -u root password secret&lt;br /&gt;
&lt;br /&gt;
Have a lot of fun! Viel Spaß! Bonne Chance!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.moodle.org/19/en/Installation_guide_-_Moodle_for_Windows_on_a_USB_Memory_Stick Installation guide - Moodle 1.9 for Windows on a USB Memory Stick]&lt;br /&gt;
*Return to [[Windows installation]]&lt;br /&gt;
*[[Windows 1 computer many servers |Multiple web servers, on 1 computer]] similar to windows installation page, with some tips&lt;br /&gt;
*[https://docs.moodle.org/en/Windows_installation_using_XAMPP#Troubleshooting Troubleshooting]if you are running Skype. &lt;br /&gt;
*[[Installing_AMP]] lots of XAMPP stuff.  XAMPP stands for X (cross platform), Apache, MySQL,PHP and Perl.  XAMPP used in Moodle does not include Perl. MAMP stands for Mac, Apache, MySQL and PHP.  &lt;br /&gt;
*[[Installation Package for OS X]] &lt;br /&gt;
&lt;br /&gt;
[[es:Paquetes para Instalación Completa para Windows]]&lt;br /&gt;
[[pl:Kompletne pakiety instalacyjne]]&lt;br /&gt;
[[de:Vollständiges Installationspaket für Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=129734</id>
		<title>Complete install packages for Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=129734"/>
		<updated>2017-12-27T01:10:04Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: MDLSITE-4964 - phpmyadmin does not come with moodle windows installers since ages ago. Deleting any reference to it.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Complete install packages are available from Moodle.org&#039;s [https://download.moodle.org/windows/ Windows download page] and also from [https://bitnami.com/stacks Bitnami stacks]. The packages are designed for new installations on a standalone computer. All them use the popular [https://www.apachefriends.org/ XAMPP Apache Friends packages]. The complete install package can be used on a server, but &#039;&#039;&#039;it is not recommended that it be used as a production site&#039;&#039;&#039;. Please note Moodle.org&#039;s [http://download.moodle.org Standard install packages] only contain the Moodle code.&lt;br /&gt;
&lt;br /&gt;
This document provides instructions for using the Windows packages. Separate instructions are available for [[Complete Install Packages for Mac OS X|Mac OS X packages]].&lt;br /&gt;
&lt;br /&gt;
The complete install packages allow Moodle to be installed, along with the prerequisites that includes a web server, Apache, database, MySQL, scripting language, PHP and Moodle all wrapped in the Xampp-lite shell. Several versions of the complete install package are available. The instructions on the download page provide guidance on which version is likely to be most suitable.&lt;br /&gt;
&lt;br /&gt;
In short, complete install packages are designed to create a matched webserver and Moodle site on a standalone computer with minimal effort. &lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
:*256 MB RAM (minimum), 1GB RAM (recommended)&lt;br /&gt;
:*500 MB free Fixed Disk (more space will be needed depending on user uploads)&lt;br /&gt;
:* For old versions of Moodle:&lt;br /&gt;
:**Windows 98/ME (minimum)&lt;br /&gt;
:**Windows NT/2000/XP/2003 (recommended)&lt;br /&gt;
:* For Moodle 3.1 and later versions:&lt;br /&gt;
:**Windows Vista/7/8/10/2008/2012&lt;br /&gt;
:**Microsoft Visual C++ 2015 Redistributable package is required for PHP ([https://www.microsoft.com/en-us/download/details.aspx?id=48145 download link)].&lt;br /&gt;
&lt;br /&gt;
===Port 80 Conflict if Skype is already installed===&lt;br /&gt;
As the Moodle Windows package uses the same port (80) as [http://www.skype.com/en/ Skype] does, it will not work if the computer has Skype already installed.&lt;br /&gt;
&lt;br /&gt;
The fix is very simple: Exit Skype (don&#039;t just close the window), then start the Moodle Windows package. Once Moodle for Windows is running, it should be safe to start Skype again. If the local Moodle is using the port 80, Skype will automatically select a different port when it is run.&lt;br /&gt;
&lt;br /&gt;
===Vista and Windows 7/8/10===&lt;br /&gt;
&lt;br /&gt;
Packages generated for Moodle 3.1 and later versions should work with Vista/7/8/10 out of the box. They include PHP 7 and MariaDB instead of MySQL, resulting in a smoother experience than previous versions of the packages.&lt;br /&gt;
&lt;br /&gt;
People facing problems with the new packages should:&lt;br /&gt;
&lt;br /&gt;
:* Read the Requirements and Troubleshooting information, both here and in the package&#039;s README.txt file.&lt;br /&gt;
:* Report any consistent problem in the [https://tracker.moodle.org Moodle Tracker], so it can be investigated and, hopefully, fixed.&lt;br /&gt;
:* Consider installing a virtual machine (eg, [https://www.virtualbox.org/ VirtualBox]) with a windows or linux LAMP stack and then install Moodle there.&lt;br /&gt;
:* Use other Moodle-ready alternatives [https://moodlecloud.com out there].&lt;br /&gt;
&lt;br /&gt;
==Install complete package process==&lt;br /&gt;
The complete install package is a zip file that contains a webserver called [[Apache]], plus Moodle and Moodle&#039;s required [[MySQL]] database and [[PHP]] program. &lt;br /&gt;
&lt;br /&gt;
There are three basic parts to the this install process.  &lt;br /&gt;
#Download and unpack the complete install package. &lt;br /&gt;
#Start the webserver. &lt;br /&gt;
#Install Moodle using a web browser.&lt;br /&gt;
&lt;br /&gt;
===First create file structure===&lt;br /&gt;
====Download the package====&lt;br /&gt;
[http://download.moodle.org/windows Download Windows] packed-zip file from Moodle.&lt;br /&gt;
&lt;br /&gt;
====Unpack the package====&lt;br /&gt;
Unpack (extract files by clicking on) the zip file you downloaded to a drive or partition of your choice. The extract process will create three files (&amp;quot;Start Moodle&amp;quot;, &amp;quot;Stop Moodle&amp;quot;, and &amp;quot;README&amp;quot;) and a subfolder called &amp;quot;server&amp;quot;. &lt;br /&gt;
*Do NOT rename the &amp;quot;server&amp;quot; subfolder  &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; There will also be a folder under this server subfolder, called \moodle that holds the Moodle program.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Create a folder and extract the files there.  For example, you might have one folder called Moodle254 and another one called Moodle281 for different versions or purposes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Make path to &amp;quot;server&amp;quot; subfolder simple. Best way if it will be in drive root. Like &amp;quot;D:\moodle281\server&amp;quot;. A long path, especially with any strange symbols, can prevent XAMPP from working properly.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;NOTE:&#039;&#039; If you will be installing a server with a language other than English, the install process will need to download the corresponding language pack, which will take some time, and you will likely get a script timeout error. To prevent this, you will need to edit the server/php/php.ini file and change the line that has &#039;max_execution_time = 30&#039; into &#039;max_execution_time = 600&#039;.&lt;br /&gt;
&lt;br /&gt;
===Second - start the webserver===&lt;br /&gt;
Now you are ready to start the webserver.  Use the &amp;quot;Start Moodle.exe&amp;quot; file which you should find in the top directory. Once the &amp;quot;Start Moodle.exe&amp;quot; program is open, don&#039;t close it; use &amp;quot;Stop Moodle.exe&amp;quot; for that purpose.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; These programs control both Apache and MySQL programs that operate the webserver.  Some sites will individually start and stop Apache and MySQL with the Xampp bat files found in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; Alternatively, on a standalone computer with several potential webservers that might be running, you can use the &amp;quot;xampp_restart.exe&amp;quot; file in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; You can also add shortcuts to the commands that start and stop the site in your Windows &amp;quot;start&amp;quot; menu.&lt;br /&gt;
 &lt;br /&gt;
Now you are ready to start the Moodle installation.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Warning:&#039;&#039; Windows XP requires the msvcr71.dll library file in order to run Xampp. Installing the [http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en .Net 1.1 framework] (not .Net 2.0 and upper) could resolve it. You can also search for the file on Google, download it and copy it into the server/apache/bin folder.&lt;br /&gt;
&lt;br /&gt;
===Third - start Moodle installation===&lt;br /&gt;
Start your web browser and type &amp;lt;nowiki&amp;gt; localhost, or  http://127.0.0.1 or http://localhost &amp;lt;/nowiki&amp;gt;in the address bar. You will either start your first time Moodle installation or if it is already installed you will enter the Moodle site&#039;s [[Front Page]] or Login screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle_Setup_localhost_browser.jpg|frame|center|A browser&#039;s addressbar showing &amp;quot;localhost&amp;quot;. Click on  the green Goto arrow will go to the installed Moodle site.]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; After Moodle installs, put the site in your &amp;quot;favorites&amp;quot; or as a &amp;quot;bookmark&amp;quot; in you browser.&lt;br /&gt;
&lt;br /&gt;
====Set language====&lt;br /&gt;
The initial install page will be displayed after you type &amp;quot;localhost&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:C Install Windows 1.png|thumb|center|600px|Set initial language]]&lt;br /&gt;
&lt;br /&gt;
*Choose your preferred language (English is used in this example) and click the “Next” button.&lt;br /&gt;
&lt;br /&gt;
====Diagnostic results====&lt;br /&gt;
A diagnostic report is displayed – hopefully it will look like this, if not you may need to address some issues.&lt;br /&gt;
[[Image:Complete Windows Install 2.png|thumb|center|546px|Moodle liked and gave a Pass ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Moodle paths====&lt;br /&gt;
The paths for your Moodle installation are shown – if you are only using this as a local testing server, accept the ones that are shown on your screen.&lt;br /&gt;
&lt;br /&gt;
What you enter in the &amp;quot;Web Address&amp;quot; field depends on what you intend to use the new Moodle installation for. &lt;br /&gt;
If you are just going to use it for local testing, then use &#039;http://localhost&#039;. &lt;br /&gt;
If you are going to test the new installation on a LAN, and will be accessing it from other machines on that LAN, then put the private IP address or network name of the serving machine, followed by a forward slash and moodle: Web Address - http://192.168.1.1/moodle&lt;br /&gt;
If you are going to test the installation on the internet, then you will need to put the public ip address followed by a forward slash and moodle: http://your_ip_address/moodle or you can put your domain name here instead.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 3.png|thumb|center|600px|Installation paths]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Database configuration====&lt;br /&gt;
*In the next fields, we enter the database settings. The fields are populated with some suggested values.&lt;br /&gt;
&lt;br /&gt;
*We strongly recommend you place a user name and password in this screen. (Don&#039;t forget them).&lt;br /&gt;
&lt;br /&gt;
*DO NOT USE THE “ROOT” USER WITHOUT A PASSWORD FOR PRODUCTION INSTALLATIONS AS THIS CREATES A SECURITY VULNERABILITY&lt;br /&gt;
[[image:Complete install Windows 4.png|thumb|center|535px|Installation&#039;s database settings]]&lt;br /&gt;
&lt;br /&gt;
*When the fields have been populated, click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Check server====&lt;br /&gt;
The install process checks the server it installed.&lt;br /&gt;
[[image:Complete install Windows 5.png|thumb|center|535px|Check server environment screen]]&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Confirm initial language pack====&lt;br /&gt;
Moodle will now check to see if the language pack is available for the language you selected at the first step.  If it is not, Moodle will continue with the install in English.&lt;br /&gt;
[[image:Complete install Windows 6.png|thumb|center|535px|Language pack check]]&lt;br /&gt;
&lt;br /&gt;
====Confirm config.php====&lt;br /&gt;
Provided the Moodle folder is writable, a message confirming the configuration has been completed will be displayed.&lt;br /&gt;
[[image:Complete install Windows 7.png|thumb|center|549px|Confirmation that config.php has been created]]&lt;br /&gt;
&lt;br /&gt;
*Click the “ Continue” button to proceed.&lt;br /&gt;
&lt;br /&gt;
====Moodle copyright &amp;amp; agreement====&lt;br /&gt;
The Moodle copyright / license notices are displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 8.png|thumb|center|400px|Copyright notice and agreement]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Yes” button to continue.  &lt;br /&gt;
&lt;br /&gt;
====Current release and unattended option====&lt;br /&gt;
The current release information is shown. &lt;br /&gt;
&#039;&#039;&#039;Check off the unattended operations box&#039;&#039;&#039;. This will automatically advance through many screens.  If you would like to watch the install screen by screen, do not check this box and be prepared to press the &amp;quot;continute button&amp;quot; many times.&lt;br /&gt;
 &lt;br /&gt;
*Click the &amp;quot;Continue&amp;quot; button and wait.&lt;br /&gt;
[[Image:Complete install Windows 9.png|thumb|center|600px|Current release and &amp;quot;unattended&amp;quot; check box]]&lt;br /&gt;
&lt;br /&gt;
====Installation modules and blocks screens====&lt;br /&gt;
In most cases this will be followed by a series of screens that have a continue button on the bottom.  This process stops with Admin user profile settings which needs to be filled out.&lt;br /&gt;
&lt;br /&gt;
====Administrator user profile====&lt;br /&gt;
[[Image:Complete install Windows 10.png|thumb|center|The administrator&#039;s users profile screen]]&lt;br /&gt;
&lt;br /&gt;
Fill out the required fields.&lt;br /&gt;
*Click on &amp;quot;Save&amp;quot; to continue&lt;br /&gt;
&lt;br /&gt;
====Front page settings====&lt;br /&gt;
The next screen is the Front Page settings page.  There are two parts to it.&lt;br /&gt;
The first part will ask for your Full site name and a short name for the navigation bar. There is also a place for a description. You can change these later.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11a.png|thumb|center|The Moodle sites [[Front Page]] information]]&lt;br /&gt;
&lt;br /&gt;
The second part on the bottom instructs Moodle if you will disable the new user self [[Authentication|authentication]] through email process.  The default is to disable.  This can be changed later in the [[Site administration block|site administration block]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11ba.png|thumb|center|500px|Determine if users can create their own profiles when they log onto the side via email self authentication]]&lt;br /&gt;
&lt;br /&gt;
*Click on &amp;quot;Save changes&amp;quot; button to go to Moodle sites home page.&lt;br /&gt;
&lt;br /&gt;
====Moodle on====&lt;br /&gt;
&#039;&#039;&#039;Now you are ready to Moodle !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 12.png|thumb|center|Blank Front page of your new site]]&lt;br /&gt;
&lt;br /&gt;
The Site Administration block is on the left, the &amp;quot;Turn edit on&amp;quot; button in the upper right corner, withe the site description block just below it.&lt;br /&gt;
&lt;br /&gt;
===Congratulations - Moodle has been installed===&lt;br /&gt;
This finishes the installation of a complete package.   Type &amp;lt;nowiki&amp;gt;http://localhost&amp;lt;/nowiki&amp;gt; (or what ever you set for web address earlier in the setup!) in your browser and Moodle will open. &lt;br /&gt;
&lt;br /&gt;
Your next task will be to configure Moodle to meet your needs.  Don&#039;t worry, it is easy to change any of the settings now that Moodle is up and running.&lt;br /&gt;
*Check &#039;&#039;Settings &amp;gt; Site administration&#039;&#039; for further links.&lt;br /&gt;
&lt;br /&gt;
==More tips and cautions==&lt;br /&gt;
*For installation on a Windows 2000 or Windows 2003 production server it is good practice to perform a manual install (see the manual installation section in [[Windows_installation|Windows Installation]]). &lt;br /&gt;
&lt;br /&gt;
*After installing the Windows package, you may wish to add additional contributed modules and plugins.  Theset may involve more customization of configuration files.&lt;br /&gt;
&lt;br /&gt;
*The latest complete install package version components, may not be backwardly compatible. Always check version compatibility of each component if you intend to develop materials on a later version of Moodle than the version installed on your &amp;quot;main&amp;quot; Moodle site.  In short, complete install packages are designed for first time install on a &amp;quot;clean&amp;quot; machine.  &lt;br /&gt;
&lt;br /&gt;
== Security matters (A MUST READ!)==&lt;br /&gt;
&lt;br /&gt;
As mentioned before, XAMPP is not meant for production use but only for developers &lt;br /&gt;
in a development environment. The way XAMPP is configured is to be open as possible &lt;br /&gt;
and allowing the developer anything he/she wants. For development environments this &lt;br /&gt;
is great but in a production environment it could be fatal. Here a list of missing security &lt;br /&gt;
in XAMPP:&lt;br /&gt;
&lt;br /&gt;
The MySQL administrator (root) has no password.&lt;br /&gt;
The MySQL daemon is accessible via network.&lt;br /&gt;
Examples are accessible via network.&lt;br /&gt;
&lt;br /&gt;
To fix most of the security weaknesses simply call the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/security/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The root password for MySQL and also a XAMPP directory protection can be established here.&lt;br /&gt;
&lt;br /&gt;
Note that on the Windows installer package, some (all?) of these issues have been fixed already by default and the above link does not work.&lt;br /&gt;
&lt;br /&gt;
If in doubt, more info is [http://www.apachefriends.org/en/faq-xampp-windows.html  here]&lt;br /&gt;
&lt;br /&gt;
== Apache and MySQL tweaks ==&lt;br /&gt;
Most of the time it is not necessary to tweak Apache or MySQL after completing the complete install package. Nor is it necessary to individually start and stop them because that is what the Xampp_start, Xampp_restart and Xammp_stop files are for.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing Apache and MySQL as services===&lt;br /&gt;
(This is only for NT4 | Windows 2000 | Windows XP operating systems)&lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_installservice.bat =&lt;br /&gt;
==&amp;gt; Install Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_installservice.bat =&lt;br /&gt;
==&amp;gt; Install MySQL as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall MySQL as service   &lt;br /&gt;
&lt;br /&gt;
==&amp;gt; After all Service (un)installations, please restart your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apache Notes===&lt;br /&gt;
&lt;br /&gt;
You can use the apache_start and apache_stop bat files to start and stop apache from running. However the Xampp_start or Xampp_restart and Xampp_stop is recommended to turn on/off both Apache and MySQL.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
If you find that Apache is very flaky, with the page often not loading properly or even at all (especially on localhost), try adding these lines to the end of C:\your_moodle_installer_directory\apache\conf\httpd.conf &lt;br /&gt;
&lt;br /&gt;
  EnableSendfile Off&lt;br /&gt;
  EnableMMAP Off&lt;br /&gt;
  Win32DisableAcceptEx&lt;br /&gt;
&lt;br /&gt;
If You edit some .php files but browser still show old state of them, try to disable eAccelerator extension in \server\php\php.ini&lt;br /&gt;
&lt;br /&gt;
 [eAccelerator]&lt;br /&gt;
 ;extension=eaccelerator.dll&lt;br /&gt;
&lt;br /&gt;
===MySQL notes===&lt;br /&gt;
Again, the recommendation to start and stop the entire webserver is to use the xampp_start or Xampp_restart and the Xampp_stop.  The following maybe useful if you wish to tweak the system further.  Please be careful.&lt;br /&gt;
&lt;br /&gt;
(1) The MySQL server can be started by double-clicking (executing) mysql_start.bat. This file can be found in the same folder you installed xampp in, most likely this will be C:\xampplite\.  The exact path to this file is X:\xampplite\mysql_start.bat, where &amp;quot;X&amp;quot; indicates the letter of the drive you unpacked xampp into.This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.&lt;br /&gt;
    &lt;br /&gt;
Do not close the DOS window or you&#039;ll crash the server! To stop the server, please use mysql_shutdown.bat, which is located in the same directory.&lt;br /&gt;
&lt;br /&gt;
(2) To use the MySQL Daemon with &amp;quot;innodb&amp;quot; for better performance, &lt;br /&gt;
please edit the &amp;quot;my&amp;quot; (or &amp;quot;my.cnf&amp;quot;) file in the /xampplite/mysql/bin directory or for services the c:\my.cnf for windows NT/2000/XP. In that director, activate the&lt;br /&gt;
 &amp;quot;innodb_data_file_path=ibdata1:30M&amp;quot;&lt;br /&gt;
statement. Attention, &amp;quot;innodb&amp;quot; is not recommended for 95/98/ME.&lt;br /&gt;
    &lt;br /&gt;
:To use MySQL as Service for NT/2000/XP, simply copy the &amp;quot;my&amp;quot; / &amp;quot;my.cnf&amp;quot; file to C:\my, or C:\my.cnf. Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the &amp;quot;mysql_installservice.bat&amp;quot; in the mysql folder. 	&lt;br /&gt;
   	&lt;br /&gt;
&lt;br /&gt;
(3) MySQL starts with standard values for the user id and the password. The preset user id is &amp;quot;root&amp;quot;, the password is &amp;quot;&amp;quot; (= no password). To access MySQL via PHP with the preset values, you&#039;ll have to use the following syntax:&lt;br /&gt;
 mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;root&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
If you want to set a password for MySQL access, please use of mysqladmin.&lt;br /&gt;
To set the password &amp;quot;secret&amp;quot; for the user &amp;quot;root&amp;quot;, type the following:&lt;br /&gt;
   &lt;br /&gt;
  \xampplite\mysql\bin\mysqladmin -u root password secret&lt;br /&gt;
&lt;br /&gt;
Have a lot of fun! Viel Spaß! Bonne Chance!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.moodle.org/19/en/Installation_guide_-_Moodle_for_Windows_on_a_USB_Memory_Stick Installation guide - Moodle 1.9 for Windows on a USB Memory Stick]&lt;br /&gt;
*Return to [[Windows installation]]&lt;br /&gt;
*[[Windows 1 computer many servers |Multiple web servers, on 1 computer]] similar to windows installation page, with some tips&lt;br /&gt;
*[https://docs.moodle.org/en/Windows_installation_using_XAMPP#Troubleshooting Troubleshooting]if you are running Skype. &lt;br /&gt;
*[[Installing_AMP]] lots of XAMPP stuff.  XAMPP stands for X (cross platform), Apache, MySQL,PHP and Perl.  XAMPP used in Moodle does not include Perl. MAMP stands for Mac, Apache, MySQL and PHP.  &lt;br /&gt;
*[[Installation Package for OS X]] &lt;br /&gt;
&lt;br /&gt;
[[es:Paquetes para Instalación Completa para Windows]]&lt;br /&gt;
[[pl:Kompletne pakiety instalacyjne]]&lt;br /&gt;
[[de:Vollständiges Installationspaket für Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/site_not_https&amp;diff=127404</id>
		<title>admin/environment/custom check/site not https</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/site_not_https&amp;diff=127404"/>
		<updated>2017-04-17T14:33:52Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Stronk7 moved page admin/environment/custom check/check is https to admin/environment/custom check/site not https without leaving a redirect: because I&amp;#039;ve changed the name of the environment check in MDL-54901&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect[[Transitioning to HTTPS]]&lt;br /&gt;
&lt;br /&gt;
[[es:HTTPS]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/site_not_https&amp;diff=127403</id>
		<title>admin/environment/custom check/site not https</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/site_not_https&amp;diff=127403"/>
		<updated>2017-04-17T12:10:52Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: WIP on https://tracker.moodle.org/browse/MDL-54901 ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect[[Transitioning to HTTPS]]&lt;br /&gt;
&lt;br /&gt;
[[es:HTTPS]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/check_ssl_wwwroot&amp;diff=127402</id>
		<title>admin/environment/custom check/check ssl wwwroot</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/check_ssl_wwwroot&amp;diff=127402"/>
		<updated>2017-04-17T11:57:34Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: I really think that HTTPS was a better target, but as far as we have wgMaxRedirects = 1, cannot get multiple redirects working, it seems. So straight redirecting here.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect[[Transitioning to HTTPS]]&lt;br /&gt;
&lt;br /&gt;
[[es:HTTPS]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/check_ssl_wwwroot&amp;diff=127401</id>
		<title>admin/environment/custom check/check ssl wwwroot</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=admin/environment/custom_check/check_ssl_wwwroot&amp;diff=127401"/>
		<updated>2017-04-17T11:51:19Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Working on MDL-54901 ... testing ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#Redirect[[HTTPS]]&lt;br /&gt;
&lt;br /&gt;
[[es:HTTPS]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125450</id>
		<title>Complete install packages for Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125450"/>
		<updated>2016-09-27T10:08:25Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: /* Vista and Windows 7/8/10 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Complete install packages are available from Moodle.org&#039;s [https://download.moodle.org/windows/ Windows download page] and also from [https://bitnami.com/stacks Bitnami stacks]. The packages are designed for new installations on a standalone computer. All them use the popular [https://www.apachefriends.org/ XAMPP Apache Friends packages]. The complete install package can be used on a server, but &#039;&#039;&#039;it is not recommended that it be used as a production site&#039;&#039;&#039;. Please note Moodle.org&#039;s [http://download.moodle.org Standard install packages] only contain the Moodle code.&lt;br /&gt;
&lt;br /&gt;
This document provides instructions for using the Windows packages. Separate instructions are available for [[Complete Install Packages for Mac OS X|Mac OS X packages]].&lt;br /&gt;
&lt;br /&gt;
The complete install packages allow Moodle to be installed, along with the prerequisites that includes a web server, Apache, database, MySQL, scripting language, PHP, an administration tool, phpMyAdmin and Moodle all wrapped in the Xampp-lite shell. Several versions of the complete install package are available. The instructions on the download page provide guidance on which version is likely to be most suitable.&lt;br /&gt;
&lt;br /&gt;
In short, complete install packages are designed to create a matched webserver and Moodle site on a standalone computer with minimal effort. &lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
:*256 MB RAM (minimum), 1GB RAM (recommended)&lt;br /&gt;
:*500 MB free Fixed Disk (more space will be needed depending on user uploads)&lt;br /&gt;
:* For old versions of Moodle:&lt;br /&gt;
:**Windows 98/ME (minimum)&lt;br /&gt;
:**Windows NT/2000/XP/2003 (recommended)&lt;br /&gt;
:* For Moodle 3.1 and later versions:&lt;br /&gt;
:**Windows Vista/7/8/10/2008/2012&lt;br /&gt;
:**Microsoft Visual C++ 2015 Redistributable package is required for PHP ([https://www.microsoft.com/en-us/download/details.aspx?id=48145 download link)].&lt;br /&gt;
&lt;br /&gt;
===Port 80 Conflict if Skype is already installed===&lt;br /&gt;
As the Moodle Windows package uses the same port (80) as [http://www.skype.com/en/ Skype] does, it will not work if the computer has Skype already installed.&lt;br /&gt;
&lt;br /&gt;
The fix is very simple: Exit Skype (don&#039;t just close the window), then start the Moodle Windows package. Once Moodle for Windows is running, it should be safe to start Skype again. If the local Moodle is using the port 80, Skype will automatically select a different port when it is run.&lt;br /&gt;
&lt;br /&gt;
===Vista and Windows 7/8/10===&lt;br /&gt;
{{New features}}&lt;br /&gt;
&lt;br /&gt;
Packages generated for Moodle 3.1 and later versions should work with Vista/7/8/10 out of the box. They include PHP 7 and MariaDB instead of MySQL, resulting in a smoother experience than previous versions of the packages.&lt;br /&gt;
&lt;br /&gt;
People facing problems with the new packages should:&lt;br /&gt;
&lt;br /&gt;
:* Read the Requirements and Troubleshooting information, both here and in the package&#039;s README.txt file.&lt;br /&gt;
:* Report any consistent problem in the [https://tracker.moodle.org Moodle Tracker], so it can be investigated and, hopefully, fixed.&lt;br /&gt;
:* Consider installing a virtual machine (eg, [https://www.virtualbox.org/ VirtualBox]) with a windows or linux LAMP stack and then install Moodle there.&lt;br /&gt;
:* Use other Moodle-ready alternatives [https://moodlecloud.com out there].&lt;br /&gt;
&lt;br /&gt;
==Install complete package process==&lt;br /&gt;
The complete install package is a zip file that contains a webserver called [[Apache]], plus Moodle and Moodle&#039;s required [[MySQL]] database and [[PHP]] program. &lt;br /&gt;
&lt;br /&gt;
There are three basic parts to the this install process.  &lt;br /&gt;
#Download and unpack the complete install package. &lt;br /&gt;
#Start the webserver. &lt;br /&gt;
#Install Moodle using a web browser.&lt;br /&gt;
&lt;br /&gt;
===First create file structure===&lt;br /&gt;
====Download the package====&lt;br /&gt;
[http://download.moodle.org/windows Download Windows] packed-zip file from Moodle.&lt;br /&gt;
[[Image:Moodle Setup zipfile.jpg|frame|center|A downloaded complete install package Windows 1.9 zip file in Windows Explorer]]&lt;br /&gt;
 &lt;br /&gt;
====Unpack the package====&lt;br /&gt;
Unpack (extract files by clicking on) the zip file you downloaded to a drive or partition of your choice. The extract process will create three files (&amp;quot;Start Moodle&amp;quot;, &amp;quot;Stop Moodle&amp;quot;, and &amp;quot;README&amp;quot;) and a subfolder called &amp;quot;server&amp;quot;. &lt;br /&gt;
*Do NOT rename the &amp;quot;server&amp;quot; subfolder  &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; There will also be a folder under this server subfolder, called \moodle that holds the Moodle program.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Create a folder and extract the files there.  For example, you might have one folder called Moodle254 and another one called Moodle281 for different versions or purposes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Make path to &amp;quot;server&amp;quot; subfolder simple. Best way if it will be in drive root. Like &amp;quot;D:\moodle281\server&amp;quot;. A long path, especially with any strange symbols, can prevent XAMPP from working properly.&lt;br /&gt;
&lt;br /&gt;
===Second - start the webserver===&lt;br /&gt;
Now you are ready to start the webserver.  Use the &amp;quot;Start Moodle.exe&amp;quot; file which you should find in the top directory. Once the &amp;quot;Start Moodle.exe&amp;quot; program is open, don&#039;t close it; use &amp;quot;Stop Moodle.exe&amp;quot; for that purpose.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; These programs control both Apache and MySQL programs that operate the webserver.  Some sites will individually start and stop Apache and MySQL with the Xampp bat files found in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; Alternatively, on a standalone computer with several potential webservers that might be running, you can use the &amp;quot;xampp_restart.exe&amp;quot; file in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; You can also add shortcuts to the commands that start and stop the site in your Windows &amp;quot;start&amp;quot; menu.&lt;br /&gt;
 &lt;br /&gt;
Now you are ready to start the Moodle installation.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Warning:&#039;&#039; Windows XP requires the msvcr71.dll library file in order to run Xampp. Installing the [http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en .Net 1.1 framework] (not .Net 2.0 and upper) could resolve it. You can also search for the file on Google, download it and copy it into the server/apache/bin folder.&lt;br /&gt;
&lt;br /&gt;
===Third - start Moodle installation===&lt;br /&gt;
Start your web browser and type &amp;lt;nowiki&amp;gt; localhost, or  http://127.0.0.1 or http://localhost &amp;lt;/nowiki&amp;gt;in the address bar. You will either start your first time Moodle installation or if it is already installed you will enter the Moodle site&#039;s [[Front Page]] or Login screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle_Setup_localhost_browser.jpg|frame|center|A browser&#039;s addressbar showing &amp;quot;localhost&amp;quot;. Click on  the green Goto arrow will go to the installed Moodle site.]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; After Moodle installs, put the site in your &amp;quot;favorites&amp;quot; or as a &amp;quot;bookmark&amp;quot; in you browser.&lt;br /&gt;
&lt;br /&gt;
====Set language====&lt;br /&gt;
The initial install page will be displayed after you type &amp;quot;localhost&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:C Install Windows 1.png|thumb|center|600px|Set initial language]]&lt;br /&gt;
&lt;br /&gt;
*Choose your preferred language (English is used in this example) and click the “Next” button.&lt;br /&gt;
&lt;br /&gt;
====Diagnostic results====&lt;br /&gt;
A diagnostic report is displayed – hopefully it will look like this, if not you may need to address some issues.&lt;br /&gt;
[[Image:Complete Windows Install 2.png|thumb|center|546px|Moodle liked and gave a Pass ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Moodle paths====&lt;br /&gt;
The paths for your Moodle installation are shown – if you are only using this as a local testing server, accept the ones that are shown on your screen.&lt;br /&gt;
&lt;br /&gt;
What you enter in the &amp;quot;Web Address&amp;quot; field depends on what you intend to use the new Moodle installation for. &lt;br /&gt;
If you are just going to use it for local testing, then use &#039;http://localhost&#039;. &lt;br /&gt;
If you are going to test the new installation on a LAN, and will be accessing it from other machines on that LAN, then put the private IP address or network name of the serving machine, followed by a forward slash and moodle: Web Address - http://192.168.1.1/moodle&lt;br /&gt;
If you are going to test the installation on the internet, then you will need to put the public ip address followed by a forward slash and moodle: http://your_ip_address/moodle or you can put your domain name here instead.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 3.png|thumb|center|600px|Installation paths]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Database configuration====&lt;br /&gt;
*In the next fields, we enter the database settings. The fields are populated with some suggested values.&lt;br /&gt;
&lt;br /&gt;
*We strongly recommend you place a user name and password in this screen. (Don&#039;t forget them).&lt;br /&gt;
&lt;br /&gt;
*DO NOT USE THE “ROOT” USER WITHOUT A PASSWORD FOR PRODUCTION INSTALLATIONS AS THIS CREATES A SECURITY VULNERABILITY&lt;br /&gt;
[[image:Complete install Windows 4.png|thumb|center|535px|Installation&#039;s database settings]]&lt;br /&gt;
&lt;br /&gt;
*When the fields have been populated, click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Check server====&lt;br /&gt;
The install process checks the server it installed.&lt;br /&gt;
[[image:Complete install Windows 5.png|thumb|center|535px|Check server environment screen]]&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Confirm initial language pack====&lt;br /&gt;
Moodle will now check to see if the language pack is available for the language you selected at the first step.  If it is not, Moodle will continue with the install in English.&lt;br /&gt;
[[image:Complete install Windows 6.png|thumb|center|535px|Language pack check]]&lt;br /&gt;
&lt;br /&gt;
====Confirm config.php====&lt;br /&gt;
Provided the Moodle folder is writable, a message confirming the configuration has been completed will be displayed.&lt;br /&gt;
[[image:Complete install Windows 7.png|thumb|center|549px|Confirmation that config.php has been created]]&lt;br /&gt;
&lt;br /&gt;
*Click the “ Continue” button to proceed.&lt;br /&gt;
&lt;br /&gt;
====Moodle copyright &amp;amp; agreement====&lt;br /&gt;
The Moodle copyright / license notices are displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 8.png|thumb|center|400px|Copyright notice and agreement]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Yes” button to continue.  &lt;br /&gt;
&lt;br /&gt;
====Current release and unattended option====&lt;br /&gt;
The current release information is shown. &lt;br /&gt;
&#039;&#039;&#039;Check off the unattended operations box&#039;&#039;&#039;. This will automatically advance through many screens.  If you would like to watch the install screen by screen, do not check this box and be prepared to press the &amp;quot;continute button&amp;quot; many times.&lt;br /&gt;
 &lt;br /&gt;
*Click the &amp;quot;Continue&amp;quot; button and wait.&lt;br /&gt;
[[Image:Complete install Windows 9.png|thumb|center|600px|Current release and &amp;quot;unattended&amp;quot; check box]]&lt;br /&gt;
&lt;br /&gt;
====Installation modules and blocks screens====&lt;br /&gt;
In most cases this will be followed by a series of screens that have a continue button on the bottom.  This process stops with Admin user profile settings which needs to be filled out.&lt;br /&gt;
&lt;br /&gt;
====Administrator user profile====&lt;br /&gt;
[[Image:Complete install Windows 10.png|thumb|center|The administrator&#039;s users profile screen]]&lt;br /&gt;
&lt;br /&gt;
Fill out the required fields.&lt;br /&gt;
*Click on &amp;quot;Save&amp;quot; to continue&lt;br /&gt;
&lt;br /&gt;
====Front page settings====&lt;br /&gt;
The next screen is the Front Page settings page.  There are two parts to it.&lt;br /&gt;
The first part will ask for your Full site name and a short name for the navigation bar. There is also a place for a description. You can change these later.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11a.png|thumb|center|The Moodle sites [[Front Page]] information]]&lt;br /&gt;
&lt;br /&gt;
The second part on the bottom instructs Moodle if you will disable the new user self [[authentication]] through email process.  The default is to disable.  This can be changed later in the [[Site administration block|site administration block]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11ba.png|thumb|center|500px|Determine if users can create their own profiles when they log onto the side via email self authentication]]&lt;br /&gt;
&lt;br /&gt;
*Click on &amp;quot;Save changes&amp;quot; button to go to Moodle sites home page.&lt;br /&gt;
&lt;br /&gt;
====Moodle on====&lt;br /&gt;
&#039;&#039;&#039;Now you are ready to Moodle !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 12.png|thumb|center|Blank Front page of your new site]]&lt;br /&gt;
&lt;br /&gt;
The Site Administration block is on the left, the &amp;quot;Turn edit on&amp;quot; button in the upper right corner, withe the site description block just below it.&lt;br /&gt;
&lt;br /&gt;
===Congratulations - Moodle has been installed===&lt;br /&gt;
This finishes the installation of a complete package.   Type &amp;lt;nowiki&amp;gt;http://localhost&amp;lt;/nowiki&amp;gt; (or what ever you set for web address earlier in the setup!) in your browser and Moodle will open. &lt;br /&gt;
&lt;br /&gt;
Your next task will be to configure Moodle to meet your needs.  Don&#039;t worry, it is easy to change any of the settings now that Moodle is up and running.&lt;br /&gt;
*Check &#039;&#039;Settings &amp;gt; Site administration&#039;&#039; for further links.&lt;br /&gt;
&lt;br /&gt;
==More tips and cautions==&lt;br /&gt;
*For installation on a Windows 2000 or Windows 2003 production server it is good practice to perform a manual install (see the manual installation section in [[Windows_installation|Windows Installation]]). &lt;br /&gt;
&lt;br /&gt;
*After installing the Windows package, you may wish to add additional contributed modules and plugins.  Theset may involve more customization of configuration files.&lt;br /&gt;
&lt;br /&gt;
*The latest complete install package version components, may not be backwardly compatible. Always check version compatibility of each component if you intend to develop materials on a later version of Moodle than the version installed on your &amp;quot;main&amp;quot; Moodle site.  In short, complete install packages are designed for first time install on a &amp;quot;clean&amp;quot; machine.  &lt;br /&gt;
&lt;br /&gt;
== Security matters (A MUST READ!)==&lt;br /&gt;
&lt;br /&gt;
As mentioned before, XAMPP is not meant for production use but only for developers &lt;br /&gt;
in a development environment. The way XAMPP is configured is to be open as possible &lt;br /&gt;
and allowing the developer anything he/she wants. For development environments this &lt;br /&gt;
is great but in a production environment it could be fatal. Here a list of missing security &lt;br /&gt;
in XAMPP:&lt;br /&gt;
&lt;br /&gt;
The MySQL administrator (root) has no password.&lt;br /&gt;
The MySQL daemon is accessible via network.&lt;br /&gt;
phpMyAdmin is accessible via network.&lt;br /&gt;
Examples are accessible via network.&lt;br /&gt;
&lt;br /&gt;
To fix most of the security weaknesses simply call the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/security/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The root password for MySQL + phpMyAdmin and also a XAMPP directory protection can be established here.&lt;br /&gt;
&lt;br /&gt;
Note that on the Windows installer package, some (all?) of these issues have been fixed already by default and the above link does not work.&lt;br /&gt;
&lt;br /&gt;
If in doubt, more info is [http://www.apachefriends.org/en/faq-xampp-windows.html  here]&lt;br /&gt;
&lt;br /&gt;
== Apache and MySQL tweaks ==&lt;br /&gt;
Most of the time it is not necessary to tweak Apache or MySQL after completing the complete install package. Nor is it necessary to individually start and stop them because that is what the Xampp_start, Xampp_restart and Xammp_stop files are for.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing Apache and MySQL as services===&lt;br /&gt;
(This is only for NT4 | Windows 2000 | Windows XP operating systems)&lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_installservice.bat =&lt;br /&gt;
==&amp;gt; Install Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_installservice.bat =&lt;br /&gt;
==&amp;gt; Install MySQL as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall MySQL as service   &lt;br /&gt;
&lt;br /&gt;
==&amp;gt; After all Service (un)installations, please restart your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apache Notes===&lt;br /&gt;
&lt;br /&gt;
You can use the apache_start and apache_stop bat files to start and stop apache from running. However the Xampp_start or Xampp_restart and Xampp_stop is recommended to turn on/off both Apache and MySQL.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
If you find that Apache is very flaky, with the page often not loading properly or even at all (especially on localhost), try adding these lines to the end of C:\your_moodle_installer_directory\apache\conf\httpd.conf &lt;br /&gt;
&lt;br /&gt;
  EnableSendfile Off&lt;br /&gt;
  EnableMMAP Off&lt;br /&gt;
  Win32DisableAcceptEx&lt;br /&gt;
&lt;br /&gt;
If You edit some .php files but browser still show old state of them, try to disable eAccelerator extension in \server\php\php.ini&lt;br /&gt;
&lt;br /&gt;
 [eAccelerator]&lt;br /&gt;
 ;extension=eaccelerator.dll&lt;br /&gt;
&lt;br /&gt;
===MySQL notes===&lt;br /&gt;
Again, the recommendation to start and stop the entire webserver is to use the xampp_start or Xampp_restart and the Xampp_stop.  The following maybe useful if you wish to tweak the system further.  Please be careful.&lt;br /&gt;
&lt;br /&gt;
(1) The MySQL server can be started by double-clicking (executing) mysql_start.bat. This file can be found in the same folder you installed xampp in, most likely this will be C:\xampplite\.  The exact path to this file is X:\xampplite\mysql_start.bat, where &amp;quot;X&amp;quot; indicates the letter of the drive you unpacked xampp into.This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.&lt;br /&gt;
    &lt;br /&gt;
Do not close the DOS window or you&#039;ll crash the server! To stop the server, please use mysql_shutdown.bat, which is located in the same directory.&lt;br /&gt;
&lt;br /&gt;
(2) To use the MySQL Daemon with &amp;quot;innodb&amp;quot; for better performance, &lt;br /&gt;
please edit the &amp;quot;my&amp;quot; (or &amp;quot;my.cnf&amp;quot;) file in the /xampplite/mysql/bin directory or for services the c:\my.cnf for windows NT/2000/XP. In that director, activate the&lt;br /&gt;
 &amp;quot;innodb_data_file_path=ibdata1:30M&amp;quot;&lt;br /&gt;
statement. Attention, &amp;quot;innodb&amp;quot; is not recommended for 95/98/ME.&lt;br /&gt;
    &lt;br /&gt;
:To use MySQL as Service for NT/2000/XP, simply copy the &amp;quot;my&amp;quot; / &amp;quot;my.cnf&amp;quot; file to C:\my, or C:\my.cnf. Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the &amp;quot;mysql_installservice.bat&amp;quot; in the mysql folder. 	&lt;br /&gt;
   	&lt;br /&gt;
&lt;br /&gt;
(3) MySQL starts with standard values for the user id and the password. The preset user id is &amp;quot;root&amp;quot;, the password is &amp;quot;&amp;quot; (= no password). To access MySQL via PHP with the preset values, you&#039;ll have to use the following syntax:&lt;br /&gt;
 mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;root&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
If you want to set a password for MySQL access, please use of mysqladmin.&lt;br /&gt;
To set the password &amp;quot;secret&amp;quot; for the user &amp;quot;root&amp;quot;, type the following:&lt;br /&gt;
   &lt;br /&gt;
  \xampplite\mysql\bin\mysqladmin -u root password secret&lt;br /&gt;
    &lt;br /&gt;
After changing the password you&#039;ll have to reconfigure phpMyAdmin to use the new password, otherwise it won&#039;t be able to access the databases. To do that, open the file config.inc.php in \xampplite\phpmyadmin\ and edit the following lines:    &lt;br /&gt;
    &lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;user&#039;]            = &#039;root&#039;;   // MySQL user&lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;auth_type&#039;]       = &#039;http&#039;;   // HTTP authentificate&lt;br /&gt;
&lt;br /&gt;
So first the &#039;root&#039; password is queried by the MySQL server, before phpMyAdmin may access.&lt;br /&gt;
  	    	&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Have a lot of fun! Viel Spaß! Bonne Chance!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.moodle.org/19/en/Installation_guide_-_Moodle_for_Windows_on_a_USB_Memory_Stick Installation guide - Moodle 1.9 for Windows on a USB Memory Stick]&lt;br /&gt;
*Return to [[Windows installation]]&lt;br /&gt;
*[[Windows 1 computer many servers |Multiple web servers, on 1 computer]] similar to windows installation page, with some tips&lt;br /&gt;
*[https://docs.moodle.org/en/Windows_installation_using_XAMPP#Troubleshooting Troubleshooting]if you are running Skype. &lt;br /&gt;
*[[Installing_AMP]] lots of XAMPP stuff.  XAMPP stands for X (cross platform), Apache, MySQL,PHP and Perl.  XAMPP used in Moodle does not include Perl. MAMP stands for Mac, Apache, MySQL and PHP.  &lt;br /&gt;
*[[Installation Package for OS X]] &lt;br /&gt;
&lt;br /&gt;
[[es:Paquetes para Instalación Completa para Windows]]&lt;br /&gt;
[[pl:Kompletne pakiety instalacyjne]]&lt;br /&gt;
[[de:Vollständiges Installationspaket für Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125449</id>
		<title>Complete install packages for Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125449"/>
		<updated>2016-09-27T09:48:17Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: /* Vista and Windows 7/8/10 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Complete install packages are available from Moodle.org&#039;s [https://download.moodle.org/windows/ Windows download page] and also from [https://bitnami.com/stacks Bitnami stacks]. The packages are designed for new installations on a standalone computer. All them use the popular [https://www.apachefriends.org/ XAMPP Apache Friends packages]. The complete install package can be used on a server, but &#039;&#039;&#039;it is not recommended that it be used as a production site&#039;&#039;&#039;. Please note Moodle.org&#039;s [http://download.moodle.org Standard install packages] only contain the Moodle code.&lt;br /&gt;
&lt;br /&gt;
This document provides instructions for using the Windows packages. Separate instructions are available for [[Complete Install Packages for Mac OS X|Mac OS X packages]].&lt;br /&gt;
&lt;br /&gt;
The complete install packages allow Moodle to be installed, along with the prerequisites that includes a web server, Apache, database, MySQL, scripting language, PHP, an administration tool, phpMyAdmin and Moodle all wrapped in the Xampp-lite shell. Several versions of the complete install package are available. The instructions on the download page provide guidance on which version is likely to be most suitable.&lt;br /&gt;
&lt;br /&gt;
In short, complete install packages are designed to create a matched webserver and Moodle site on a standalone computer with minimal effort. &lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
:*256 MB RAM (minimum), 1GB RAM (recommended)&lt;br /&gt;
:*500 MB free Fixed Disk (more space will be needed depending on user uploads)&lt;br /&gt;
:* For old versions of Moodle:&lt;br /&gt;
:**Windows 98/ME (minimum)&lt;br /&gt;
:**Windows NT/2000/XP/2003 (recommended)&lt;br /&gt;
:* For Moodle 3.1 and later versions:&lt;br /&gt;
:**Windows Vista/7/8/10/2008/2012&lt;br /&gt;
:**Microsoft Visual C++ 2015 Redistributable package is required for PHP ([https://www.microsoft.com/en-us/download/details.aspx?id=48145 download link)].&lt;br /&gt;
&lt;br /&gt;
===Port 80 Conflict if Skype is already installed===&lt;br /&gt;
As the Moodle Windows package uses the same port (80) as [http://www.skype.com/en/ Skype] does, it will not work if the computer has Skype already installed.&lt;br /&gt;
&lt;br /&gt;
The fix is very simple: Exit Skype (don&#039;t just close the window), then start the Moodle Windows package. Once Moodle for Windows is running, it should be safe to start Skype again. If the local Moodle is using the port 80, Skype will automatically select a different port when it is run.&lt;br /&gt;
&lt;br /&gt;
===Vista and Windows 7/8/10===&lt;br /&gt;
{{Moodle 3.1}}&lt;br /&gt;
&lt;br /&gt;
Packages generated for Moodle 3.1 and later versions should work with Vista/7/8/10 out of the box. They include PHP 7 and MariaDB instead of MySQL, resulting in a smoother experience than previous versions of the packages.&lt;br /&gt;
&lt;br /&gt;
People facing problems with the new packages should:&lt;br /&gt;
&lt;br /&gt;
:* Read the Requirements and Troubleshooting information, both here and in the package&#039;s README.txt file.&lt;br /&gt;
:* Report any consistent problem in the [https://tracker.moodle.org Moodle Tracker], so it can be investigated and, hopefully, fixed.&lt;br /&gt;
:* Consider installing a virtual machine (eg, [https://www.virtualbox.org/ VirtualBox]) with a windows or linux LAMP stack and then install Moodle there.&lt;br /&gt;
:* Use other Moodle-ready alternatives [https://moodlecloud.com out there].&lt;br /&gt;
&lt;br /&gt;
==Install complete package process==&lt;br /&gt;
The complete install package is a zip file that contains a webserver called [[Apache]], plus Moodle and Moodle&#039;s required [[MySQL]] database and [[PHP]] program. &lt;br /&gt;
&lt;br /&gt;
There are three basic parts to the this install process.  &lt;br /&gt;
#Download and unpack the complete install package. &lt;br /&gt;
#Start the webserver. &lt;br /&gt;
#Install Moodle using a web browser.&lt;br /&gt;
&lt;br /&gt;
===First create file structure===&lt;br /&gt;
====Download the package====&lt;br /&gt;
[http://download.moodle.org/windows Download Windows] packed-zip file from Moodle.&lt;br /&gt;
[[Image:Moodle Setup zipfile.jpg|frame|center|A downloaded complete install package Windows 1.9 zip file in Windows Explorer]]&lt;br /&gt;
 &lt;br /&gt;
====Unpack the package====&lt;br /&gt;
Unpack (extract files by clicking on) the zip file you downloaded to a drive or partition of your choice. The extract process will create three files (&amp;quot;Start Moodle&amp;quot;, &amp;quot;Stop Moodle&amp;quot;, and &amp;quot;README&amp;quot;) and a subfolder called &amp;quot;server&amp;quot;. &lt;br /&gt;
*Do NOT rename the &amp;quot;server&amp;quot; subfolder  &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; There will also be a folder under this server subfolder, called \moodle that holds the Moodle program.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Create a folder and extract the files there.  For example, you might have one folder called Moodle254 and another one called Moodle281 for different versions or purposes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Make path to &amp;quot;server&amp;quot; subfolder simple. Best way if it will be in drive root. Like &amp;quot;D:\moodle281\server&amp;quot;. A long path, especially with any strange symbols, can prevent XAMPP from working properly.&lt;br /&gt;
&lt;br /&gt;
===Second - start the webserver===&lt;br /&gt;
Now you are ready to start the webserver.  Use the &amp;quot;Start Moodle.exe&amp;quot; file which you should find in the top directory. Once the &amp;quot;Start Moodle.exe&amp;quot; program is open, don&#039;t close it; use &amp;quot;Stop Moodle.exe&amp;quot; for that purpose.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; These programs control both Apache and MySQL programs that operate the webserver.  Some sites will individually start and stop Apache and MySQL with the Xampp bat files found in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; Alternatively, on a standalone computer with several potential webservers that might be running, you can use the &amp;quot;xampp_restart.exe&amp;quot; file in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; You can also add shortcuts to the commands that start and stop the site in your Windows &amp;quot;start&amp;quot; menu.&lt;br /&gt;
 &lt;br /&gt;
Now you are ready to start the Moodle installation.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Warning:&#039;&#039; Windows XP requires the msvcr71.dll library file in order to run Xampp. Installing the [http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en .Net 1.1 framework] (not .Net 2.0 and upper) could resolve it. You can also search for the file on Google, download it and copy it into the server/apache/bin folder.&lt;br /&gt;
&lt;br /&gt;
===Third - start Moodle installation===&lt;br /&gt;
Start your web browser and type &amp;lt;nowiki&amp;gt; localhost, or  http://127.0.0.1 or http://localhost &amp;lt;/nowiki&amp;gt;in the address bar. You will either start your first time Moodle installation or if it is already installed you will enter the Moodle site&#039;s [[Front Page]] or Login screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle_Setup_localhost_browser.jpg|frame|center|A browser&#039;s addressbar showing &amp;quot;localhost&amp;quot;. Click on  the green Goto arrow will go to the installed Moodle site.]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; After Moodle installs, put the site in your &amp;quot;favorites&amp;quot; or as a &amp;quot;bookmark&amp;quot; in you browser.&lt;br /&gt;
&lt;br /&gt;
====Set language====&lt;br /&gt;
The initial install page will be displayed after you type &amp;quot;localhost&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:C Install Windows 1.png|thumb|center|600px|Set initial language]]&lt;br /&gt;
&lt;br /&gt;
*Choose your preferred language (English is used in this example) and click the “Next” button.&lt;br /&gt;
&lt;br /&gt;
====Diagnostic results====&lt;br /&gt;
A diagnostic report is displayed – hopefully it will look like this, if not you may need to address some issues.&lt;br /&gt;
[[Image:Complete Windows Install 2.png|thumb|center|546px|Moodle liked and gave a Pass ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Moodle paths====&lt;br /&gt;
The paths for your Moodle installation are shown – if you are only using this as a local testing server, accept the ones that are shown on your screen.&lt;br /&gt;
&lt;br /&gt;
What you enter in the &amp;quot;Web Address&amp;quot; field depends on what you intend to use the new Moodle installation for. &lt;br /&gt;
If you are just going to use it for local testing, then use &#039;http://localhost&#039;. &lt;br /&gt;
If you are going to test the new installation on a LAN, and will be accessing it from other machines on that LAN, then put the private IP address or network name of the serving machine, followed by a forward slash and moodle: Web Address - http://192.168.1.1/moodle&lt;br /&gt;
If you are going to test the installation on the internet, then you will need to put the public ip address followed by a forward slash and moodle: http://your_ip_address/moodle or you can put your domain name here instead.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 3.png|thumb|center|600px|Installation paths]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Database configuration====&lt;br /&gt;
*In the next fields, we enter the database settings. The fields are populated with some suggested values.&lt;br /&gt;
&lt;br /&gt;
*We strongly recommend you place a user name and password in this screen. (Don&#039;t forget them).&lt;br /&gt;
&lt;br /&gt;
*DO NOT USE THE “ROOT” USER WITHOUT A PASSWORD FOR PRODUCTION INSTALLATIONS AS THIS CREATES A SECURITY VULNERABILITY&lt;br /&gt;
[[image:Complete install Windows 4.png|thumb|center|535px|Installation&#039;s database settings]]&lt;br /&gt;
&lt;br /&gt;
*When the fields have been populated, click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Check server====&lt;br /&gt;
The install process checks the server it installed.&lt;br /&gt;
[[image:Complete install Windows 5.png|thumb|center|535px|Check server environment screen]]&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Confirm initial language pack====&lt;br /&gt;
Moodle will now check to see if the language pack is available for the language you selected at the first step.  If it is not, Moodle will continue with the install in English.&lt;br /&gt;
[[image:Complete install Windows 6.png|thumb|center|535px|Language pack check]]&lt;br /&gt;
&lt;br /&gt;
====Confirm config.php====&lt;br /&gt;
Provided the Moodle folder is writable, a message confirming the configuration has been completed will be displayed.&lt;br /&gt;
[[image:Complete install Windows 7.png|thumb|center|549px|Confirmation that config.php has been created]]&lt;br /&gt;
&lt;br /&gt;
*Click the “ Continue” button to proceed.&lt;br /&gt;
&lt;br /&gt;
====Moodle copyright &amp;amp; agreement====&lt;br /&gt;
The Moodle copyright / license notices are displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 8.png|thumb|center|400px|Copyright notice and agreement]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Yes” button to continue.  &lt;br /&gt;
&lt;br /&gt;
====Current release and unattended option====&lt;br /&gt;
The current release information is shown. &lt;br /&gt;
&#039;&#039;&#039;Check off the unattended operations box&#039;&#039;&#039;. This will automatically advance through many screens.  If you would like to watch the install screen by screen, do not check this box and be prepared to press the &amp;quot;continute button&amp;quot; many times.&lt;br /&gt;
 &lt;br /&gt;
*Click the &amp;quot;Continue&amp;quot; button and wait.&lt;br /&gt;
[[Image:Complete install Windows 9.png|thumb|center|600px|Current release and &amp;quot;unattended&amp;quot; check box]]&lt;br /&gt;
&lt;br /&gt;
====Installation modules and blocks screens====&lt;br /&gt;
In most cases this will be followed by a series of screens that have a continue button on the bottom.  This process stops with Admin user profile settings which needs to be filled out.&lt;br /&gt;
&lt;br /&gt;
====Administrator user profile====&lt;br /&gt;
[[Image:Complete install Windows 10.png|thumb|center|The administrator&#039;s users profile screen]]&lt;br /&gt;
&lt;br /&gt;
Fill out the required fields.&lt;br /&gt;
*Click on &amp;quot;Save&amp;quot; to continue&lt;br /&gt;
&lt;br /&gt;
====Front page settings====&lt;br /&gt;
The next screen is the Front Page settings page.  There are two parts to it.&lt;br /&gt;
The first part will ask for your Full site name and a short name for the navigation bar. There is also a place for a description. You can change these later.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11a.png|thumb|center|The Moodle sites [[Front Page]] information]]&lt;br /&gt;
&lt;br /&gt;
The second part on the bottom instructs Moodle if you will disable the new user self [[authentication]] through email process.  The default is to disable.  This can be changed later in the [[Site administration block|site administration block]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11ba.png|thumb|center|500px|Determine if users can create their own profiles when they log onto the side via email self authentication]]&lt;br /&gt;
&lt;br /&gt;
*Click on &amp;quot;Save changes&amp;quot; button to go to Moodle sites home page.&lt;br /&gt;
&lt;br /&gt;
====Moodle on====&lt;br /&gt;
&#039;&#039;&#039;Now you are ready to Moodle !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 12.png|thumb|center|Blank Front page of your new site]]&lt;br /&gt;
&lt;br /&gt;
The Site Administration block is on the left, the &amp;quot;Turn edit on&amp;quot; button in the upper right corner, withe the site description block just below it.&lt;br /&gt;
&lt;br /&gt;
===Congratulations - Moodle has been installed===&lt;br /&gt;
This finishes the installation of a complete package.   Type &amp;lt;nowiki&amp;gt;http://localhost&amp;lt;/nowiki&amp;gt; (or what ever you set for web address earlier in the setup!) in your browser and Moodle will open. &lt;br /&gt;
&lt;br /&gt;
Your next task will be to configure Moodle to meet your needs.  Don&#039;t worry, it is easy to change any of the settings now that Moodle is up and running.&lt;br /&gt;
*Check &#039;&#039;Settings &amp;gt; Site administration&#039;&#039; for further links.&lt;br /&gt;
&lt;br /&gt;
==More tips and cautions==&lt;br /&gt;
*For installation on a Windows 2000 or Windows 2003 production server it is good practice to perform a manual install (see the manual installation section in [[Windows_installation|Windows Installation]]). &lt;br /&gt;
&lt;br /&gt;
*After installing the Windows package, you may wish to add additional contributed modules and plugins.  Theset may involve more customization of configuration files.&lt;br /&gt;
&lt;br /&gt;
*The latest complete install package version components, may not be backwardly compatible. Always check version compatibility of each component if you intend to develop materials on a later version of Moodle than the version installed on your &amp;quot;main&amp;quot; Moodle site.  In short, complete install packages are designed for first time install on a &amp;quot;clean&amp;quot; machine.  &lt;br /&gt;
&lt;br /&gt;
== Security matters (A MUST READ!)==&lt;br /&gt;
&lt;br /&gt;
As mentioned before, XAMPP is not meant for production use but only for developers &lt;br /&gt;
in a development environment. The way XAMPP is configured is to be open as possible &lt;br /&gt;
and allowing the developer anything he/she wants. For development environments this &lt;br /&gt;
is great but in a production environment it could be fatal. Here a list of missing security &lt;br /&gt;
in XAMPP:&lt;br /&gt;
&lt;br /&gt;
The MySQL administrator (root) has no password.&lt;br /&gt;
The MySQL daemon is accessible via network.&lt;br /&gt;
phpMyAdmin is accessible via network.&lt;br /&gt;
Examples are accessible via network.&lt;br /&gt;
&lt;br /&gt;
To fix most of the security weaknesses simply call the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/security/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The root password for MySQL + phpMyAdmin and also a XAMPP directory protection can be established here.&lt;br /&gt;
&lt;br /&gt;
Note that on the Windows installer package, some (all?) of these issues have been fixed already by default and the above link does not work.&lt;br /&gt;
&lt;br /&gt;
If in doubt, more info is [http://www.apachefriends.org/en/faq-xampp-windows.html  here]&lt;br /&gt;
&lt;br /&gt;
== Apache and MySQL tweaks ==&lt;br /&gt;
Most of the time it is not necessary to tweak Apache or MySQL after completing the complete install package. Nor is it necessary to individually start and stop them because that is what the Xampp_start, Xampp_restart and Xammp_stop files are for.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing Apache and MySQL as services===&lt;br /&gt;
(This is only for NT4 | Windows 2000 | Windows XP operating systems)&lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_installservice.bat =&lt;br /&gt;
==&amp;gt; Install Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_installservice.bat =&lt;br /&gt;
==&amp;gt; Install MySQL as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall MySQL as service   &lt;br /&gt;
&lt;br /&gt;
==&amp;gt; After all Service (un)installations, please restart your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apache Notes===&lt;br /&gt;
&lt;br /&gt;
You can use the apache_start and apache_stop bat files to start and stop apache from running. However the Xampp_start or Xampp_restart and Xampp_stop is recommended to turn on/off both Apache and MySQL.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
If you find that Apache is very flaky, with the page often not loading properly or even at all (especially on localhost), try adding these lines to the end of C:\your_moodle_installer_directory\apache\conf\httpd.conf &lt;br /&gt;
&lt;br /&gt;
  EnableSendfile Off&lt;br /&gt;
  EnableMMAP Off&lt;br /&gt;
  Win32DisableAcceptEx&lt;br /&gt;
&lt;br /&gt;
If You edit some .php files but browser still show old state of them, try to disable eAccelerator extension in \server\php\php.ini&lt;br /&gt;
&lt;br /&gt;
 [eAccelerator]&lt;br /&gt;
 ;extension=eaccelerator.dll&lt;br /&gt;
&lt;br /&gt;
===MySQL notes===&lt;br /&gt;
Again, the recommendation to start and stop the entire webserver is to use the xampp_start or Xampp_restart and the Xampp_stop.  The following maybe useful if you wish to tweak the system further.  Please be careful.&lt;br /&gt;
&lt;br /&gt;
(1) The MySQL server can be started by double-clicking (executing) mysql_start.bat. This file can be found in the same folder you installed xampp in, most likely this will be C:\xampplite\.  The exact path to this file is X:\xampplite\mysql_start.bat, where &amp;quot;X&amp;quot; indicates the letter of the drive you unpacked xampp into.This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.&lt;br /&gt;
    &lt;br /&gt;
Do not close the DOS window or you&#039;ll crash the server! To stop the server, please use mysql_shutdown.bat, which is located in the same directory.&lt;br /&gt;
&lt;br /&gt;
(2) To use the MySQL Daemon with &amp;quot;innodb&amp;quot; for better performance, &lt;br /&gt;
please edit the &amp;quot;my&amp;quot; (or &amp;quot;my.cnf&amp;quot;) file in the /xampplite/mysql/bin directory or for services the c:\my.cnf for windows NT/2000/XP. In that director, activate the&lt;br /&gt;
 &amp;quot;innodb_data_file_path=ibdata1:30M&amp;quot;&lt;br /&gt;
statement. Attention, &amp;quot;innodb&amp;quot; is not recommended for 95/98/ME.&lt;br /&gt;
    &lt;br /&gt;
:To use MySQL as Service for NT/2000/XP, simply copy the &amp;quot;my&amp;quot; / &amp;quot;my.cnf&amp;quot; file to C:\my, or C:\my.cnf. Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the &amp;quot;mysql_installservice.bat&amp;quot; in the mysql folder. 	&lt;br /&gt;
   	&lt;br /&gt;
&lt;br /&gt;
(3) MySQL starts with standard values for the user id and the password. The preset user id is &amp;quot;root&amp;quot;, the password is &amp;quot;&amp;quot; (= no password). To access MySQL via PHP with the preset values, you&#039;ll have to use the following syntax:&lt;br /&gt;
 mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;root&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
If you want to set a password for MySQL access, please use of mysqladmin.&lt;br /&gt;
To set the password &amp;quot;secret&amp;quot; for the user &amp;quot;root&amp;quot;, type the following:&lt;br /&gt;
   &lt;br /&gt;
  \xampplite\mysql\bin\mysqladmin -u root password secret&lt;br /&gt;
    &lt;br /&gt;
After changing the password you&#039;ll have to reconfigure phpMyAdmin to use the new password, otherwise it won&#039;t be able to access the databases. To do that, open the file config.inc.php in \xampplite\phpmyadmin\ and edit the following lines:    &lt;br /&gt;
    &lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;user&#039;]            = &#039;root&#039;;   // MySQL user&lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;auth_type&#039;]       = &#039;http&#039;;   // HTTP authentificate&lt;br /&gt;
&lt;br /&gt;
So first the &#039;root&#039; password is queried by the MySQL server, before phpMyAdmin may access.&lt;br /&gt;
  	    	&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Have a lot of fun! Viel Spaß! Bonne Chance!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.moodle.org/19/en/Installation_guide_-_Moodle_for_Windows_on_a_USB_Memory_Stick Installation guide - Moodle 1.9 for Windows on a USB Memory Stick]&lt;br /&gt;
*Return to [[Windows installation]]&lt;br /&gt;
*[[Windows 1 computer many servers |Multiple web servers, on 1 computer]] similar to windows installation page, with some tips&lt;br /&gt;
*[https://docs.moodle.org/en/Windows_installation_using_XAMPP#Troubleshooting Troubleshooting]if you are running Skype. &lt;br /&gt;
*[[Installing_AMP]] lots of XAMPP stuff.  XAMPP stands for X (cross platform), Apache, MySQL,PHP and Perl.  XAMPP used in Moodle does not include Perl. MAMP stands for Mac, Apache, MySQL and PHP.  &lt;br /&gt;
*[[Installation Package for OS X]] &lt;br /&gt;
&lt;br /&gt;
[[es:Paquetes para Instalación Completa para Windows]]&lt;br /&gt;
[[pl:Kompletne pakiety instalacyjne]]&lt;br /&gt;
[[de:Vollständiges Installationspaket für Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125448</id>
		<title>Complete install packages for Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125448"/>
		<updated>2016-09-27T09:44:48Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Adding some more links to apachefrieds, bitnami, moodlecloud&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Complete install packages are available from Moodle.org&#039;s [https://download.moodle.org/windows/ Windows download page] and also from [https://bitnami.com/stacks Bitnami stacks]. The packages are designed for new installations on a standalone computer. All them use the popular [https://www.apachefriends.org/ XAMPP Apache Friends packages]. The complete install package can be used on a server, but &#039;&#039;&#039;it is not recommended that it be used as a production site&#039;&#039;&#039;. Please note Moodle.org&#039;s [http://download.moodle.org Standard install packages] only contain the Moodle code.&lt;br /&gt;
&lt;br /&gt;
This document provides instructions for using the Windows packages. Separate instructions are available for [[Complete Install Packages for Mac OS X|Mac OS X packages]].&lt;br /&gt;
&lt;br /&gt;
The complete install packages allow Moodle to be installed, along with the prerequisites that includes a web server, Apache, database, MySQL, scripting language, PHP, an administration tool, phpMyAdmin and Moodle all wrapped in the Xampp-lite shell. Several versions of the complete install package are available. The instructions on the download page provide guidance on which version is likely to be most suitable.&lt;br /&gt;
&lt;br /&gt;
In short, complete install packages are designed to create a matched webserver and Moodle site on a standalone computer with minimal effort. &lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
:*256 MB RAM (minimum), 1GB RAM (recommended)&lt;br /&gt;
:*500 MB free Fixed Disk (more space will be needed depending on user uploads)&lt;br /&gt;
:* For old versions of Moodle:&lt;br /&gt;
:**Windows 98/ME (minimum)&lt;br /&gt;
:**Windows NT/2000/XP/2003 (recommended)&lt;br /&gt;
:* For Moodle 3.1 and later versions:&lt;br /&gt;
:**Windows Vista/7/8/10/2008/2012&lt;br /&gt;
:**Microsoft Visual C++ 2015 Redistributable package is required for PHP ([https://www.microsoft.com/en-us/download/details.aspx?id=48145 download link)].&lt;br /&gt;
&lt;br /&gt;
===Port 80 Conflict if Skype is already installed===&lt;br /&gt;
As the Moodle Windows package uses the same port (80) as [http://www.skype.com/en/ Skype] does, it will not work if the computer has Skype already installed.&lt;br /&gt;
&lt;br /&gt;
The fix is very simple: Exit Skype (don&#039;t just close the window), then start the Moodle Windows package. Once Moodle for Windows is running, it should be safe to start Skype again. If the local Moodle is using the port 80, Skype will automatically select a different port when it is run.&lt;br /&gt;
&lt;br /&gt;
===Vista and Windows 7/8/10===&lt;br /&gt;
&lt;br /&gt;
Packages generated for Moodle 3.1 and later versions should work with Vista/7/8/10 out of the box. They include PHP 7 and MariaDB instead of MySQL, resulting in a smoother experience than previous versions of the packages.&lt;br /&gt;
&lt;br /&gt;
People facing problems with the new packages should:&lt;br /&gt;
&lt;br /&gt;
:* Read the Requirements and Troubleshooting information, both here and in the package&#039;s README.txt file.&lt;br /&gt;
:* Report any consistent problem in the [https://tracker.moodle.org Moodle Tracker], so it can be investigated and, hopefully, fixed.&lt;br /&gt;
:* Consider installing a virtual machine (eg, [https://www.virtualbox.org/ VirtualBox]) with a windows or linux LAMP stack and then install Moodle there.&lt;br /&gt;
:* Use other Moodle-ready alternatives [https://moodlecloud.com out there].&lt;br /&gt;
&lt;br /&gt;
==Install complete package process==&lt;br /&gt;
The complete install package is a zip file that contains a webserver called [[Apache]], plus Moodle and Moodle&#039;s required [[MySQL]] database and [[PHP]] program. &lt;br /&gt;
&lt;br /&gt;
There are three basic parts to the this install process.  &lt;br /&gt;
#Download and unpack the complete install package. &lt;br /&gt;
#Start the webserver. &lt;br /&gt;
#Install Moodle using a web browser.&lt;br /&gt;
&lt;br /&gt;
===First create file structure===&lt;br /&gt;
====Download the package====&lt;br /&gt;
[http://download.moodle.org/windows Download Windows] packed-zip file from Moodle.&lt;br /&gt;
[[Image:Moodle Setup zipfile.jpg|frame|center|A downloaded complete install package Windows 1.9 zip file in Windows Explorer]]&lt;br /&gt;
 &lt;br /&gt;
====Unpack the package====&lt;br /&gt;
Unpack (extract files by clicking on) the zip file you downloaded to a drive or partition of your choice. The extract process will create three files (&amp;quot;Start Moodle&amp;quot;, &amp;quot;Stop Moodle&amp;quot;, and &amp;quot;README&amp;quot;) and a subfolder called &amp;quot;server&amp;quot;. &lt;br /&gt;
*Do NOT rename the &amp;quot;server&amp;quot; subfolder  &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; There will also be a folder under this server subfolder, called \moodle that holds the Moodle program.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Create a folder and extract the files there.  For example, you might have one folder called Moodle254 and another one called Moodle281 for different versions or purposes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Make path to &amp;quot;server&amp;quot; subfolder simple. Best way if it will be in drive root. Like &amp;quot;D:\moodle281\server&amp;quot;. A long path, especially with any strange symbols, can prevent XAMPP from working properly.&lt;br /&gt;
&lt;br /&gt;
===Second - start the webserver===&lt;br /&gt;
Now you are ready to start the webserver.  Use the &amp;quot;Start Moodle.exe&amp;quot; file which you should find in the top directory. Once the &amp;quot;Start Moodle.exe&amp;quot; program is open, don&#039;t close it; use &amp;quot;Stop Moodle.exe&amp;quot; for that purpose.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; These programs control both Apache and MySQL programs that operate the webserver.  Some sites will individually start and stop Apache and MySQL with the Xampp bat files found in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; Alternatively, on a standalone computer with several potential webservers that might be running, you can use the &amp;quot;xampp_restart.exe&amp;quot; file in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; You can also add shortcuts to the commands that start and stop the site in your Windows &amp;quot;start&amp;quot; menu.&lt;br /&gt;
 &lt;br /&gt;
Now you are ready to start the Moodle installation.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Warning:&#039;&#039; Windows XP requires the msvcr71.dll library file in order to run Xampp. Installing the [http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en .Net 1.1 framework] (not .Net 2.0 and upper) could resolve it. You can also search for the file on Google, download it and copy it into the server/apache/bin folder.&lt;br /&gt;
&lt;br /&gt;
===Third - start Moodle installation===&lt;br /&gt;
Start your web browser and type &amp;lt;nowiki&amp;gt; localhost, or  http://127.0.0.1 or http://localhost &amp;lt;/nowiki&amp;gt;in the address bar. You will either start your first time Moodle installation or if it is already installed you will enter the Moodle site&#039;s [[Front Page]] or Login screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle_Setup_localhost_browser.jpg|frame|center|A browser&#039;s addressbar showing &amp;quot;localhost&amp;quot;. Click on  the green Goto arrow will go to the installed Moodle site.]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; After Moodle installs, put the site in your &amp;quot;favorites&amp;quot; or as a &amp;quot;bookmark&amp;quot; in you browser.&lt;br /&gt;
&lt;br /&gt;
====Set language====&lt;br /&gt;
The initial install page will be displayed after you type &amp;quot;localhost&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:C Install Windows 1.png|thumb|center|600px|Set initial language]]&lt;br /&gt;
&lt;br /&gt;
*Choose your preferred language (English is used in this example) and click the “Next” button.&lt;br /&gt;
&lt;br /&gt;
====Diagnostic results====&lt;br /&gt;
A diagnostic report is displayed – hopefully it will look like this, if not you may need to address some issues.&lt;br /&gt;
[[Image:Complete Windows Install 2.png|thumb|center|546px|Moodle liked and gave a Pass ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Moodle paths====&lt;br /&gt;
The paths for your Moodle installation are shown – if you are only using this as a local testing server, accept the ones that are shown on your screen.&lt;br /&gt;
&lt;br /&gt;
What you enter in the &amp;quot;Web Address&amp;quot; field depends on what you intend to use the new Moodle installation for. &lt;br /&gt;
If you are just going to use it for local testing, then use &#039;http://localhost&#039;. &lt;br /&gt;
If you are going to test the new installation on a LAN, and will be accessing it from other machines on that LAN, then put the private IP address or network name of the serving machine, followed by a forward slash and moodle: Web Address - http://192.168.1.1/moodle&lt;br /&gt;
If you are going to test the installation on the internet, then you will need to put the public ip address followed by a forward slash and moodle: http://your_ip_address/moodle or you can put your domain name here instead.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 3.png|thumb|center|600px|Installation paths]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Database configuration====&lt;br /&gt;
*In the next fields, we enter the database settings. The fields are populated with some suggested values.&lt;br /&gt;
&lt;br /&gt;
*We strongly recommend you place a user name and password in this screen. (Don&#039;t forget them).&lt;br /&gt;
&lt;br /&gt;
*DO NOT USE THE “ROOT” USER WITHOUT A PASSWORD FOR PRODUCTION INSTALLATIONS AS THIS CREATES A SECURITY VULNERABILITY&lt;br /&gt;
[[image:Complete install Windows 4.png|thumb|center|535px|Installation&#039;s database settings]]&lt;br /&gt;
&lt;br /&gt;
*When the fields have been populated, click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Check server====&lt;br /&gt;
The install process checks the server it installed.&lt;br /&gt;
[[image:Complete install Windows 5.png|thumb|center|535px|Check server environment screen]]&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Confirm initial language pack====&lt;br /&gt;
Moodle will now check to see if the language pack is available for the language you selected at the first step.  If it is not, Moodle will continue with the install in English.&lt;br /&gt;
[[image:Complete install Windows 6.png|thumb|center|535px|Language pack check]]&lt;br /&gt;
&lt;br /&gt;
====Confirm config.php====&lt;br /&gt;
Provided the Moodle folder is writable, a message confirming the configuration has been completed will be displayed.&lt;br /&gt;
[[image:Complete install Windows 7.png|thumb|center|549px|Confirmation that config.php has been created]]&lt;br /&gt;
&lt;br /&gt;
*Click the “ Continue” button to proceed.&lt;br /&gt;
&lt;br /&gt;
====Moodle copyright &amp;amp; agreement====&lt;br /&gt;
The Moodle copyright / license notices are displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 8.png|thumb|center|400px|Copyright notice and agreement]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Yes” button to continue.  &lt;br /&gt;
&lt;br /&gt;
====Current release and unattended option====&lt;br /&gt;
The current release information is shown. &lt;br /&gt;
&#039;&#039;&#039;Check off the unattended operations box&#039;&#039;&#039;. This will automatically advance through many screens.  If you would like to watch the install screen by screen, do not check this box and be prepared to press the &amp;quot;continute button&amp;quot; many times.&lt;br /&gt;
 &lt;br /&gt;
*Click the &amp;quot;Continue&amp;quot; button and wait.&lt;br /&gt;
[[Image:Complete install Windows 9.png|thumb|center|600px|Current release and &amp;quot;unattended&amp;quot; check box]]&lt;br /&gt;
&lt;br /&gt;
====Installation modules and blocks screens====&lt;br /&gt;
In most cases this will be followed by a series of screens that have a continue button on the bottom.  This process stops with Admin user profile settings which needs to be filled out.&lt;br /&gt;
&lt;br /&gt;
====Administrator user profile====&lt;br /&gt;
[[Image:Complete install Windows 10.png|thumb|center|The administrator&#039;s users profile screen]]&lt;br /&gt;
&lt;br /&gt;
Fill out the required fields.&lt;br /&gt;
*Click on &amp;quot;Save&amp;quot; to continue&lt;br /&gt;
&lt;br /&gt;
====Front page settings====&lt;br /&gt;
The next screen is the Front Page settings page.  There are two parts to it.&lt;br /&gt;
The first part will ask for your Full site name and a short name for the navigation bar. There is also a place for a description. You can change these later.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11a.png|thumb|center|The Moodle sites [[Front Page]] information]]&lt;br /&gt;
&lt;br /&gt;
The second part on the bottom instructs Moodle if you will disable the new user self [[authentication]] through email process.  The default is to disable.  This can be changed later in the [[Site administration block|site administration block]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11ba.png|thumb|center|500px|Determine if users can create their own profiles when they log onto the side via email self authentication]]&lt;br /&gt;
&lt;br /&gt;
*Click on &amp;quot;Save changes&amp;quot; button to go to Moodle sites home page.&lt;br /&gt;
&lt;br /&gt;
====Moodle on====&lt;br /&gt;
&#039;&#039;&#039;Now you are ready to Moodle !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 12.png|thumb|center|Blank Front page of your new site]]&lt;br /&gt;
&lt;br /&gt;
The Site Administration block is on the left, the &amp;quot;Turn edit on&amp;quot; button in the upper right corner, withe the site description block just below it.&lt;br /&gt;
&lt;br /&gt;
===Congratulations - Moodle has been installed===&lt;br /&gt;
This finishes the installation of a complete package.   Type &amp;lt;nowiki&amp;gt;http://localhost&amp;lt;/nowiki&amp;gt; (or what ever you set for web address earlier in the setup!) in your browser and Moodle will open. &lt;br /&gt;
&lt;br /&gt;
Your next task will be to configure Moodle to meet your needs.  Don&#039;t worry, it is easy to change any of the settings now that Moodle is up and running.&lt;br /&gt;
*Check &#039;&#039;Settings &amp;gt; Site administration&#039;&#039; for further links.&lt;br /&gt;
&lt;br /&gt;
==More tips and cautions==&lt;br /&gt;
*For installation on a Windows 2000 or Windows 2003 production server it is good practice to perform a manual install (see the manual installation section in [[Windows_installation|Windows Installation]]). &lt;br /&gt;
&lt;br /&gt;
*After installing the Windows package, you may wish to add additional contributed modules and plugins.  Theset may involve more customization of configuration files.&lt;br /&gt;
&lt;br /&gt;
*The latest complete install package version components, may not be backwardly compatible. Always check version compatibility of each component if you intend to develop materials on a later version of Moodle than the version installed on your &amp;quot;main&amp;quot; Moodle site.  In short, complete install packages are designed for first time install on a &amp;quot;clean&amp;quot; machine.  &lt;br /&gt;
&lt;br /&gt;
== Security matters (A MUST READ!)==&lt;br /&gt;
&lt;br /&gt;
As mentioned before, XAMPP is not meant for production use but only for developers &lt;br /&gt;
in a development environment. The way XAMPP is configured is to be open as possible &lt;br /&gt;
and allowing the developer anything he/she wants. For development environments this &lt;br /&gt;
is great but in a production environment it could be fatal. Here a list of missing security &lt;br /&gt;
in XAMPP:&lt;br /&gt;
&lt;br /&gt;
The MySQL administrator (root) has no password.&lt;br /&gt;
The MySQL daemon is accessible via network.&lt;br /&gt;
phpMyAdmin is accessible via network.&lt;br /&gt;
Examples are accessible via network.&lt;br /&gt;
&lt;br /&gt;
To fix most of the security weaknesses simply call the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/security/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The root password for MySQL + phpMyAdmin and also a XAMPP directory protection can be established here.&lt;br /&gt;
&lt;br /&gt;
Note that on the Windows installer package, some (all?) of these issues have been fixed already by default and the above link does not work.&lt;br /&gt;
&lt;br /&gt;
If in doubt, more info is [http://www.apachefriends.org/en/faq-xampp-windows.html  here]&lt;br /&gt;
&lt;br /&gt;
== Apache and MySQL tweaks ==&lt;br /&gt;
Most of the time it is not necessary to tweak Apache or MySQL after completing the complete install package. Nor is it necessary to individually start and stop them because that is what the Xampp_start, Xampp_restart and Xammp_stop files are for.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing Apache and MySQL as services===&lt;br /&gt;
(This is only for NT4 | Windows 2000 | Windows XP operating systems)&lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_installservice.bat =&lt;br /&gt;
==&amp;gt; Install Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_installservice.bat =&lt;br /&gt;
==&amp;gt; Install MySQL as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall MySQL as service   &lt;br /&gt;
&lt;br /&gt;
==&amp;gt; After all Service (un)installations, please restart your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apache Notes===&lt;br /&gt;
&lt;br /&gt;
You can use the apache_start and apache_stop bat files to start and stop apache from running. However the Xampp_start or Xampp_restart and Xampp_stop is recommended to turn on/off both Apache and MySQL.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
If you find that Apache is very flaky, with the page often not loading properly or even at all (especially on localhost), try adding these lines to the end of C:\your_moodle_installer_directory\apache\conf\httpd.conf &lt;br /&gt;
&lt;br /&gt;
  EnableSendfile Off&lt;br /&gt;
  EnableMMAP Off&lt;br /&gt;
  Win32DisableAcceptEx&lt;br /&gt;
&lt;br /&gt;
If You edit some .php files but browser still show old state of them, try to disable eAccelerator extension in \server\php\php.ini&lt;br /&gt;
&lt;br /&gt;
 [eAccelerator]&lt;br /&gt;
 ;extension=eaccelerator.dll&lt;br /&gt;
&lt;br /&gt;
===MySQL notes===&lt;br /&gt;
Again, the recommendation to start and stop the entire webserver is to use the xampp_start or Xampp_restart and the Xampp_stop.  The following maybe useful if you wish to tweak the system further.  Please be careful.&lt;br /&gt;
&lt;br /&gt;
(1) The MySQL server can be started by double-clicking (executing) mysql_start.bat. This file can be found in the same folder you installed xampp in, most likely this will be C:\xampplite\.  The exact path to this file is X:\xampplite\mysql_start.bat, where &amp;quot;X&amp;quot; indicates the letter of the drive you unpacked xampp into.This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.&lt;br /&gt;
    &lt;br /&gt;
Do not close the DOS window or you&#039;ll crash the server! To stop the server, please use mysql_shutdown.bat, which is located in the same directory.&lt;br /&gt;
&lt;br /&gt;
(2) To use the MySQL Daemon with &amp;quot;innodb&amp;quot; for better performance, &lt;br /&gt;
please edit the &amp;quot;my&amp;quot; (or &amp;quot;my.cnf&amp;quot;) file in the /xampplite/mysql/bin directory or for services the c:\my.cnf for windows NT/2000/XP. In that director, activate the&lt;br /&gt;
 &amp;quot;innodb_data_file_path=ibdata1:30M&amp;quot;&lt;br /&gt;
statement. Attention, &amp;quot;innodb&amp;quot; is not recommended for 95/98/ME.&lt;br /&gt;
    &lt;br /&gt;
:To use MySQL as Service for NT/2000/XP, simply copy the &amp;quot;my&amp;quot; / &amp;quot;my.cnf&amp;quot; file to C:\my, or C:\my.cnf. Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the &amp;quot;mysql_installservice.bat&amp;quot; in the mysql folder. 	&lt;br /&gt;
   	&lt;br /&gt;
&lt;br /&gt;
(3) MySQL starts with standard values for the user id and the password. The preset user id is &amp;quot;root&amp;quot;, the password is &amp;quot;&amp;quot; (= no password). To access MySQL via PHP with the preset values, you&#039;ll have to use the following syntax:&lt;br /&gt;
 mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;root&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
If you want to set a password for MySQL access, please use of mysqladmin.&lt;br /&gt;
To set the password &amp;quot;secret&amp;quot; for the user &amp;quot;root&amp;quot;, type the following:&lt;br /&gt;
   &lt;br /&gt;
  \xampplite\mysql\bin\mysqladmin -u root password secret&lt;br /&gt;
    &lt;br /&gt;
After changing the password you&#039;ll have to reconfigure phpMyAdmin to use the new password, otherwise it won&#039;t be able to access the databases. To do that, open the file config.inc.php in \xampplite\phpmyadmin\ and edit the following lines:    &lt;br /&gt;
    &lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;user&#039;]            = &#039;root&#039;;   // MySQL user&lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;auth_type&#039;]       = &#039;http&#039;;   // HTTP authentificate&lt;br /&gt;
&lt;br /&gt;
So first the &#039;root&#039; password is queried by the MySQL server, before phpMyAdmin may access.&lt;br /&gt;
  	    	&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Have a lot of fun! Viel Spaß! Bonne Chance!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.moodle.org/19/en/Installation_guide_-_Moodle_for_Windows_on_a_USB_Memory_Stick Installation guide - Moodle 1.9 for Windows on a USB Memory Stick]&lt;br /&gt;
*Return to [[Windows installation]]&lt;br /&gt;
*[[Windows 1 computer many servers |Multiple web servers, on 1 computer]] similar to windows installation page, with some tips&lt;br /&gt;
*[https://docs.moodle.org/en/Windows_installation_using_XAMPP#Troubleshooting Troubleshooting]if you are running Skype. &lt;br /&gt;
*[[Installing_AMP]] lots of XAMPP stuff.  XAMPP stands for X (cross platform), Apache, MySQL,PHP and Perl.  XAMPP used in Moodle does not include Perl. MAMP stands for Mac, Apache, MySQL and PHP.  &lt;br /&gt;
*[[Installation Package for OS X]] &lt;br /&gt;
&lt;br /&gt;
[[es:Paquetes para Instalación Completa para Windows]]&lt;br /&gt;
[[pl:Kompletne pakiety instalacyjne]]&lt;br /&gt;
[[de:Vollständiges Installationspaket für Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125447</id>
		<title>Complete install packages for Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125447"/>
		<updated>2016-09-27T09:27:29Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Added MVC++ resdistributable requirement and links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Complete install packages are available from Moodle.org&#039;s [http://download.moodle.org/windows/ Windows download page] and from bitnami (for newer Windows versions). The packages are designed for new installations on a standalone computer. The complete install package can be used on a server, but &#039;&#039;&#039;it is not recommended that it be used as a production site&#039;&#039;&#039;. Please note Moodle.org&#039;s [http://download.moodle.org Standard install packages] only contain the Moodle code.&lt;br /&gt;
&lt;br /&gt;
This document provides instructions for using the Windows packages. Separate instructions are available for [[Complete Install Packages for Mac OS X|Mac OS X packages]].&lt;br /&gt;
&lt;br /&gt;
The complete install packages allow Moodle to be installed, along with the prerequisites that includes a web server, Apache, database, MySQL, scripting language, PHP, an administration tool, phpMyAdmin and Moodle all wrapped in the Xampp-lite shell. Several versions of the complete install package are available. The instructions on the download page provide guidance on which version is likely to be most suitable.&lt;br /&gt;
&lt;br /&gt;
In short, complete install packages are designed to create a matched webserver and Moodle site on a standalone computer with minimal effort. &lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
:*256 MB RAM (minimum), 1GB RAM (recommended)&lt;br /&gt;
:*500 MB free Fixed Disk (more space will be needed depending on user uploads)&lt;br /&gt;
:* For old versions of Moodle:&lt;br /&gt;
:**Windows 98/ME (minimum)&lt;br /&gt;
:**Windows NT/2000/XP/2003 (recommended)&lt;br /&gt;
:* For Moodle 3.1 and later versions:&lt;br /&gt;
:**Windows Vista/7/8/10/2008/2012&lt;br /&gt;
:**Microsoft Visual C++ 2015 Redistributable package is required for PHP ([https://www.microsoft.com/en-us/download/details.aspx?id=48145 download link)].&lt;br /&gt;
&lt;br /&gt;
===Port 80 Conflict if Skype is already installed===&lt;br /&gt;
As the Moodle Windows package uses the same port (80) as [http://www.skype.com/en/ Skype] does, it will not work if the computer has Skype already installed.&lt;br /&gt;
&lt;br /&gt;
The fix is very simple: Exit Skype (don&#039;t just close the window), then start the Moodle Windows package. Once Moodle for Windows is running, it should be safe to start Skype again. If the local Moodle is using the port 80, Skype will automatically select a different port when it is run.&lt;br /&gt;
&lt;br /&gt;
===Vista and Windows 7/8/10===&lt;br /&gt;
&lt;br /&gt;
Packages generated for Moodle 3.1 and later versions should work with Vista/7/8/10 out of the box. They include PHP 7 and MariaDB instead of MySQL, resulting in a smoother experience than previous versions of the packages.&lt;br /&gt;
&lt;br /&gt;
People facing problems with the new packages should:&lt;br /&gt;
&lt;br /&gt;
:* Read the Requirements and Troubleshooting information, both here and in the package&#039;s README.txt file.&lt;br /&gt;
:* Report any consistent problem in the [https://tracker.moodle.org Moodle Tracker], so it can be investigated and, hopefully, fixed.&lt;br /&gt;
:* Consider installing a virtual machine (eg, [https://www.virtualbox.org/ VirtualBox]) with a windows or linux LAMP stack and then install Moodle there.&lt;br /&gt;
:* Use other Moodle packaged alternatives out there.&lt;br /&gt;
&lt;br /&gt;
==Install complete package process==&lt;br /&gt;
The complete install package is a zip file that contains a webserver called [[Apache]], plus Moodle and Moodle&#039;s required [[MySQL]] database and [[PHP]] program. &lt;br /&gt;
&lt;br /&gt;
There are three basic parts to the this install process.  &lt;br /&gt;
#Download and unpack the complete install package. &lt;br /&gt;
#Start the webserver. &lt;br /&gt;
#Install Moodle using a web browser.&lt;br /&gt;
&lt;br /&gt;
===First create file structure===&lt;br /&gt;
====Download the package====&lt;br /&gt;
[http://download.moodle.org/windows Download Windows] packed-zip file from Moodle.&lt;br /&gt;
[[Image:Moodle Setup zipfile.jpg|frame|center|A downloaded complete install package Windows 1.9 zip file in Windows Explorer]]&lt;br /&gt;
 &lt;br /&gt;
====Unpack the package====&lt;br /&gt;
Unpack (extract files by clicking on) the zip file you downloaded to a drive or partition of your choice. The extract process will create three files (&amp;quot;Start Moodle&amp;quot;, &amp;quot;Stop Moodle&amp;quot;, and &amp;quot;README&amp;quot;) and a subfolder called &amp;quot;server&amp;quot;. &lt;br /&gt;
*Do NOT rename the &amp;quot;server&amp;quot; subfolder  &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; There will also be a folder under this server subfolder, called \moodle that holds the Moodle program.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Create a folder and extract the files there.  For example, you might have one folder called Moodle254 and another one called Moodle281 for different versions or purposes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Make path to &amp;quot;server&amp;quot; subfolder simple. Best way if it will be in drive root. Like &amp;quot;D:\moodle281\server&amp;quot;. A long path, especially with any strange symbols, can prevent XAMPP from working properly.&lt;br /&gt;
&lt;br /&gt;
===Second - start the webserver===&lt;br /&gt;
Now you are ready to start the webserver.  Use the &amp;quot;Start Moodle.exe&amp;quot; file which you should find in the top directory. Once the &amp;quot;Start Moodle.exe&amp;quot; program is open, don&#039;t close it; use &amp;quot;Stop Moodle.exe&amp;quot; for that purpose.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; These programs control both Apache and MySQL programs that operate the webserver.  Some sites will individually start and stop Apache and MySQL with the Xampp bat files found in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; Alternatively, on a standalone computer with several potential webservers that might be running, you can use the &amp;quot;xampp_restart.exe&amp;quot; file in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; You can also add shortcuts to the commands that start and stop the site in your Windows &amp;quot;start&amp;quot; menu.&lt;br /&gt;
 &lt;br /&gt;
Now you are ready to start the Moodle installation.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Warning:&#039;&#039; Windows XP requires the msvcr71.dll library file in order to run Xampp. Installing the [http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en .Net 1.1 framework] (not .Net 2.0 and upper) could resolve it. You can also search for the file on Google, download it and copy it into the server/apache/bin folder.&lt;br /&gt;
&lt;br /&gt;
===Third - start Moodle installation===&lt;br /&gt;
Start your web browser and type &amp;lt;nowiki&amp;gt; localhost, or  http://127.0.0.1 or http://localhost &amp;lt;/nowiki&amp;gt;in the address bar. You will either start your first time Moodle installation or if it is already installed you will enter the Moodle site&#039;s [[Front Page]] or Login screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle_Setup_localhost_browser.jpg|frame|center|A browser&#039;s addressbar showing &amp;quot;localhost&amp;quot;. Click on  the green Goto arrow will go to the installed Moodle site.]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; After Moodle installs, put the site in your &amp;quot;favorites&amp;quot; or as a &amp;quot;bookmark&amp;quot; in you browser.&lt;br /&gt;
&lt;br /&gt;
====Set language====&lt;br /&gt;
The initial install page will be displayed after you type &amp;quot;localhost&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:C Install Windows 1.png|thumb|center|600px|Set initial language]]&lt;br /&gt;
&lt;br /&gt;
*Choose your preferred language (English is used in this example) and click the “Next” button.&lt;br /&gt;
&lt;br /&gt;
====Diagnostic results====&lt;br /&gt;
A diagnostic report is displayed – hopefully it will look like this, if not you may need to address some issues.&lt;br /&gt;
[[Image:Complete Windows Install 2.png|thumb|center|546px|Moodle liked and gave a Pass ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Moodle paths====&lt;br /&gt;
The paths for your Moodle installation are shown – if you are only using this as a local testing server, accept the ones that are shown on your screen.&lt;br /&gt;
&lt;br /&gt;
What you enter in the &amp;quot;Web Address&amp;quot; field depends on what you intend to use the new Moodle installation for. &lt;br /&gt;
If you are just going to use it for local testing, then use &#039;http://localhost&#039;. &lt;br /&gt;
If you are going to test the new installation on a LAN, and will be accessing it from other machines on that LAN, then put the private IP address or network name of the serving machine, followed by a forward slash and moodle: Web Address - http://192.168.1.1/moodle&lt;br /&gt;
If you are going to test the installation on the internet, then you will need to put the public ip address followed by a forward slash and moodle: http://your_ip_address/moodle or you can put your domain name here instead.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 3.png|thumb|center|600px|Installation paths]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Database configuration====&lt;br /&gt;
*In the next fields, we enter the database settings. The fields are populated with some suggested values.&lt;br /&gt;
&lt;br /&gt;
*We strongly recommend you place a user name and password in this screen. (Don&#039;t forget them).&lt;br /&gt;
&lt;br /&gt;
*DO NOT USE THE “ROOT” USER WITHOUT A PASSWORD FOR PRODUCTION INSTALLATIONS AS THIS CREATES A SECURITY VULNERABILITY&lt;br /&gt;
[[image:Complete install Windows 4.png|thumb|center|535px|Installation&#039;s database settings]]&lt;br /&gt;
&lt;br /&gt;
*When the fields have been populated, click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Check server====&lt;br /&gt;
The install process checks the server it installed.&lt;br /&gt;
[[image:Complete install Windows 5.png|thumb|center|535px|Check server environment screen]]&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Confirm initial language pack====&lt;br /&gt;
Moodle will now check to see if the language pack is available for the language you selected at the first step.  If it is not, Moodle will continue with the install in English.&lt;br /&gt;
[[image:Complete install Windows 6.png|thumb|center|535px|Language pack check]]&lt;br /&gt;
&lt;br /&gt;
====Confirm config.php====&lt;br /&gt;
Provided the Moodle folder is writable, a message confirming the configuration has been completed will be displayed.&lt;br /&gt;
[[image:Complete install Windows 7.png|thumb|center|549px|Confirmation that config.php has been created]]&lt;br /&gt;
&lt;br /&gt;
*Click the “ Continue” button to proceed.&lt;br /&gt;
&lt;br /&gt;
====Moodle copyright &amp;amp; agreement====&lt;br /&gt;
The Moodle copyright / license notices are displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 8.png|thumb|center|400px|Copyright notice and agreement]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Yes” button to continue.  &lt;br /&gt;
&lt;br /&gt;
====Current release and unattended option====&lt;br /&gt;
The current release information is shown. &lt;br /&gt;
&#039;&#039;&#039;Check off the unattended operations box&#039;&#039;&#039;. This will automatically advance through many screens.  If you would like to watch the install screen by screen, do not check this box and be prepared to press the &amp;quot;continute button&amp;quot; many times.&lt;br /&gt;
 &lt;br /&gt;
*Click the &amp;quot;Continue&amp;quot; button and wait.&lt;br /&gt;
[[Image:Complete install Windows 9.png|thumb|center|600px|Current release and &amp;quot;unattended&amp;quot; check box]]&lt;br /&gt;
&lt;br /&gt;
====Installation modules and blocks screens====&lt;br /&gt;
In most cases this will be followed by a series of screens that have a continue button on the bottom.  This process stops with Admin user profile settings which needs to be filled out.&lt;br /&gt;
&lt;br /&gt;
====Administrator user profile====&lt;br /&gt;
[[Image:Complete install Windows 10.png|thumb|center|The administrator&#039;s users profile screen]]&lt;br /&gt;
&lt;br /&gt;
Fill out the required fields.&lt;br /&gt;
*Click on &amp;quot;Save&amp;quot; to continue&lt;br /&gt;
&lt;br /&gt;
====Front page settings====&lt;br /&gt;
The next screen is the Front Page settings page.  There are two parts to it.&lt;br /&gt;
The first part will ask for your Full site name and a short name for the navigation bar. There is also a place for a description. You can change these later.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11a.png|thumb|center|The Moodle sites [[Front Page]] information]]&lt;br /&gt;
&lt;br /&gt;
The second part on the bottom instructs Moodle if you will disable the new user self [[authentication]] through email process.  The default is to disable.  This can be changed later in the [[Site administration block|site administration block]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11ba.png|thumb|center|500px|Determine if users can create their own profiles when they log onto the side via email self authentication]]&lt;br /&gt;
&lt;br /&gt;
*Click on &amp;quot;Save changes&amp;quot; button to go to Moodle sites home page.&lt;br /&gt;
&lt;br /&gt;
====Moodle on====&lt;br /&gt;
&#039;&#039;&#039;Now you are ready to Moodle !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 12.png|thumb|center|Blank Front page of your new site]]&lt;br /&gt;
&lt;br /&gt;
The Site Administration block is on the left, the &amp;quot;Turn edit on&amp;quot; button in the upper right corner, withe the site description block just below it.&lt;br /&gt;
&lt;br /&gt;
===Congratulations - Moodle has been installed===&lt;br /&gt;
This finishes the installation of a complete package.   Type &amp;lt;nowiki&amp;gt;http://localhost&amp;lt;/nowiki&amp;gt; (or what ever you set for web address earlier in the setup!) in your browser and Moodle will open. &lt;br /&gt;
&lt;br /&gt;
Your next task will be to configure Moodle to meet your needs.  Don&#039;t worry, it is easy to change any of the settings now that Moodle is up and running.&lt;br /&gt;
*Check &#039;&#039;Settings &amp;gt; Site administration&#039;&#039; for further links.&lt;br /&gt;
&lt;br /&gt;
==More tips and cautions==&lt;br /&gt;
*For installation on a Windows 2000 or Windows 2003 production server it is good practice to perform a manual install (see the manual installation section in [[Windows_installation|Windows Installation]]). &lt;br /&gt;
&lt;br /&gt;
*After installing the Windows package, you may wish to add additional contributed modules and plugins.  Theset may involve more customization of configuration files.&lt;br /&gt;
&lt;br /&gt;
*The latest complete install package version components, may not be backwardly compatible. Always check version compatibility of each component if you intend to develop materials on a later version of Moodle than the version installed on your &amp;quot;main&amp;quot; Moodle site.  In short, complete install packages are designed for first time install on a &amp;quot;clean&amp;quot; machine.  &lt;br /&gt;
&lt;br /&gt;
== Security matters (A MUST READ!)==&lt;br /&gt;
&lt;br /&gt;
As mentioned before, XAMPP is not meant for production use but only for developers &lt;br /&gt;
in a development environment. The way XAMPP is configured is to be open as possible &lt;br /&gt;
and allowing the developer anything he/she wants. For development environments this &lt;br /&gt;
is great but in a production environment it could be fatal. Here a list of missing security &lt;br /&gt;
in XAMPP:&lt;br /&gt;
&lt;br /&gt;
The MySQL administrator (root) has no password.&lt;br /&gt;
The MySQL daemon is accessible via network.&lt;br /&gt;
phpMyAdmin is accessible via network.&lt;br /&gt;
Examples are accessible via network.&lt;br /&gt;
&lt;br /&gt;
To fix most of the security weaknesses simply call the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/security/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The root password for MySQL + phpMyAdmin and also a XAMPP directory protection can be established here.&lt;br /&gt;
&lt;br /&gt;
Note that on the Windows installer package, some (all?) of these issues have been fixed already by default and the above link does not work.&lt;br /&gt;
&lt;br /&gt;
If in doubt, more info is [http://www.apachefriends.org/en/faq-xampp-windows.html  here]&lt;br /&gt;
&lt;br /&gt;
== Apache and MySQL tweaks ==&lt;br /&gt;
Most of the time it is not necessary to tweak Apache or MySQL after completing the complete install package. Nor is it necessary to individually start and stop them because that is what the Xampp_start, Xampp_restart and Xammp_stop files are for.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing Apache and MySQL as services===&lt;br /&gt;
(This is only for NT4 | Windows 2000 | Windows XP operating systems)&lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_installservice.bat =&lt;br /&gt;
==&amp;gt; Install Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_installservice.bat =&lt;br /&gt;
==&amp;gt; Install MySQL as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall MySQL as service   &lt;br /&gt;
&lt;br /&gt;
==&amp;gt; After all Service (un)installations, please restart your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apache Notes===&lt;br /&gt;
&lt;br /&gt;
You can use the apache_start and apache_stop bat files to start and stop apache from running. However the Xampp_start or Xampp_restart and Xampp_stop is recommended to turn on/off both Apache and MySQL.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
If you find that Apache is very flaky, with the page often not loading properly or even at all (especially on localhost), try adding these lines to the end of C:\your_moodle_installer_directory\apache\conf\httpd.conf &lt;br /&gt;
&lt;br /&gt;
  EnableSendfile Off&lt;br /&gt;
  EnableMMAP Off&lt;br /&gt;
  Win32DisableAcceptEx&lt;br /&gt;
&lt;br /&gt;
If You edit some .php files but browser still show old state of them, try to disable eAccelerator extension in \server\php\php.ini&lt;br /&gt;
&lt;br /&gt;
 [eAccelerator]&lt;br /&gt;
 ;extension=eaccelerator.dll&lt;br /&gt;
&lt;br /&gt;
===MySQL notes===&lt;br /&gt;
Again, the recommendation to start and stop the entire webserver is to use the xampp_start or Xampp_restart and the Xampp_stop.  The following maybe useful if you wish to tweak the system further.  Please be careful.&lt;br /&gt;
&lt;br /&gt;
(1) The MySQL server can be started by double-clicking (executing) mysql_start.bat. This file can be found in the same folder you installed xampp in, most likely this will be C:\xampplite\.  The exact path to this file is X:\xampplite\mysql_start.bat, where &amp;quot;X&amp;quot; indicates the letter of the drive you unpacked xampp into.This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.&lt;br /&gt;
    &lt;br /&gt;
Do not close the DOS window or you&#039;ll crash the server! To stop the server, please use mysql_shutdown.bat, which is located in the same directory.&lt;br /&gt;
&lt;br /&gt;
(2) To use the MySQL Daemon with &amp;quot;innodb&amp;quot; for better performance, &lt;br /&gt;
please edit the &amp;quot;my&amp;quot; (or &amp;quot;my.cnf&amp;quot;) file in the /xampplite/mysql/bin directory or for services the c:\my.cnf for windows NT/2000/XP. In that director, activate the&lt;br /&gt;
 &amp;quot;innodb_data_file_path=ibdata1:30M&amp;quot;&lt;br /&gt;
statement. Attention, &amp;quot;innodb&amp;quot; is not recommended for 95/98/ME.&lt;br /&gt;
    &lt;br /&gt;
:To use MySQL as Service for NT/2000/XP, simply copy the &amp;quot;my&amp;quot; / &amp;quot;my.cnf&amp;quot; file to C:\my, or C:\my.cnf. Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the &amp;quot;mysql_installservice.bat&amp;quot; in the mysql folder. 	&lt;br /&gt;
   	&lt;br /&gt;
&lt;br /&gt;
(3) MySQL starts with standard values for the user id and the password. The preset user id is &amp;quot;root&amp;quot;, the password is &amp;quot;&amp;quot; (= no password). To access MySQL via PHP with the preset values, you&#039;ll have to use the following syntax:&lt;br /&gt;
 mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;root&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
If you want to set a password for MySQL access, please use of mysqladmin.&lt;br /&gt;
To set the password &amp;quot;secret&amp;quot; for the user &amp;quot;root&amp;quot;, type the following:&lt;br /&gt;
   &lt;br /&gt;
  \xampplite\mysql\bin\mysqladmin -u root password secret&lt;br /&gt;
    &lt;br /&gt;
After changing the password you&#039;ll have to reconfigure phpMyAdmin to use the new password, otherwise it won&#039;t be able to access the databases. To do that, open the file config.inc.php in \xampplite\phpmyadmin\ and edit the following lines:    &lt;br /&gt;
    &lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;user&#039;]            = &#039;root&#039;;   // MySQL user&lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;auth_type&#039;]       = &#039;http&#039;;   // HTTP authentificate&lt;br /&gt;
&lt;br /&gt;
So first the &#039;root&#039; password is queried by the MySQL server, before phpMyAdmin may access.&lt;br /&gt;
  	    	&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Have a lot of fun! Viel Spaß! Bonne Chance!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.moodle.org/19/en/Installation_guide_-_Moodle_for_Windows_on_a_USB_Memory_Stick Installation guide - Moodle 1.9 for Windows on a USB Memory Stick]&lt;br /&gt;
*Return to [[Windows installation]]&lt;br /&gt;
*[[Windows 1 computer many servers |Multiple web servers, on 1 computer]] similar to windows installation page, with some tips&lt;br /&gt;
*[https://docs.moodle.org/en/Windows_installation_using_XAMPP#Troubleshooting Troubleshooting]if you are running Skype. &lt;br /&gt;
*[[Installing_AMP]] lots of XAMPP stuff.  XAMPP stands for X (cross platform), Apache, MySQL,PHP and Perl.  XAMPP used in Moodle does not include Perl. MAMP stands for Mac, Apache, MySQL and PHP.  &lt;br /&gt;
*[[Installation Package for OS X]] &lt;br /&gt;
&lt;br /&gt;
[[es:Paquetes para Instalación Completa para Windows]]&lt;br /&gt;
[[pl:Kompletne pakiety instalacyjne]]&lt;br /&gt;
[[de:Vollständiges Installationspaket für Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125446</id>
		<title>Complete install packages for Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125446"/>
		<updated>2016-09-27T09:22:50Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: new packages supporting vista and later available&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Complete install packages are available from Moodle.org&#039;s [http://download.moodle.org/windows/ Windows download page] and from bitnami (for newer Windows versions). The packages are designed for new installations on a standalone computer. The complete install package can be used on a server, but &#039;&#039;&#039;it is not recommended that it be used as a production site&#039;&#039;&#039;. Please note Moodle.org&#039;s [http://download.moodle.org Standard install packages] only contain the Moodle code.&lt;br /&gt;
&lt;br /&gt;
This document provides instructions for using the Windows packages. Separate instructions are available for [[Complete Install Packages for Mac OS X|Mac OS X packages]].&lt;br /&gt;
&lt;br /&gt;
The complete install packages allow Moodle to be installed, along with the prerequisites that includes a web server, Apache, database, MySQL, scripting language, PHP, an administration tool, phpMyAdmin and Moodle all wrapped in the Xampp-lite shell. Several versions of the complete install package are available. The instructions on the download page provide guidance on which version is likely to be most suitable.&lt;br /&gt;
&lt;br /&gt;
In short, complete install packages are designed to create a matched webserver and Moodle site on a standalone computer with minimal effort. &lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
:*256 MB RAM (minimum), 1GB RAM (recommended)&lt;br /&gt;
:*500 MB free Fixed Disk (more space will be needed depending on user uploads)&lt;br /&gt;
:* For old versions of Moodle:&lt;br /&gt;
:**Windows 98/ME (minimum)&lt;br /&gt;
:**Windows NT/2000/XP/2003 (recommended)&lt;br /&gt;
:* For Moodle 3.1 and later versions:&lt;br /&gt;
:**Windows Vista/7/8/10/2008/2012&lt;br /&gt;
&lt;br /&gt;
===Port 80 Conflict if Skype is already installed===&lt;br /&gt;
As the Moodle Windows package uses the same port (80) as [http://www.skype.com/en/ Skype] does, it will not work if the computer has Skype already installed.&lt;br /&gt;
&lt;br /&gt;
The fix is very simple: Exit Skype (don&#039;t just close the window), then start the Moodle Windows package. Once Moodle for Windows is running, it should be safe to start Skype again. If the local Moodle is using the port 80, Skype will automatically select a different port when it is run.&lt;br /&gt;
&lt;br /&gt;
===Vista and Windows 7/8/10===&lt;br /&gt;
&lt;br /&gt;
Packages generated for Moodle 3.1 and later versions should work with Vista/7/8/10 out of the box. They include PHP 7 and MariaDB instead of MySQL, resulting in a smoother experience than previous versions of the packages.&lt;br /&gt;
&lt;br /&gt;
People facing problems with the new packages should:&lt;br /&gt;
&lt;br /&gt;
:* Read the Troubleshooting information, both here and in the package&#039;s README.txt file.&lt;br /&gt;
:* Report any consistent problem in the Moodle Tracker, so it can be investigated and, hopefully, fixed.&lt;br /&gt;
:* Consider installing a virtual machine (eg, [https://www.virtualbox.org/ VirtualBox]) with a windows or linux LAMP stack and then install Moodle there.&lt;br /&gt;
:* Use other Moodle packaged alternatives out there.&lt;br /&gt;
&lt;br /&gt;
==Install complete package process==&lt;br /&gt;
The complete install package is a zip file that contains a webserver called [[Apache]], plus Moodle and Moodle&#039;s required [[MySQL]] database and [[PHP]] program. &lt;br /&gt;
&lt;br /&gt;
There are three basic parts to the this install process.  &lt;br /&gt;
#Download and unpack the complete install package. &lt;br /&gt;
#Start the webserver. &lt;br /&gt;
#Install Moodle using a web browser.&lt;br /&gt;
&lt;br /&gt;
===First create file structure===&lt;br /&gt;
====Download the package====&lt;br /&gt;
[http://download.moodle.org/windows Download Windows] packed-zip file from Moodle.&lt;br /&gt;
[[Image:Moodle Setup zipfile.jpg|frame|center|A downloaded complete install package Windows 1.9 zip file in Windows Explorer]]&lt;br /&gt;
 &lt;br /&gt;
====Unpack the package====&lt;br /&gt;
Unpack (extract files by clicking on) the zip file you downloaded to a drive or partition of your choice. The extract process will create three files (&amp;quot;Start Moodle&amp;quot;, &amp;quot;Stop Moodle&amp;quot;, and &amp;quot;README&amp;quot;) and a subfolder called &amp;quot;server&amp;quot;. &lt;br /&gt;
*Do NOT rename the &amp;quot;server&amp;quot; subfolder  &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; There will also be a folder under this server subfolder, called \moodle that holds the Moodle program.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Create a folder and extract the files there.  For example, you might have one folder called Moodle254 and another one called Moodle281 for different versions or purposes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Make path to &amp;quot;server&amp;quot; subfolder simple. Best way if it will be in drive root. Like &amp;quot;D:\moodle281\server&amp;quot;. A long path, especially with any strange symbols, can prevent XAMPP from working properly.&lt;br /&gt;
&lt;br /&gt;
===Second - start the webserver===&lt;br /&gt;
Now you are ready to start the webserver.  Use the &amp;quot;Start Moodle.exe&amp;quot; file which you should find in the top directory. Once the &amp;quot;Start Moodle.exe&amp;quot; program is open, don&#039;t close it; use &amp;quot;Stop Moodle.exe&amp;quot; for that purpose.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; These programs control both Apache and MySQL programs that operate the webserver.  Some sites will individually start and stop Apache and MySQL with the Xampp bat files found in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; Alternatively, on a standalone computer with several potential webservers that might be running, you can use the &amp;quot;xampp_restart.exe&amp;quot; file in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; You can also add shortcuts to the commands that start and stop the site in your Windows &amp;quot;start&amp;quot; menu.&lt;br /&gt;
 &lt;br /&gt;
Now you are ready to start the Moodle installation.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Warning:&#039;&#039; Windows XP requires the msvcr71.dll library file in order to run Xampp. Installing the [http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en .Net 1.1 framework] (not .Net 2.0 and upper) could resolve it. You can also search for the file on Google, download it and copy it into the server/apache/bin folder.&lt;br /&gt;
&lt;br /&gt;
===Third - start Moodle installation===&lt;br /&gt;
Start your web browser and type &amp;lt;nowiki&amp;gt; localhost, or  http://127.0.0.1 or http://localhost &amp;lt;/nowiki&amp;gt;in the address bar. You will either start your first time Moodle installation or if it is already installed you will enter the Moodle site&#039;s [[Front Page]] or Login screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle_Setup_localhost_browser.jpg|frame|center|A browser&#039;s addressbar showing &amp;quot;localhost&amp;quot;. Click on  the green Goto arrow will go to the installed Moodle site.]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; After Moodle installs, put the site in your &amp;quot;favorites&amp;quot; or as a &amp;quot;bookmark&amp;quot; in you browser.&lt;br /&gt;
&lt;br /&gt;
====Set language====&lt;br /&gt;
The initial install page will be displayed after you type &amp;quot;localhost&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:C Install Windows 1.png|thumb|center|600px|Set initial language]]&lt;br /&gt;
&lt;br /&gt;
*Choose your preferred language (English is used in this example) and click the “Next” button.&lt;br /&gt;
&lt;br /&gt;
====Diagnostic results====&lt;br /&gt;
A diagnostic report is displayed – hopefully it will look like this, if not you may need to address some issues.&lt;br /&gt;
[[Image:Complete Windows Install 2.png|thumb|center|546px|Moodle liked and gave a Pass ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Moodle paths====&lt;br /&gt;
The paths for your Moodle installation are shown – if you are only using this as a local testing server, accept the ones that are shown on your screen.&lt;br /&gt;
&lt;br /&gt;
What you enter in the &amp;quot;Web Address&amp;quot; field depends on what you intend to use the new Moodle installation for. &lt;br /&gt;
If you are just going to use it for local testing, then use &#039;http://localhost&#039;. &lt;br /&gt;
If you are going to test the new installation on a LAN, and will be accessing it from other machines on that LAN, then put the private IP address or network name of the serving machine, followed by a forward slash and moodle: Web Address - http://192.168.1.1/moodle&lt;br /&gt;
If you are going to test the installation on the internet, then you will need to put the public ip address followed by a forward slash and moodle: http://your_ip_address/moodle or you can put your domain name here instead.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 3.png|thumb|center|600px|Installation paths]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Database configuration====&lt;br /&gt;
*In the next fields, we enter the database settings. The fields are populated with some suggested values.&lt;br /&gt;
&lt;br /&gt;
*We strongly recommend you place a user name and password in this screen. (Don&#039;t forget them).&lt;br /&gt;
&lt;br /&gt;
*DO NOT USE THE “ROOT” USER WITHOUT A PASSWORD FOR PRODUCTION INSTALLATIONS AS THIS CREATES A SECURITY VULNERABILITY&lt;br /&gt;
[[image:Complete install Windows 4.png|thumb|center|535px|Installation&#039;s database settings]]&lt;br /&gt;
&lt;br /&gt;
*When the fields have been populated, click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Check server====&lt;br /&gt;
The install process checks the server it installed.&lt;br /&gt;
[[image:Complete install Windows 5.png|thumb|center|535px|Check server environment screen]]&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Confirm initial language pack====&lt;br /&gt;
Moodle will now check to see if the language pack is available for the language you selected at the first step.  If it is not, Moodle will continue with the install in English.&lt;br /&gt;
[[image:Complete install Windows 6.png|thumb|center|535px|Language pack check]]&lt;br /&gt;
&lt;br /&gt;
====Confirm config.php====&lt;br /&gt;
Provided the Moodle folder is writable, a message confirming the configuration has been completed will be displayed.&lt;br /&gt;
[[image:Complete install Windows 7.png|thumb|center|549px|Confirmation that config.php has been created]]&lt;br /&gt;
&lt;br /&gt;
*Click the “ Continue” button to proceed.&lt;br /&gt;
&lt;br /&gt;
====Moodle copyright &amp;amp; agreement====&lt;br /&gt;
The Moodle copyright / license notices are displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 8.png|thumb|center|400px|Copyright notice and agreement]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Yes” button to continue.  &lt;br /&gt;
&lt;br /&gt;
====Current release and unattended option====&lt;br /&gt;
The current release information is shown. &lt;br /&gt;
&#039;&#039;&#039;Check off the unattended operations box&#039;&#039;&#039;. This will automatically advance through many screens.  If you would like to watch the install screen by screen, do not check this box and be prepared to press the &amp;quot;continute button&amp;quot; many times.&lt;br /&gt;
 &lt;br /&gt;
*Click the &amp;quot;Continue&amp;quot; button and wait.&lt;br /&gt;
[[Image:Complete install Windows 9.png|thumb|center|600px|Current release and &amp;quot;unattended&amp;quot; check box]]&lt;br /&gt;
&lt;br /&gt;
====Installation modules and blocks screens====&lt;br /&gt;
In most cases this will be followed by a series of screens that have a continue button on the bottom.  This process stops with Admin user profile settings which needs to be filled out.&lt;br /&gt;
&lt;br /&gt;
====Administrator user profile====&lt;br /&gt;
[[Image:Complete install Windows 10.png|thumb|center|The administrator&#039;s users profile screen]]&lt;br /&gt;
&lt;br /&gt;
Fill out the required fields.&lt;br /&gt;
*Click on &amp;quot;Save&amp;quot; to continue&lt;br /&gt;
&lt;br /&gt;
====Front page settings====&lt;br /&gt;
The next screen is the Front Page settings page.  There are two parts to it.&lt;br /&gt;
The first part will ask for your Full site name and a short name for the navigation bar. There is also a place for a description. You can change these later.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11a.png|thumb|center|The Moodle sites [[Front Page]] information]]&lt;br /&gt;
&lt;br /&gt;
The second part on the bottom instructs Moodle if you will disable the new user self [[authentication]] through email process.  The default is to disable.  This can be changed later in the [[Site administration block|site administration block]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11ba.png|thumb|center|500px|Determine if users can create their own profiles when they log onto the side via email self authentication]]&lt;br /&gt;
&lt;br /&gt;
*Click on &amp;quot;Save changes&amp;quot; button to go to Moodle sites home page.&lt;br /&gt;
&lt;br /&gt;
====Moodle on====&lt;br /&gt;
&#039;&#039;&#039;Now you are ready to Moodle !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 12.png|thumb|center|Blank Front page of your new site]]&lt;br /&gt;
&lt;br /&gt;
The Site Administration block is on the left, the &amp;quot;Turn edit on&amp;quot; button in the upper right corner, withe the site description block just below it.&lt;br /&gt;
&lt;br /&gt;
===Congratulations - Moodle has been installed===&lt;br /&gt;
This finishes the installation of a complete package.   Type &amp;lt;nowiki&amp;gt;http://localhost&amp;lt;/nowiki&amp;gt; (or what ever you set for web address earlier in the setup!) in your browser and Moodle will open. &lt;br /&gt;
&lt;br /&gt;
Your next task will be to configure Moodle to meet your needs.  Don&#039;t worry, it is easy to change any of the settings now that Moodle is up and running.&lt;br /&gt;
*Check &#039;&#039;Settings &amp;gt; Site administration&#039;&#039; for further links.&lt;br /&gt;
&lt;br /&gt;
==More tips and cautions==&lt;br /&gt;
*For installation on a Windows 2000 or Windows 2003 production server it is good practice to perform a manual install (see the manual installation section in [[Windows_installation|Windows Installation]]). &lt;br /&gt;
&lt;br /&gt;
*After installing the Windows package, you may wish to add additional contributed modules and plugins.  Theset may involve more customization of configuration files.&lt;br /&gt;
&lt;br /&gt;
*The latest complete install package version components, may not be backwardly compatible. Always check version compatibility of each component if you intend to develop materials on a later version of Moodle than the version installed on your &amp;quot;main&amp;quot; Moodle site.  In short, complete install packages are designed for first time install on a &amp;quot;clean&amp;quot; machine.  &lt;br /&gt;
&lt;br /&gt;
== Security matters (A MUST READ!)==&lt;br /&gt;
&lt;br /&gt;
As mentioned before, XAMPP is not meant for production use but only for developers &lt;br /&gt;
in a development environment. The way XAMPP is configured is to be open as possible &lt;br /&gt;
and allowing the developer anything he/she wants. For development environments this &lt;br /&gt;
is great but in a production environment it could be fatal. Here a list of missing security &lt;br /&gt;
in XAMPP:&lt;br /&gt;
&lt;br /&gt;
The MySQL administrator (root) has no password.&lt;br /&gt;
The MySQL daemon is accessible via network.&lt;br /&gt;
phpMyAdmin is accessible via network.&lt;br /&gt;
Examples are accessible via network.&lt;br /&gt;
&lt;br /&gt;
To fix most of the security weaknesses simply call the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/security/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The root password for MySQL + phpMyAdmin and also a XAMPP directory protection can be established here.&lt;br /&gt;
&lt;br /&gt;
Note that on the Windows installer package, some (all?) of these issues have been fixed already by default and the above link does not work.&lt;br /&gt;
&lt;br /&gt;
If in doubt, more info is [http://www.apachefriends.org/en/faq-xampp-windows.html  here]&lt;br /&gt;
&lt;br /&gt;
== Apache and MySQL tweaks ==&lt;br /&gt;
Most of the time it is not necessary to tweak Apache or MySQL after completing the complete install package. Nor is it necessary to individually start and stop them because that is what the Xampp_start, Xampp_restart and Xammp_stop files are for.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing Apache and MySQL as services===&lt;br /&gt;
(This is only for NT4 | Windows 2000 | Windows XP operating systems)&lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_installservice.bat =&lt;br /&gt;
==&amp;gt; Install Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_installservice.bat =&lt;br /&gt;
==&amp;gt; Install MySQL as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall MySQL as service   &lt;br /&gt;
&lt;br /&gt;
==&amp;gt; After all Service (un)installations, please restart your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apache Notes===&lt;br /&gt;
&lt;br /&gt;
You can use the apache_start and apache_stop bat files to start and stop apache from running. However the Xampp_start or Xampp_restart and Xampp_stop is recommended to turn on/off both Apache and MySQL.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
If you find that Apache is very flaky, with the page often not loading properly or even at all (especially on localhost), try adding these lines to the end of C:\your_moodle_installer_directory\apache\conf\httpd.conf &lt;br /&gt;
&lt;br /&gt;
  EnableSendfile Off&lt;br /&gt;
  EnableMMAP Off&lt;br /&gt;
  Win32DisableAcceptEx&lt;br /&gt;
&lt;br /&gt;
If You edit some .php files but browser still show old state of them, try to disable eAccelerator extension in \server\php\php.ini&lt;br /&gt;
&lt;br /&gt;
 [eAccelerator]&lt;br /&gt;
 ;extension=eaccelerator.dll&lt;br /&gt;
&lt;br /&gt;
===MySQL notes===&lt;br /&gt;
Again, the recommendation to start and stop the entire webserver is to use the xampp_start or Xampp_restart and the Xampp_stop.  The following maybe useful if you wish to tweak the system further.  Please be careful.&lt;br /&gt;
&lt;br /&gt;
(1) The MySQL server can be started by double-clicking (executing) mysql_start.bat. This file can be found in the same folder you installed xampp in, most likely this will be C:\xampplite\.  The exact path to this file is X:\xampplite\mysql_start.bat, where &amp;quot;X&amp;quot; indicates the letter of the drive you unpacked xampp into.This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.&lt;br /&gt;
    &lt;br /&gt;
Do not close the DOS window or you&#039;ll crash the server! To stop the server, please use mysql_shutdown.bat, which is located in the same directory.&lt;br /&gt;
&lt;br /&gt;
(2) To use the MySQL Daemon with &amp;quot;innodb&amp;quot; for better performance, &lt;br /&gt;
please edit the &amp;quot;my&amp;quot; (or &amp;quot;my.cnf&amp;quot;) file in the /xampplite/mysql/bin directory or for services the c:\my.cnf for windows NT/2000/XP. In that director, activate the&lt;br /&gt;
 &amp;quot;innodb_data_file_path=ibdata1:30M&amp;quot;&lt;br /&gt;
statement. Attention, &amp;quot;innodb&amp;quot; is not recommended for 95/98/ME.&lt;br /&gt;
    &lt;br /&gt;
:To use MySQL as Service for NT/2000/XP, simply copy the &amp;quot;my&amp;quot; / &amp;quot;my.cnf&amp;quot; file to C:\my, or C:\my.cnf. Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the &amp;quot;mysql_installservice.bat&amp;quot; in the mysql folder. 	&lt;br /&gt;
   	&lt;br /&gt;
&lt;br /&gt;
(3) MySQL starts with standard values for the user id and the password. The preset user id is &amp;quot;root&amp;quot;, the password is &amp;quot;&amp;quot; (= no password). To access MySQL via PHP with the preset values, you&#039;ll have to use the following syntax:&lt;br /&gt;
 mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;root&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
If you want to set a password for MySQL access, please use of mysqladmin.&lt;br /&gt;
To set the password &amp;quot;secret&amp;quot; for the user &amp;quot;root&amp;quot;, type the following:&lt;br /&gt;
   &lt;br /&gt;
  \xampplite\mysql\bin\mysqladmin -u root password secret&lt;br /&gt;
    &lt;br /&gt;
After changing the password you&#039;ll have to reconfigure phpMyAdmin to use the new password, otherwise it won&#039;t be able to access the databases. To do that, open the file config.inc.php in \xampplite\phpmyadmin\ and edit the following lines:    &lt;br /&gt;
    &lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;user&#039;]            = &#039;root&#039;;   // MySQL user&lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;auth_type&#039;]       = &#039;http&#039;;   // HTTP authentificate&lt;br /&gt;
&lt;br /&gt;
So first the &#039;root&#039; password is queried by the MySQL server, before phpMyAdmin may access.&lt;br /&gt;
  	    	&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Have a lot of fun! Viel Spaß! Bonne Chance!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.moodle.org/19/en/Installation_guide_-_Moodle_for_Windows_on_a_USB_Memory_Stick Installation guide - Moodle 1.9 for Windows on a USB Memory Stick]&lt;br /&gt;
*Return to [[Windows installation]]&lt;br /&gt;
*[[Windows 1 computer many servers |Multiple web servers, on 1 computer]] similar to windows installation page, with some tips&lt;br /&gt;
*[https://docs.moodle.org/en/Windows_installation_using_XAMPP#Troubleshooting Troubleshooting]if you are running Skype. &lt;br /&gt;
*[[Installing_AMP]] lots of XAMPP stuff.  XAMPP stands for X (cross platform), Apache, MySQL,PHP and Perl.  XAMPP used in Moodle does not include Perl. MAMP stands for Mac, Apache, MySQL and PHP.  &lt;br /&gt;
*[[Installation Package for OS X]] &lt;br /&gt;
&lt;br /&gt;
[[es:Paquetes para Instalación Completa para Windows]]&lt;br /&gt;
[[pl:Kompletne pakiety instalacyjne]]&lt;br /&gt;
[[de:Vollständiges Installationspaket für Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125445</id>
		<title>Complete install packages for Windows</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Complete_install_packages_for_Windows&amp;diff=125445"/>
		<updated>2016-09-27T09:11:59Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: updating requirements for 3.1 and up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
Complete install packages are available from Moodle.org&#039;s [http://download.moodle.org/windows/ Windows download page] and from bitnami (for newer Windows versions). The packages are designed for new installations on a standalone computer. The complete install package can be used on a server, but &#039;&#039;&#039;it is not recommended that it be used as a production site&#039;&#039;&#039;. Please note Moodle.org&#039;s [http://download.moodle.org Standard install packages] only contain the Moodle code.&lt;br /&gt;
&lt;br /&gt;
This document provides instructions for using the Windows packages. Separate instructions are available for [[Complete Install Packages for Mac OS X|Mac OS X packages]].&lt;br /&gt;
&lt;br /&gt;
The complete install packages allow Moodle to be installed, along with the prerequisites that includes a web server, Apache, database, MySQL, scripting language, PHP, an administration tool, phpMyAdmin and Moodle all wrapped in the Xampp-lite shell. Several versions of the complete install package are available. The instructions on the download page provide guidance on which version is likely to be most suitable.&lt;br /&gt;
&lt;br /&gt;
In short, complete install packages are designed to create a matched webserver and Moodle site on a standalone computer with minimal effort. &lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
:*256 MB RAM (minimum), 1GB RAM (recommended)&lt;br /&gt;
:*500 MB free Fixed Disk (more space will be needed depending on user uploads)&lt;br /&gt;
:* For old versions of Moodle:&lt;br /&gt;
:**Windows 98/ME (minimum)&lt;br /&gt;
:**Windows NT/2000/XP/2003 (recommended)&lt;br /&gt;
:* For Moodle 3.1 and later versions:&lt;br /&gt;
:**Windows Vista/7/8/10/2008/2012&lt;br /&gt;
&lt;br /&gt;
===Port 80 Conflict if Skype is already installed===&lt;br /&gt;
As the Moodle Windows package uses the same port (80) as [http://www.skype.com/en/ Skype] does, it will not work if the computer has Skype already installed.&lt;br /&gt;
&lt;br /&gt;
The fix is very simple: Exit Skype (don&#039;t just close the window), then start the Moodle Windows package. Once Moodle for Windows is running, it should be safe to start Skype again. If the local Moodle is using the port 80, Skype will automatically select a different port when it is run.&lt;br /&gt;
&lt;br /&gt;
===Vista and Windows 7/8/10===&lt;br /&gt;
&lt;br /&gt;
* Many people have trouble installing the packages for Windows on Vista and Windows 7,  8 and 10.&lt;br /&gt;
* Some people had previously used the packages in Windows 7 and reported that they no longer work under Windows 10. You only have one month to uninstall the Windows 10 upgrade!&lt;br /&gt;
* There seems to be a problem with the enclosed XAMPP package and the Windows OSes, and trying to use the compatibilty settings of Windows does not work.&lt;br /&gt;
* You can install a virtual machine (eg, [https://www.virtualbox.org/ VirtualBox]) with a Windows 7 guest, or a more solid Linux guest !&lt;br /&gt;
&lt;br /&gt;
One simple solution is to use http://bitnami.org/stack/moodle (from amazon.com).&lt;br /&gt;
&lt;br /&gt;
==Install complete package process==&lt;br /&gt;
The complete install package is a zip file that contains a webserver called [[Apache]], plus Moodle and Moodle&#039;s required [[MySQL]] database and [[PHP]] program. &lt;br /&gt;
&lt;br /&gt;
There are three basic parts to the this install process.  &lt;br /&gt;
#Download and unpack the complete install package. &lt;br /&gt;
#Start the webserver. &lt;br /&gt;
#Install Moodle using a web browser.&lt;br /&gt;
&lt;br /&gt;
===First create file structure===&lt;br /&gt;
====Download the package====&lt;br /&gt;
[http://download.moodle.org/windows Download Windows] packed-zip file from Moodle.&lt;br /&gt;
[[Image:Moodle Setup zipfile.jpg|frame|center|A downloaded complete install package Windows 1.9 zip file in Windows Explorer]]&lt;br /&gt;
 &lt;br /&gt;
====Unpack the package====&lt;br /&gt;
Unpack (extract files by clicking on) the zip file you downloaded to a drive or partition of your choice. The extract process will create three files (&amp;quot;Start Moodle&amp;quot;, &amp;quot;Stop Moodle&amp;quot;, and &amp;quot;README&amp;quot;) and a subfolder called &amp;quot;server&amp;quot;. &lt;br /&gt;
*Do NOT rename the &amp;quot;server&amp;quot; subfolder  &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; There will also be a folder under this server subfolder, called \moodle that holds the Moodle program.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Create a folder and extract the files there.  For example, you might have one folder called Moodle254 and another one called Moodle281 for different versions or purposes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;TIP:&#039;&#039; Make path to &amp;quot;server&amp;quot; subfolder simple. Best way if it will be in drive root. Like &amp;quot;D:\moodle281\server&amp;quot;. A long path, especially with any strange symbols, can prevent XAMPP from working properly.&lt;br /&gt;
&lt;br /&gt;
===Second - start the webserver===&lt;br /&gt;
Now you are ready to start the webserver.  Use the &amp;quot;Start Moodle.exe&amp;quot; file which you should find in the top directory. Once the &amp;quot;Start Moodle.exe&amp;quot; program is open, don&#039;t close it; use &amp;quot;Stop Moodle.exe&amp;quot; for that purpose.&lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;Note:&#039;&#039; These programs control both Apache and MySQL programs that operate the webserver.  Some sites will individually start and stop Apache and MySQL with the Xampp bat files found in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; Alternatively, on a standalone computer with several potential webservers that might be running, you can use the &amp;quot;xampp_restart.exe&amp;quot; file in the &amp;quot;server&amp;quot; subfolder.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; You can also add shortcuts to the commands that start and stop the site in your Windows &amp;quot;start&amp;quot; menu.&lt;br /&gt;
 &lt;br /&gt;
Now you are ready to start the Moodle installation.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Warning:&#039;&#039; Windows XP requires the msvcr71.dll library file in order to run Xampp. Installing the [http://www.microsoft.com/downloads/details.aspx?familyid=262D25E3-F589-4842-8157-034D1E7CF3A3&amp;amp;displaylang=en .Net 1.1 framework] (not .Net 2.0 and upper) could resolve it. You can also search for the file on Google, download it and copy it into the server/apache/bin folder.&lt;br /&gt;
&lt;br /&gt;
===Third - start Moodle installation===&lt;br /&gt;
Start your web browser and type &amp;lt;nowiki&amp;gt; localhost, or  http://127.0.0.1 or http://localhost &amp;lt;/nowiki&amp;gt;in the address bar. You will either start your first time Moodle installation or if it is already installed you will enter the Moodle site&#039;s [[Front Page]] or Login screen.&lt;br /&gt;
&lt;br /&gt;
[[Image:Moodle_Setup_localhost_browser.jpg|frame|center|A browser&#039;s addressbar showing &amp;quot;localhost&amp;quot;. Click on  the green Goto arrow will go to the installed Moodle site.]]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;Tip:&#039;&#039; After Moodle installs, put the site in your &amp;quot;favorites&amp;quot; or as a &amp;quot;bookmark&amp;quot; in you browser.&lt;br /&gt;
&lt;br /&gt;
====Set language====&lt;br /&gt;
The initial install page will be displayed after you type &amp;quot;localhost&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:C Install Windows 1.png|thumb|center|600px|Set initial language]]&lt;br /&gt;
&lt;br /&gt;
*Choose your preferred language (English is used in this example) and click the “Next” button.&lt;br /&gt;
&lt;br /&gt;
====Diagnostic results====&lt;br /&gt;
A diagnostic report is displayed – hopefully it will look like this, if not you may need to address some issues.&lt;br /&gt;
[[Image:Complete Windows Install 2.png|thumb|center|546px|Moodle liked and gave a Pass ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Moodle paths====&lt;br /&gt;
The paths for your Moodle installation are shown – if you are only using this as a local testing server, accept the ones that are shown on your screen.&lt;br /&gt;
&lt;br /&gt;
What you enter in the &amp;quot;Web Address&amp;quot; field depends on what you intend to use the new Moodle installation for. &lt;br /&gt;
If you are just going to use it for local testing, then use &#039;http://localhost&#039;. &lt;br /&gt;
If you are going to test the new installation on a LAN, and will be accessing it from other machines on that LAN, then put the private IP address or network name of the serving machine, followed by a forward slash and moodle: Web Address - http://192.168.1.1/moodle&lt;br /&gt;
If you are going to test the installation on the internet, then you will need to put the public ip address followed by a forward slash and moodle: http://your_ip_address/moodle or you can put your domain name here instead.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 3.png|thumb|center|600px|Installation paths]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Database configuration====&lt;br /&gt;
*In the next fields, we enter the database settings. The fields are populated with some suggested values.&lt;br /&gt;
&lt;br /&gt;
*We strongly recommend you place a user name and password in this screen. (Don&#039;t forget them).&lt;br /&gt;
&lt;br /&gt;
*DO NOT USE THE “ROOT” USER WITHOUT A PASSWORD FOR PRODUCTION INSTALLATIONS AS THIS CREATES A SECURITY VULNERABILITY&lt;br /&gt;
[[image:Complete install Windows 4.png|thumb|center|535px|Installation&#039;s database settings]]&lt;br /&gt;
&lt;br /&gt;
*When the fields have been populated, click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Check server====&lt;br /&gt;
The install process checks the server it installed.&lt;br /&gt;
[[image:Complete install Windows 5.png|thumb|center|535px|Check server environment screen]]&lt;br /&gt;
*Click the “Next” button to continue.&lt;br /&gt;
&lt;br /&gt;
====Confirm initial language pack====&lt;br /&gt;
Moodle will now check to see if the language pack is available for the language you selected at the first step.  If it is not, Moodle will continue with the install in English.&lt;br /&gt;
[[image:Complete install Windows 6.png|thumb|center|535px|Language pack check]]&lt;br /&gt;
&lt;br /&gt;
====Confirm config.php====&lt;br /&gt;
Provided the Moodle folder is writable, a message confirming the configuration has been completed will be displayed.&lt;br /&gt;
[[image:Complete install Windows 7.png|thumb|center|549px|Confirmation that config.php has been created]]&lt;br /&gt;
&lt;br /&gt;
*Click the “ Continue” button to proceed.&lt;br /&gt;
&lt;br /&gt;
====Moodle copyright &amp;amp; agreement====&lt;br /&gt;
The Moodle copyright / license notices are displayed.&lt;br /&gt;
&lt;br /&gt;
[[image:Complete install Windows 8.png|thumb|center|400px|Copyright notice and agreement]]&lt;br /&gt;
&lt;br /&gt;
*Click the “Yes” button to continue.  &lt;br /&gt;
&lt;br /&gt;
====Current release and unattended option====&lt;br /&gt;
The current release information is shown. &lt;br /&gt;
&#039;&#039;&#039;Check off the unattended operations box&#039;&#039;&#039;. This will automatically advance through many screens.  If you would like to watch the install screen by screen, do not check this box and be prepared to press the &amp;quot;continute button&amp;quot; many times.&lt;br /&gt;
 &lt;br /&gt;
*Click the &amp;quot;Continue&amp;quot; button and wait.&lt;br /&gt;
[[Image:Complete install Windows 9.png|thumb|center|600px|Current release and &amp;quot;unattended&amp;quot; check box]]&lt;br /&gt;
&lt;br /&gt;
====Installation modules and blocks screens====&lt;br /&gt;
In most cases this will be followed by a series of screens that have a continue button on the bottom.  This process stops with Admin user profile settings which needs to be filled out.&lt;br /&gt;
&lt;br /&gt;
====Administrator user profile====&lt;br /&gt;
[[Image:Complete install Windows 10.png|thumb|center|The administrator&#039;s users profile screen]]&lt;br /&gt;
&lt;br /&gt;
Fill out the required fields.&lt;br /&gt;
*Click on &amp;quot;Save&amp;quot; to continue&lt;br /&gt;
&lt;br /&gt;
====Front page settings====&lt;br /&gt;
The next screen is the Front Page settings page.  There are two parts to it.&lt;br /&gt;
The first part will ask for your Full site name and a short name for the navigation bar. There is also a place for a description. You can change these later.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11a.png|thumb|center|The Moodle sites [[Front Page]] information]]&lt;br /&gt;
&lt;br /&gt;
The second part on the bottom instructs Moodle if you will disable the new user self [[authentication]] through email process.  The default is to disable.  This can be changed later in the [[Site administration block|site administration block]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 11ba.png|thumb|center|500px|Determine if users can create their own profiles when they log onto the side via email self authentication]]&lt;br /&gt;
&lt;br /&gt;
*Click on &amp;quot;Save changes&amp;quot; button to go to Moodle sites home page.&lt;br /&gt;
&lt;br /&gt;
====Moodle on====&lt;br /&gt;
&#039;&#039;&#039;Now you are ready to Moodle !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Complete install Windows 12.png|thumb|center|Blank Front page of your new site]]&lt;br /&gt;
&lt;br /&gt;
The Site Administration block is on the left, the &amp;quot;Turn edit on&amp;quot; button in the upper right corner, withe the site description block just below it.&lt;br /&gt;
&lt;br /&gt;
===Congratulations - Moodle has been installed===&lt;br /&gt;
This finishes the installation of a complete package.   Type &amp;lt;nowiki&amp;gt;http://localhost&amp;lt;/nowiki&amp;gt; (or what ever you set for web address earlier in the setup!) in your browser and Moodle will open. &lt;br /&gt;
&lt;br /&gt;
Your next task will be to configure Moodle to meet your needs.  Don&#039;t worry, it is easy to change any of the settings now that Moodle is up and running.&lt;br /&gt;
*Check &#039;&#039;Settings &amp;gt; Site administration&#039;&#039; for further links.&lt;br /&gt;
&lt;br /&gt;
==More tips and cautions==&lt;br /&gt;
*For installation on a Windows 2000 or Windows 2003 production server it is good practice to perform a manual install (see the manual installation section in [[Windows_installation|Windows Installation]]). &lt;br /&gt;
&lt;br /&gt;
*After installing the Windows package, you may wish to add additional contributed modules and plugins.  Theset may involve more customization of configuration files.&lt;br /&gt;
&lt;br /&gt;
*The latest complete install package version components, may not be backwardly compatible. Always check version compatibility of each component if you intend to develop materials on a later version of Moodle than the version installed on your &amp;quot;main&amp;quot; Moodle site.  In short, complete install packages are designed for first time install on a &amp;quot;clean&amp;quot; machine.  &lt;br /&gt;
&lt;br /&gt;
== Security matters (A MUST READ!)==&lt;br /&gt;
&lt;br /&gt;
As mentioned before, XAMPP is not meant for production use but only for developers &lt;br /&gt;
in a development environment. The way XAMPP is configured is to be open as possible &lt;br /&gt;
and allowing the developer anything he/she wants. For development environments this &lt;br /&gt;
is great but in a production environment it could be fatal. Here a list of missing security &lt;br /&gt;
in XAMPP:&lt;br /&gt;
&lt;br /&gt;
The MySQL administrator (root) has no password.&lt;br /&gt;
The MySQL daemon is accessible via network.&lt;br /&gt;
phpMyAdmin is accessible via network.&lt;br /&gt;
Examples are accessible via network.&lt;br /&gt;
&lt;br /&gt;
To fix most of the security weaknesses simply call the following URL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://localhost/security/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The root password for MySQL + phpMyAdmin and also a XAMPP directory protection can be established here.&lt;br /&gt;
&lt;br /&gt;
Note that on the Windows installer package, some (all?) of these issues have been fixed already by default and the above link does not work.&lt;br /&gt;
&lt;br /&gt;
If in doubt, more info is [http://www.apachefriends.org/en/faq-xampp-windows.html  here]&lt;br /&gt;
&lt;br /&gt;
== Apache and MySQL tweaks ==&lt;br /&gt;
Most of the time it is not necessary to tweak Apache or MySQL after completing the complete install package. Nor is it necessary to individually start and stop them because that is what the Xampp_start, Xampp_restart and Xammp_stop files are for.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installing Apache and MySQL as services===&lt;br /&gt;
(This is only for NT4 | Windows 2000 | Windows XP operating systems)&lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_installservice.bat =&lt;br /&gt;
==&amp;gt; Install Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\apache\apache_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall Apache 2 as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_installservice.bat =&lt;br /&gt;
==&amp;gt; Install MySQL as service   &lt;br /&gt;
&lt;br /&gt;
\xampplite\mysql\mysql_uninstallservice.bat =&lt;br /&gt;
==&amp;gt; Uninstall MySQL as service   &lt;br /&gt;
&lt;br /&gt;
==&amp;gt; After all Service (un)installations, please restart your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Apache Notes===&lt;br /&gt;
&lt;br /&gt;
You can use the apache_start and apache_stop bat files to start and stop apache from running. However the Xampp_start or Xampp_restart and Xampp_stop is recommended to turn on/off both Apache and MySQL.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
&lt;br /&gt;
If you find that Apache is very flaky, with the page often not loading properly or even at all (especially on localhost), try adding these lines to the end of C:\your_moodle_installer_directory\apache\conf\httpd.conf &lt;br /&gt;
&lt;br /&gt;
  EnableSendfile Off&lt;br /&gt;
  EnableMMAP Off&lt;br /&gt;
  Win32DisableAcceptEx&lt;br /&gt;
&lt;br /&gt;
If You edit some .php files but browser still show old state of them, try to disable eAccelerator extension in \server\php\php.ini&lt;br /&gt;
&lt;br /&gt;
 [eAccelerator]&lt;br /&gt;
 ;extension=eaccelerator.dll&lt;br /&gt;
&lt;br /&gt;
===MySQL notes===&lt;br /&gt;
Again, the recommendation to start and stop the entire webserver is to use the xampp_start or Xampp_restart and the Xampp_stop.  The following maybe useful if you wish to tweak the system further.  Please be careful.&lt;br /&gt;
&lt;br /&gt;
(1) The MySQL server can be started by double-clicking (executing) mysql_start.bat. This file can be found in the same folder you installed xampp in, most likely this will be C:\xampplite\.  The exact path to this file is X:\xampplite\mysql_start.bat, where &amp;quot;X&amp;quot; indicates the letter of the drive you unpacked xampp into.This batch file starts the MySQL server in console mode. The first intialization might take a few minutes.&lt;br /&gt;
    &lt;br /&gt;
Do not close the DOS window or you&#039;ll crash the server! To stop the server, please use mysql_shutdown.bat, which is located in the same directory.&lt;br /&gt;
&lt;br /&gt;
(2) To use the MySQL Daemon with &amp;quot;innodb&amp;quot; for better performance, &lt;br /&gt;
please edit the &amp;quot;my&amp;quot; (or &amp;quot;my.cnf&amp;quot;) file in the /xampplite/mysql/bin directory or for services the c:\my.cnf for windows NT/2000/XP. In that director, activate the&lt;br /&gt;
 &amp;quot;innodb_data_file_path=ibdata1:30M&amp;quot;&lt;br /&gt;
statement. Attention, &amp;quot;innodb&amp;quot; is not recommended for 95/98/ME.&lt;br /&gt;
    &lt;br /&gt;
:To use MySQL as Service for NT/2000/XP, simply copy the &amp;quot;my&amp;quot; / &amp;quot;my.cnf&amp;quot; file to C:\my, or C:\my.cnf. Please note that this file has to be placed in C:\ (root), other locations are not permitted. Then execute the &amp;quot;mysql_installservice.bat&amp;quot; in the mysql folder. 	&lt;br /&gt;
   	&lt;br /&gt;
&lt;br /&gt;
(3) MySQL starts with standard values for the user id and the password. The preset user id is &amp;quot;root&amp;quot;, the password is &amp;quot;&amp;quot; (= no password). To access MySQL via PHP with the preset values, you&#039;ll have to use the following syntax:&lt;br /&gt;
 mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;root&amp;quot;,&amp;quot;&amp;quot;);&lt;br /&gt;
If you want to set a password for MySQL access, please use of mysqladmin.&lt;br /&gt;
To set the password &amp;quot;secret&amp;quot; for the user &amp;quot;root&amp;quot;, type the following:&lt;br /&gt;
   &lt;br /&gt;
  \xampplite\mysql\bin\mysqladmin -u root password secret&lt;br /&gt;
    &lt;br /&gt;
After changing the password you&#039;ll have to reconfigure phpMyAdmin to use the new password, otherwise it won&#039;t be able to access the databases. To do that, open the file config.inc.php in \xampplite\phpmyadmin\ and edit the following lines:    &lt;br /&gt;
    &lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;user&#039;]            = &#039;root&#039;;   // MySQL user&lt;br /&gt;
    $cfg[&#039;Servers&#039;][$i][&#039;auth_type&#039;]       = &#039;http&#039;;   // HTTP authentificate&lt;br /&gt;
&lt;br /&gt;
So first the &#039;root&#039; password is queried by the MySQL server, before phpMyAdmin may access.&lt;br /&gt;
  	    	&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Have a lot of fun! Viel Spaß! Bonne Chance!&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[https://docs.moodle.org/19/en/Installation_guide_-_Moodle_for_Windows_on_a_USB_Memory_Stick Installation guide - Moodle 1.9 for Windows on a USB Memory Stick]&lt;br /&gt;
*Return to [[Windows installation]]&lt;br /&gt;
*[[Windows 1 computer many servers |Multiple web servers, on 1 computer]] similar to windows installation page, with some tips&lt;br /&gt;
*[https://docs.moodle.org/en/Windows_installation_using_XAMPP#Troubleshooting Troubleshooting]if you are running Skype. &lt;br /&gt;
*[[Installing_AMP]] lots of XAMPP stuff.  XAMPP stands for X (cross platform), Apache, MySQL,PHP and Perl.  XAMPP used in Moodle does not include Perl. MAMP stands for Mac, Apache, MySQL and PHP.  &lt;br /&gt;
*[[Installation Package for OS X]] &lt;br /&gt;
&lt;br /&gt;
[[es:Paquetes para Instalación Completa para Windows]]&lt;br /&gt;
[[pl:Kompletne pakiety instalacyjne]]&lt;br /&gt;
[[de:Vollständiges Installationspaket für Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Installing_MSSQL_for_PHP&amp;diff=125316</id>
		<title>Installing MSSQL for PHP</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Installing_MSSQL_for_PHP&amp;diff=125316"/>
		<updated>2016-09-14T09:34:55Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Added note about PHP 7 and this driver status.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This short manual is suitable if you are trying to run Moodle using the SQL*Server (MSSQL) RDBMS. Steps detailed below must be performed &#039;&#039;&#039;before&#039;&#039;&#039; installing Moodle itself.&lt;br /&gt;
&lt;br /&gt;
Some of this may also apply if you wish to access an MSSQL server for external db authentication/enrollment. &lt;br /&gt;
&lt;br /&gt;
First of all, minimum required version of MSSQL has been stabilised to MSSQL 2005 (v.9).&lt;br /&gt;
&lt;br /&gt;
While PHP comes with one, more or less, standard extension (mssql) that provides access to MSSQL databases, early we found some hard limits on it. Basically such default extension has some limits that prevent us to use it at all (you can find more info about these problems [[Development:XMLDB problems#MSSQL, PHP, UTF-8 and UCS-2|here]]).&lt;br /&gt;
&lt;br /&gt;
So, in order to allow PHP (i.e. Moodle) to access to MSSQL DBs properly we have to install a &#039;&#039;&#039;mssql extension alternative&#039;&#039;&#039; to save us from the problems related above. See the sections below for details about the various options.&lt;br /&gt;
&lt;br /&gt;
== Installation overview ==&lt;br /&gt;
&lt;br /&gt;
1. Get MSSQL Server installed and running. ([http://www.microsoft.com/sql/editions/express/default.mspx A free limited version, SQL Server Express Edition] is available for testing.)&lt;br /&gt;
:Make sure that you choose mixed authentication (Windows and local accounts) to keep things simpler later.  You&#039;ll be asked to define the  &amp;quot;sa&amp;quot; account password (it&#039;s the default System Administrator account which has full access to all databases by default).&lt;br /&gt;
&lt;br /&gt;
2. Make sure MS SQL Server can accept incoming TCP/IP connections on port 1433 (the standard one).&lt;br /&gt;
:You might need to explicitly allow this in your Windows firewall (see the Control Panel).  You may also need to edit options in the :&#039;&#039;&#039;SQL Server Configuration Manager&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Network Configuration&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Protocols&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;TCP/IP enabled&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Open the &amp;quot;SQL Server Management Studio&amp;quot; and create a new empty database.  If you are using the &amp;quot;sa&amp;quot; account then you don&#039;t need to do anything else here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Configuration&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;4. Configure these settings in your created (and still empty) database:&lt;br /&gt;
Configure these settings in your created (and still empty) database:&lt;br /&gt;
:*Use a case sensitive collation, such as Latin1_General_CS_AS.&lt;br /&gt;
:*ANSI NULLS Enabled = True (ALTER DATABASE xxxx SET ANSI_NULLS ON)&lt;br /&gt;
:*Quoted Identifiers Enabled = True (ALTER DATABASE xxxx SET QUOTED_IDENTIFIER ON)&lt;br /&gt;
:*Is Read Committed transaction ON = True (ALTER DATABASE xxxx SET READ_COMMITTED_SNAPSHOT ON)&lt;br /&gt;
:** In older versions this is not settable via the DB properties. To set READ_COMMITTED_SNAPSHOT, there must be no active connections to the database except for the connection executing the ALTER command. If you are viewing the DB in the Server Management Studio, disconnect from any servers in the &amp;quot;Object Explorer&amp;quot; (right-click &amp;gt; Disconnect), then create a &amp;quot;New Query&amp;quot; and run the ALTER command. See http://msdn.microsoft.com/en-us/library/bb522682.aspx for details.&lt;br /&gt;
:** If your DB name starts with a number, you may need to put quotes around the DB name in the query.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Get PHP installed with a web server.   Unless you want to do it under IIS or some other way, the packages on the [http://download.moodle.org Moodle download page] are a good solution.&lt;br /&gt;
&lt;br /&gt;
6. Choose one of the following specific sections for your server to install the &#039;&#039;&#039;mssql extension alternative&#039;&#039;&#039; installed and running properly on your PHP box.&lt;br /&gt;
&lt;br /&gt;
7. Set the following settings in your php.ini file&lt;br /&gt;
:* mssql.textlimit = 20971520&lt;br /&gt;
:* mssql.textsize = 20971520&lt;br /&gt;
&lt;br /&gt;
8. With all this properly configured, you can continue with a [[Installing Moodle|standard Moodle installation]].&lt;br /&gt;
&lt;br /&gt;
== Microsoft Drivers for SQL Server for PHP ==&lt;br /&gt;
&lt;br /&gt;
In July 2008 Microsoft [http://social.msdn.microsoft.com/forums/en-US/sqldriverforphp/thread/a10e5202-9e41-4ff8-a33e-fbcc7b951be2/ released] a new SQL Server Driver for PHP. This is a PHP extension that allows PHP scripts to read and write data on Microsoft SQL Server databases and it overcomes the problems with the native SQL Server extension that was previously bundled with PHP.&lt;br /&gt;
&lt;br /&gt;
When using [[IIS]] it is strongly recommended to use the official Microsoft PHP installer from http://php.iis.net/, it should include the latest version of necessary drivers and it also simplifies future upgrades and configuration.&lt;br /&gt;
&lt;br /&gt;
For Windows servers with [[Apache]] see http://www.microsoft.com/en-us/download/details.aspx?id=20098.&lt;br /&gt;
&lt;br /&gt;
To know more about how to run Moodle with these drivers go to [[Using the Microsoft SQL Server Driver for PHP]].&lt;br /&gt;
&lt;br /&gt;
== Using FreeTDS on Windows ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Important Note 1:&#039;&#039;&#039; Due to some previous bugs it&#039;s highly recommendable to use PHP &amp;gt;= 5.2.6 and FreeTDS 0.82 + post-release patches ([http://tracker.moodle.org/browse/MDL-14725 more info]).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Important Note 2:&#039;&#039;&#039; PHP 7 and following do not support the php_mssql driver [http://php.net/manual/en/intro.mssql.php anymore]. People wanting to use SQL*Server database services should switch to the [[Using_the_Microsoft_SQL_Server_Driver_for_PHP|sqlsrv drivers]] in the platforms were they are available or keep using PHP 5.6.x&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your web server is on Windows, use &#039;&#039;&#039;php_dblib.dll&#039;&#039;&#039;. Despite the name, it&#039;s FreeTDS compiled for Windows. (Go to this page for information on [https://docs.moodle.org/en/FreeTDS Using FreeTDS for Unix].) &lt;br /&gt;
&lt;br /&gt;
Originally we were using the DLLs available at [http://kromann.info/article.php?Id=11062598797760000 Frank Kromann&#039;s site], but they are outdated (using old versions of FreeTDS) and that has caused [http://tracker.moodle.org/browse/MDL-14725 some problems] in the past.&lt;br /&gt;
&lt;br /&gt;
So, right now, the recommended way to use FreeTDS under Windows is to use PHP 5.2.x following the following instructions:&lt;br /&gt;
&lt;br /&gt;
1. Download the appropriate copy of php_dblib.dll from the list below, and save it into your /PHP/ext directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-striped table-bordered&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PHP version !! [http://www.iis-aid.com/articles/my_word/difference_between_php_thread_safe_and_non_thread_safe_binaries Thread Safe]  !! FreeTDS version !! Download URL&lt;br /&gt;
|-&lt;br /&gt;
| PHP 5.6.x (vc11-unkown architecture) || Both || 0.95 || You can find some (unverified/untested) drivers in [https://moodle.org/mod/forum/discuss.php?d=232844#p1297504 this forum post], courtesy of Josh Urbain.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |  Thanks to [http://remote-learner.net/ Remote-Learner]] (Moodle [http://moodle.com/partners/ Partner]) and specially to Bryan Williams, donating one Visual C++ 6.0 Pro license to Moodle. Thanks to Trevor Johnson and his builds of the dblib extensions. Thanks to Daniele, Doug, Luis, Sean and many others by their collaboration in MDL-14725. Thanks to Frediano Ziglio and James K. Lowden from [http://freetds.org freetds.org] by their support. Thanks to [[User:Alastair Hole|Alastair Hole]] and Matt Rusiniak for providing the PHP 5.3 builds of the libraries. Thanks to Enyby by providing the PHP 5.4 builds of the libraries. Thanks to David Aylmer and Matt Rusiniak for providing the PHP 5.5 builds of the libraries. Thanks!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For versions of the DLLs working with older PHP engines, you can visit [https://docs.moodle.org/30/en/Installing_MSSQL_for_PHP this page for previous Moodle releases].&lt;br /&gt;
&lt;br /&gt;
(alternatively here you can find some [[Development:Compiling FreeTDS under Windows|instructions to build those freetds extensions under win32]] yourself).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. FreeTDS requires the .NET Framework v1.1 to be installed.  You can [http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&amp;amp;DisplayLang=en download it from the Microsoft website] along with its [http://www.microsoft.com/downloads/details.aspx?FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38&amp;amp;DisplayLang=en service pack].  Alternatively, if you do not wish to install this framework, you can [http://kromann.info/ms-libs/msvcr71.dll download the required DLL] from Frank&#039;s site, and save it into your /PHP root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Edit your /PHP/php.ini file and add this line:&lt;br /&gt;
&lt;br /&gt;
  extension=php_dblib.dll &lt;br /&gt;
&lt;br /&gt;
Make sure that any lines referring to the php_mssql.dll extension are DISABLED (commented out).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. When the PHP engine loads the FreeTDS extension it needs to be passed certain infiormation in order to be able to connect to your Moodle database. To retrieve this information FreeTDS looks for a file called &#039;&#039;&#039;freetds.conf&#039;&#039;&#039; in the root folder of the server that PHP installed on (e.g. C:\).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;freetds.conf&#039;&#039;&#039; should have the following structure:&lt;br /&gt;
&lt;br /&gt;
  [global]&lt;br /&gt;
      host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)&lt;br /&gt;
      port = 1433&lt;br /&gt;
      client charset = UTF-8&lt;br /&gt;
      tds version = 8.0&lt;br /&gt;
      text size = 20971520&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to connect to a particular [http://msdn.microsoft.com/en-us/library/aa174516(SQL.80).aspx instance] of MSSQL you should specify the instance name:&lt;br /&gt;
&lt;br /&gt;
  [global]&lt;br /&gt;
      host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)&lt;br /&gt;
      instance = xxx (instance name, e.g. INST2)&lt;br /&gt;
      port = 1433&lt;br /&gt;
      client charset = UTF-8&lt;br /&gt;
      tds version = 8.0&lt;br /&gt;
      text size = 20971520&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
*You can configure FreeTDS to look for the freetds.conf file in any directory that you want - you don&#039;t have to use C:\. To do this create a SYSTEM environment variable called &#039;&#039;&#039;FREETDS&#039;&#039;&#039; and point it to the directory where you have installed the freetds.conf file. If you do not set this environment variable FreeTDS will look for the freetds.conf file in the C:\ folder, which is the default. One possible benefit of setting the FREETDS environment variable and using a different installation directory for freetds.conf is that C:\ is very predictable to a hacker that knows anything about FreeTDS and that is the first place that he would look if he wanted to compromise your system. So, using a different installation directory would just make your system stronger. See the FreeTDS [http://www.freetds.org/userguide/envvar.htm Setting the environment variables] documentation for more information about this FREETDS environment variable.&lt;br /&gt;
&lt;br /&gt;
*Alternatively, you can [[Development:Compiling FreeTDS under Windows|recompile]] the FreeTDS extension yourself and change the default location to your preferred location at compile time. Then it is not necessary to create any environment variable. You must just ensure that freetds.conf is in the same folder that you specify when you compile php_dblib.dll.&lt;br /&gt;
&lt;br /&gt;
*MSSQL is usually installed with port 1433 as the default. However, if the port was changed on your server when you installed MSSQL then you need to specify the correct port number.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Your Moodle &#039;&#039;&#039;config.php&#039;&#039;&#039; should include lines like these:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;dbtype    = &#039;mssql&#039;;        // Required&lt;br /&gt;
$CFG-&amp;gt;dbhost    = &#039;localhost&#039;;      // assuming MS SQL is on the same server, otherwise use an IP&lt;br /&gt;
$CFG-&amp;gt;dbname    = &#039;moodle&#039;;         // or whatever you called the database you created&lt;br /&gt;
$CFG-&amp;gt;dbuser    = &#039;yourusername&#039;;   // I usually use the &#039;sa&#039; account (dbowner perms are enough)&lt;br /&gt;
$CFG-&amp;gt;dbpass    = &#039;yourpassword&#039;;&lt;br /&gt;
$CFG-&amp;gt;dbpersist =  false;&lt;br /&gt;
$CFG-&amp;gt;prefix    = &#039;mdl_&#039;;            //Prefix, you can change it, but NEVER leave it blank.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a config.php file yet, it can be generated as normal from the Moodle installer. Alternatively you can use the config-dist.php file that comes with the Moodle package to create your own config.php file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Restart or start your web server.  If Moodle still cannot communicate with the database server, please turn display_startup_errors to &amp;quot;On&amp;quot; in your /PHP/php.ini file, then restart the web server and check for any errors that may indicate incorrect DLL versions or missing dependencies.  These error reports, turned off by default in PHP, can be vital in locating a problem with new extension installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Database conection test, try this PHP script, just put in a text file called test.php change (&#039;localhost&#039;, &#039;db_user&#039;, &#039;db_password&#039;) to suite your setup, and load from local host (http://localhost/test.php)...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	$link = mssql_connect(&#039;localhost&#039;, &#039;db_user&#039;, &#039;db_password&#039;);&lt;br /&gt;
	if(!$link) {&lt;br /&gt;
		echo&#039;Could not connect&#039;;&lt;br /&gt;
		die(&#039;Could not connect: &#039; . mssql_error());&lt;br /&gt;
	}&lt;br /&gt;
	echo&#039;Successful connection&#039;;&lt;br /&gt;
	mssql_close($link);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Install Moodle as usual.  Good luck!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you encounter some problems you can try:&lt;br /&gt;
*check that you have DotNet framework 1.1 installed (later version are installed on Vista, but you could need this specific one)&amp;lt;br /&amp;gt;&lt;br /&gt;
*enable TCP/IP for MSSQL: SQL Server 2005 Network Configuration -&amp;gt; Protocols for MSSQLSERVER -&amp;gt; TCP/IP (Enable) -&amp;gt; Properties -&amp;gt; Ip Addresses -&amp;gt; 127.0.0.1 (Active+Enable)&amp;lt;br /&amp;gt;&lt;br /&gt;
*make sure the SQL Server Browser service is running SQL Server 2005 Network Configuration -&amp;gt; SQL Server Services&amp;lt;br /&amp;gt;&lt;br /&gt;
*if you are using SQL Server 2005 and you have the error &#039;&#039;4004: Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier&#039;&#039;, try the ODBTP method (next chapter). The SQL Server complaining that it doesn&#039;t support pure Unicode via TDS or older versions of ODBC. Microsoft has deprecated DB-Library a long ago, in favor of ODBC, OLE DB, or SQL Native Client. Many new features of SQL 2005 aren&#039;t accessible via DB-Library so if you need them, you could have to switch away from tools based on TDS and DB-Library :(&lt;br /&gt;
&lt;br /&gt;
== FreeTDS on Linux (on Ubuntu by compiling an mssql.so extension) ==&lt;br /&gt;
This is a good read to [http://www.robert-gonzalez.com/2009/02/18/building-the-php-ms-sql-server-extension-from-source-on-ubuntu-810/ building a FreeTDS based mssql extension for apache on Ubuntu]. Do note that [http://www.freetds.org/news.html freeTDS] 0.91 was recently released, you can find latest versions [http://freetds.sourceforge.net/ here]. &lt;br /&gt;
&lt;br /&gt;
Note: the freetds.conf file you use should have &amp;quot;text size = 20971520&amp;quot; as mentioned in the FreeTDS on Windows section otherwise you might see sessions logging out or worse apache segmentation faults. Also see [[FreeTDS]].&lt;br /&gt;
&lt;br /&gt;
Note2: Please note that updating php tends to remove the freetds configurations. You might need to reconfigure freetds after an upgrade&lt;br /&gt;
&lt;br /&gt;
== Using FreeTDS on Debian Lenny ==&lt;br /&gt;
I found the following solution using:&lt;br /&gt;
* PHP Version 5.2.6-1+lenny9&lt;br /&gt;
* Microsoft SQL Server Enterprise Edition, version: 9.00.4053.00&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install libsybdb5 freetds-common php5-sybase&lt;br /&gt;
/etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
At the end of the process, if all goes fine, you will find in the mssql section of phpinfo();&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MSSQL Support&lt;br /&gt;
! enabled&lt;br /&gt;
|-&lt;br /&gt;
| Library version &lt;br /&gt;
| FreeTDS &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Once FreeTDS is correctly installed, don not forget to set it up following explanations in https://docs.moodle.org/en/FreeTDS&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Errors FAQ]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum]&lt;br /&gt;
&lt;br /&gt;
[[Category:XMLDB]]&lt;br /&gt;
[[Category:DB]]&lt;br /&gt;
[[Category:SQL databases]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Installing_MSSQL_for_PHP&amp;diff=125315</id>
		<title>Installing MSSQL for PHP</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Installing_MSSQL_for_PHP&amp;diff=125315"/>
		<updated>2016-09-14T09:27:13Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: typo!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This short manual is suitable if you are trying to run Moodle using the SQL*Server (MSSQL) RDBMS. Steps detailed below must be performed &#039;&#039;&#039;before&#039;&#039;&#039; installing Moodle itself.&lt;br /&gt;
&lt;br /&gt;
Some of this may also apply if you wish to access an MSSQL server for external db authentication/enrollment. &lt;br /&gt;
&lt;br /&gt;
First of all, minimum required version of MSSQL has been stabilised to MSSQL 2005 (v.9).&lt;br /&gt;
&lt;br /&gt;
While PHP comes with one, more or less, standard extension (mssql) that provides access to MSSQL databases, early we found some hard limits on it. Basically such default extension has some limits that prevent us to use it at all (you can find more info about these problems [[Development:XMLDB problems#MSSQL, PHP, UTF-8 and UCS-2|here]]).&lt;br /&gt;
&lt;br /&gt;
So, in order to allow PHP (i.e. Moodle) to access to MSSQL DBs properly we have to install a &#039;&#039;&#039;mssql extension alternative&#039;&#039;&#039; to save us from the problems related above. See the sections below for details about the various options.&lt;br /&gt;
&lt;br /&gt;
== Installation overview ==&lt;br /&gt;
&lt;br /&gt;
1. Get MSSQL Server installed and running. ([http://www.microsoft.com/sql/editions/express/default.mspx A free limited version, SQL Server Express Edition] is available for testing.)&lt;br /&gt;
:Make sure that you choose mixed authentication (Windows and local accounts) to keep things simpler later.  You&#039;ll be asked to define the  &amp;quot;sa&amp;quot; account password (it&#039;s the default System Administrator account which has full access to all databases by default).&lt;br /&gt;
&lt;br /&gt;
2. Make sure MS SQL Server can accept incoming TCP/IP connections on port 1433 (the standard one).&lt;br /&gt;
:You might need to explicitly allow this in your Windows firewall (see the Control Panel).  You may also need to edit options in the :&#039;&#039;&#039;SQL Server Configuration Manager&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Network Configuration&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Protocols&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;TCP/IP enabled&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Open the &amp;quot;SQL Server Management Studio&amp;quot; and create a new empty database.  If you are using the &amp;quot;sa&amp;quot; account then you don&#039;t need to do anything else here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Configuration&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;4. Configure these settings in your created (and still empty) database:&lt;br /&gt;
Configure these settings in your created (and still empty) database:&lt;br /&gt;
:*Use a case sensitive collation, such as Latin1_General_CS_AS.&lt;br /&gt;
:*ANSI NULLS Enabled = True (ALTER DATABASE xxxx SET ANSI_NULLS ON)&lt;br /&gt;
:*Quoted Identifiers Enabled = True (ALTER DATABASE xxxx SET QUOTED_IDENTIFIER ON)&lt;br /&gt;
:*Is Read Committed transaction ON = True (ALTER DATABASE xxxx SET READ_COMMITTED_SNAPSHOT ON)&lt;br /&gt;
:** In older versions this is not settable via the DB properties. To set READ_COMMITTED_SNAPSHOT, there must be no active connections to the database except for the connection executing the ALTER command. If you are viewing the DB in the Server Management Studio, disconnect from any servers in the &amp;quot;Object Explorer&amp;quot; (right-click &amp;gt; Disconnect), then create a &amp;quot;New Query&amp;quot; and run the ALTER command. See http://msdn.microsoft.com/en-us/library/bb522682.aspx for details.&lt;br /&gt;
:** If your DB name starts with a number, you may need to put quotes around the DB name in the query.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Get PHP installed with a web server.   Unless you want to do it under IIS or some other way, the packages on the [http://download.moodle.org Moodle download page] are a good solution.&lt;br /&gt;
&lt;br /&gt;
6. Choose one of the following specific sections for your server to install the &#039;&#039;&#039;mssql extension alternative&#039;&#039;&#039; installed and running properly on your PHP box.&lt;br /&gt;
&lt;br /&gt;
7. Set the following settings in your php.ini file&lt;br /&gt;
:* mssql.textlimit = 20971520&lt;br /&gt;
:* mssql.textsize = 20971520&lt;br /&gt;
&lt;br /&gt;
8. With all this properly configured, you can continue with a [[Installing Moodle|standard Moodle installation]].&lt;br /&gt;
&lt;br /&gt;
== Microsoft Drivers for SQL Server for PHP ==&lt;br /&gt;
&lt;br /&gt;
In July 2008 Microsoft [http://social.msdn.microsoft.com/forums/en-US/sqldriverforphp/thread/a10e5202-9e41-4ff8-a33e-fbcc7b951be2/ released] a new SQL Server Driver for PHP. This is a PHP extension that allows PHP scripts to read and write data on Microsoft SQL Server databases and it overcomes the problems with the native SQL Server extension that was previously bundled with PHP.&lt;br /&gt;
&lt;br /&gt;
When using [[IIS]] it is strongly recommended to use the official Microsoft PHP installer from http://php.iis.net/, it should include the latest version of necessary drivers and it also simplifies future upgrades and configuration.&lt;br /&gt;
&lt;br /&gt;
For Windows servers with [[Apache]] see http://www.microsoft.com/en-us/download/details.aspx?id=20098.&lt;br /&gt;
&lt;br /&gt;
To know more about how to run Moodle with these drivers go to [[Using the Microsoft SQL Server Driver for PHP]].&lt;br /&gt;
&lt;br /&gt;
== Using FreeTDS on Windows ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Important Note 1:&#039;&#039;&#039; Due to some previous bugs it&#039;s highly recommendable to use PHP &amp;gt;= 5.2.6 and FreeTDS 0.82 + post-release patches ([http://tracker.moodle.org/browse/MDL-14725 more info]).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your web server is on Windows, use &#039;&#039;&#039;php_dblib.dll&#039;&#039;&#039;. Despite the name, it&#039;s FreeTDS compiled for Windows. (Go to this page for information on [https://docs.moodle.org/en/FreeTDS Using FreeTDS for Unix].) &lt;br /&gt;
&lt;br /&gt;
Originally we were using the DLLs available at [http://kromann.info/article.php?Id=11062598797760000 Frank Kromann&#039;s site], but they are outdated (using old versions of FreeTDS) and that has caused [http://tracker.moodle.org/browse/MDL-14725 some problems] in the past.&lt;br /&gt;
&lt;br /&gt;
So, right now, the recommended way to use FreeTDS under Windows is to use PHP 5.2.x following the following instructions:&lt;br /&gt;
&lt;br /&gt;
1. Download the appropriate copy of php_dblib.dll from the list below, and save it into your /PHP/ext directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-striped table-bordered&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PHP version !! [http://www.iis-aid.com/articles/my_word/difference_between_php_thread_safe_and_non_thread_safe_binaries Thread Safe]  !! FreeTDS version !! Download URL&lt;br /&gt;
|-&lt;br /&gt;
| PHP 5.6.x (vc11-unkown architecture) || Both || 0.95 || You can find some (unverified/untested) drivers in [https://moodle.org/mod/forum/discuss.php?d=232844#p1297504 this forum post], courtesy of Josh Urbain.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |  Thanks to [http://remote-learner.net/ Remote-Learner]] (Moodle [http://moodle.com/partners/ Partner]) and specially to Bryan Williams, donating one Visual C++ 6.0 Pro license to Moodle. Thanks to Trevor Johnson and his builds of the dblib extensions. Thanks to Daniele, Doug, Luis, Sean and many others by their collaboration in MDL-14725. Thanks to Frediano Ziglio and James K. Lowden from [http://freetds.org freetds.org] by their support. Thanks to [[User:Alastair Hole|Alastair Hole]] and Matt Rusiniak for providing the PHP 5.3 builds of the libraries. Thanks to Enyby by providing the PHP 5.4 builds of the libraries. Thanks to David Aylmer and Matt Rusiniak for providing the PHP 5.5 builds of the libraries. Thanks!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For versions of the DLLs working with older PHP engines, you can visit [https://docs.moodle.org/30/en/Installing_MSSQL_for_PHP this page for previous Moodle releases].&lt;br /&gt;
&lt;br /&gt;
(alternatively here you can find some [[Development:Compiling FreeTDS under Windows|instructions to build those freetds extensions under win32]] yourself).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. FreeTDS requires the .NET Framework v1.1 to be installed.  You can [http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&amp;amp;DisplayLang=en download it from the Microsoft website] along with its [http://www.microsoft.com/downloads/details.aspx?FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38&amp;amp;DisplayLang=en service pack].  Alternatively, if you do not wish to install this framework, you can [http://kromann.info/ms-libs/msvcr71.dll download the required DLL] from Frank&#039;s site, and save it into your /PHP root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Edit your /PHP/php.ini file and add this line:&lt;br /&gt;
&lt;br /&gt;
  extension=php_dblib.dll &lt;br /&gt;
&lt;br /&gt;
Make sure that any lines referring to the php_mssql.dll extension are DISABLED (commented out).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. When the PHP engine loads the FreeTDS extension it needs to be passed certain infiormation in order to be able to connect to your Moodle database. To retrieve this information FreeTDS looks for a file called &#039;&#039;&#039;freetds.conf&#039;&#039;&#039; in the root folder of the server that PHP installed on (e.g. C:\).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;freetds.conf&#039;&#039;&#039; should have the following structure:&lt;br /&gt;
&lt;br /&gt;
  [global]&lt;br /&gt;
      host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)&lt;br /&gt;
      port = 1433&lt;br /&gt;
      client charset = UTF-8&lt;br /&gt;
      tds version = 8.0&lt;br /&gt;
      text size = 20971520&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to connect to a particular [http://msdn.microsoft.com/en-us/library/aa174516(SQL.80).aspx instance] of MSSQL you should specify the instance name:&lt;br /&gt;
&lt;br /&gt;
  [global]&lt;br /&gt;
      host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)&lt;br /&gt;
      instance = xxx (instance name, e.g. INST2)&lt;br /&gt;
      port = 1433&lt;br /&gt;
      client charset = UTF-8&lt;br /&gt;
      tds version = 8.0&lt;br /&gt;
      text size = 20971520&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
*You can configure FreeTDS to look for the freetds.conf file in any directory that you want - you don&#039;t have to use C:\. To do this create a SYSTEM environment variable called &#039;&#039;&#039;FREETDS&#039;&#039;&#039; and point it to the directory where you have installed the freetds.conf file. If you do not set this environment variable FreeTDS will look for the freetds.conf file in the C:\ folder, which is the default. One possible benefit of setting the FREETDS environment variable and using a different installation directory for freetds.conf is that C:\ is very predictable to a hacker that knows anything about FreeTDS and that is the first place that he would look if he wanted to compromise your system. So, using a different installation directory would just make your system stronger. See the FreeTDS [http://www.freetds.org/userguide/envvar.htm Setting the environment variables] documentation for more information about this FREETDS environment variable.&lt;br /&gt;
&lt;br /&gt;
*Alternatively, you can [[Development:Compiling FreeTDS under Windows|recompile]] the FreeTDS extension yourself and change the default location to your preferred location at compile time. Then it is not necessary to create any environment variable. You must just ensure that freetds.conf is in the same folder that you specify when you compile php_dblib.dll.&lt;br /&gt;
&lt;br /&gt;
*MSSQL is usually installed with port 1433 as the default. However, if the port was changed on your server when you installed MSSQL then you need to specify the correct port number.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Your Moodle &#039;&#039;&#039;config.php&#039;&#039;&#039; should include lines like these:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;dbtype    = &#039;mssql&#039;;        // Required&lt;br /&gt;
$CFG-&amp;gt;dbhost    = &#039;localhost&#039;;      // assuming MS SQL is on the same server, otherwise use an IP&lt;br /&gt;
$CFG-&amp;gt;dbname    = &#039;moodle&#039;;         // or whatever you called the database you created&lt;br /&gt;
$CFG-&amp;gt;dbuser    = &#039;yourusername&#039;;   // I usually use the &#039;sa&#039; account (dbowner perms are enough)&lt;br /&gt;
$CFG-&amp;gt;dbpass    = &#039;yourpassword&#039;;&lt;br /&gt;
$CFG-&amp;gt;dbpersist =  false;&lt;br /&gt;
$CFG-&amp;gt;prefix    = &#039;mdl_&#039;;            //Prefix, you can change it, but NEVER leave it blank.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a config.php file yet, it can be generated as normal from the Moodle installer. Alternatively you can use the config-dist.php file that comes with the Moodle package to create your own config.php file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Restart or start your web server.  If Moodle still cannot communicate with the database server, please turn display_startup_errors to &amp;quot;On&amp;quot; in your /PHP/php.ini file, then restart the web server and check for any errors that may indicate incorrect DLL versions or missing dependencies.  These error reports, turned off by default in PHP, can be vital in locating a problem with new extension installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Database conection test, try this PHP script, just put in a text file called test.php change (&#039;localhost&#039;, &#039;db_user&#039;, &#039;db_password&#039;) to suite your setup, and load from local host (http://localhost/test.php)...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	$link = mssql_connect(&#039;localhost&#039;, &#039;db_user&#039;, &#039;db_password&#039;);&lt;br /&gt;
	if(!$link) {&lt;br /&gt;
		echo&#039;Could not connect&#039;;&lt;br /&gt;
		die(&#039;Could not connect: &#039; . mssql_error());&lt;br /&gt;
	}&lt;br /&gt;
	echo&#039;Successful connection&#039;;&lt;br /&gt;
	mssql_close($link);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Install Moodle as usual.  Good luck!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you encounter some problems you can try:&lt;br /&gt;
*check that you have DotNet framework 1.1 installed (later version are installed on Vista, but you could need this specific one)&amp;lt;br /&amp;gt;&lt;br /&gt;
*enable TCP/IP for MSSQL: SQL Server 2005 Network Configuration -&amp;gt; Protocols for MSSQLSERVER -&amp;gt; TCP/IP (Enable) -&amp;gt; Properties -&amp;gt; Ip Addresses -&amp;gt; 127.0.0.1 (Active+Enable)&amp;lt;br /&amp;gt;&lt;br /&gt;
*make sure the SQL Server Browser service is running SQL Server 2005 Network Configuration -&amp;gt; SQL Server Services&amp;lt;br /&amp;gt;&lt;br /&gt;
*if you are using SQL Server 2005 and you have the error &#039;&#039;4004: Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier&#039;&#039;, try the ODBTP method (next chapter). The SQL Server complaining that it doesn&#039;t support pure Unicode via TDS or older versions of ODBC. Microsoft has deprecated DB-Library a long ago, in favor of ODBC, OLE DB, or SQL Native Client. Many new features of SQL 2005 aren&#039;t accessible via DB-Library so if you need them, you could have to switch away from tools based on TDS and DB-Library :(&lt;br /&gt;
&lt;br /&gt;
== FreeTDS on Linux (on Ubuntu by compiling an mssql.so extension) ==&lt;br /&gt;
This is a good read to [http://www.robert-gonzalez.com/2009/02/18/building-the-php-ms-sql-server-extension-from-source-on-ubuntu-810/ building a FreeTDS based mssql extension for apache on Ubuntu]. Do note that [http://www.freetds.org/news.html freeTDS] 0.91 was recently released, you can find latest versions [http://freetds.sourceforge.net/ here]. &lt;br /&gt;
&lt;br /&gt;
Note: the freetds.conf file you use should have &amp;quot;text size = 20971520&amp;quot; as mentioned in the FreeTDS on Windows section otherwise you might see sessions logging out or worse apache segmentation faults. Also see [[FreeTDS]].&lt;br /&gt;
&lt;br /&gt;
Note2: Please note that updating php tends to remove the freetds configurations. You might need to reconfigure freetds after an upgrade&lt;br /&gt;
&lt;br /&gt;
== Using FreeTDS on Debian Lenny ==&lt;br /&gt;
I found the following solution using:&lt;br /&gt;
* PHP Version 5.2.6-1+lenny9&lt;br /&gt;
* Microsoft SQL Server Enterprise Edition, version: 9.00.4053.00&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install libsybdb5 freetds-common php5-sybase&lt;br /&gt;
/etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
At the end of the process, if all goes fine, you will find in the mssql section of phpinfo();&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MSSQL Support&lt;br /&gt;
! enabled&lt;br /&gt;
|-&lt;br /&gt;
| Library version &lt;br /&gt;
| FreeTDS &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Once FreeTDS is correctly installed, don not forget to set it up following explanations in https://docs.moodle.org/en/FreeTDS&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Errors FAQ]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum]&lt;br /&gt;
&lt;br /&gt;
[[Category:XMLDB]]&lt;br /&gt;
[[Category:DB]]&lt;br /&gt;
[[Category:SQL databases]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Installing_MSSQL_for_PHP&amp;diff=125314</id>
		<title>Installing MSSQL for PHP</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Installing_MSSQL_for_PHP&amp;diff=125314"/>
		<updated>2016-09-14T09:24:39Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Adding a link to previous docs (3.0) were the links to older extensions are available. People really downloads them.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This short manual is suitable if you are trying to run Moodle using the SQL*Server (MSSQL) RDBMS. Steps detailed below must be performed &#039;&#039;&#039;before&#039;&#039;&#039; installing Moodle itself.&lt;br /&gt;
&lt;br /&gt;
Some of this may also apply if you wish to access an MSSQL server for external db authentication/enrollment. &lt;br /&gt;
&lt;br /&gt;
First of all, minimum required version of MSSQL has been stabilised to MSSQL 2005 (v.9).&lt;br /&gt;
&lt;br /&gt;
While PHP comes with one, more or less, standard extension (mssql) that provides access to MSSQL databases, early we found some hard limits on it. Basically such default extension has some limits that prevent us to use it at all (you can find more info about these problems [[Development:XMLDB problems#MSSQL, PHP, UTF-8 and UCS-2|here]]).&lt;br /&gt;
&lt;br /&gt;
So, in order to allow PHP (i.e. Moodle) to access to MSSQL DBs properly we have to install a &#039;&#039;&#039;mssql extension alternative&#039;&#039;&#039; to save us from the problems related above. See the sections below for details about the various options.&lt;br /&gt;
&lt;br /&gt;
== Installation overview ==&lt;br /&gt;
&lt;br /&gt;
1. Get MSSQL Server installed and running. ([http://www.microsoft.com/sql/editions/express/default.mspx A free limited version, SQL Server Express Edition] is available for testing.)&lt;br /&gt;
:Make sure that you choose mixed authentication (Windows and local accounts) to keep things simpler later.  You&#039;ll be asked to define the  &amp;quot;sa&amp;quot; account password (it&#039;s the default System Administrator account which has full access to all databases by default).&lt;br /&gt;
&lt;br /&gt;
2. Make sure MS SQL Server can accept incoming TCP/IP connections on port 1433 (the standard one).&lt;br /&gt;
:You might need to explicitly allow this in your Windows firewall (see the Control Panel).  You may also need to edit options in the :&#039;&#039;&#039;SQL Server Configuration Manager&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Network Configuration&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Protocols&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;TCP/IP enabled&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Open the &amp;quot;SQL Server Management Studio&amp;quot; and create a new empty database.  If you are using the &amp;quot;sa&amp;quot; account then you don&#039;t need to do anything else here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Configuration&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;4. Configure these settings in your created (and still empty) database:&lt;br /&gt;
Configure these settings in your created (and still empty) database:&lt;br /&gt;
:*Use a case sensitive collation, such as Latin1_General_CS_AS.&lt;br /&gt;
:*ANSI NULLS Enabled = True (ALTER DATABASE xxxx SET ANSI_NULLS ON)&lt;br /&gt;
:*Quoted Identifiers Enabled = True (ALTER DATABASE xxxx SET QUOTED_IDENTIFIER ON)&lt;br /&gt;
:*Is Read Committed transaction ON = True (ALTER DATABASE xxxx SET READ_COMMITTED_SNAPSHOT ON)&lt;br /&gt;
:** In older versions this is not settable via the DB properties. To set READ_COMMITTED_SNAPSHOT, there must be no active connections to the database except for the connection executing the ALTER command. If you are viewing the DB in the Server Management Studio, disconnect from any servers in the &amp;quot;Object Explorer&amp;quot; (right-click &amp;gt; Disconnect), then create a &amp;quot;New Query&amp;quot; and run the ALTER command. See http://msdn.microsoft.com/en-us/library/bb522682.aspx for details.&lt;br /&gt;
:** If your DB name starts with a number, you may need to put quotes around the DB name in the query.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Get PHP installed with a web server.   Unless you want to do it under IIS or some other way, the packages on the [http://download.moodle.org Moodle download page] are a good solution.&lt;br /&gt;
&lt;br /&gt;
6. Choose one of the following specific sections for your server to install the &#039;&#039;&#039;mssql extension alternative&#039;&#039;&#039; installed and running properly on your PHP box.&lt;br /&gt;
&lt;br /&gt;
7. Set the following settings in your php.ini file&lt;br /&gt;
:* mssql.textlimit = 20971520&lt;br /&gt;
:* mssql.textsize = 20971520&lt;br /&gt;
&lt;br /&gt;
8. With all this properly configured, you can continue with a [[Installing Moodle|standard Moodle installation]].&lt;br /&gt;
&lt;br /&gt;
== Microsoft Drivers for SQL Server for PHP ==&lt;br /&gt;
&lt;br /&gt;
In July 2008 Microsoft [http://social.msdn.microsoft.com/forums/en-US/sqldriverforphp/thread/a10e5202-9e41-4ff8-a33e-fbcc7b951be2/ released] a new SQL Server Driver for PHP. This is a PHP extension that allows PHP scripts to read and write data on Microsoft SQL Server databases and it overcomes the problems with the native SQL Server extension that was previously bundled with PHP.&lt;br /&gt;
&lt;br /&gt;
When using [[IIS]] it is strongly recommended to use the official Microsoft PHP installer from http://php.iis.net/, it should include the latest version of necessary drivers and it also simplifies future upgrades and configuration.&lt;br /&gt;
&lt;br /&gt;
For Windows servers with [[Apache]] see http://www.microsoft.com/en-us/download/details.aspx?id=20098.&lt;br /&gt;
&lt;br /&gt;
To know more about how to run Moodle with these drivers go to [[Using the Microsoft SQL Server Driver for PHP]].&lt;br /&gt;
&lt;br /&gt;
== Using FreeTDS on Windows ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Important Note 1:&#039;&#039;&#039; Due to some previous bugs it&#039;s highly recommendable to use PHP &amp;gt;= 5.2.6 and FreeTDS 0.82 + post-release patches ([http://tracker.moodle.org/browse/MDL-14725 more info]).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your web server is on Windows, use &#039;&#039;&#039;php_dblib.dll&#039;&#039;&#039;. Despite the name, it&#039;s FreeTDS compiled for Windows. (Go to this page for information on [https://docs.moodle.org/en/FreeTDS Using FreeTDS for Unix].) &lt;br /&gt;
&lt;br /&gt;
Originally we were using the DLLs available at [http://kromann.info/article.php?Id=11062598797760000 Frank Kromann&#039;s site], but they are outdated (using old versions of FreeTDS) and that has caused [http://tracker.moodle.org/browse/MDL-14725 some problems] in the past.&lt;br /&gt;
&lt;br /&gt;
So, right now, the recommended way to use FreeTDS under Windows is to use PHP 5.2.x following the following instructions:&lt;br /&gt;
&lt;br /&gt;
1. Download the appropriate copy of php_dblib.dll from the list below, and save it into your /PHP/ext directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-striped table-bordered&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PHP version !! [http://www.iis-aid.com/articles/my_word/difference_between_php_thread_safe_and_non_thread_safe_binaries Thread Safe]  !! FreeTDS version !! Download URL&lt;br /&gt;
|-&lt;br /&gt;
| PHP 5.6.x (vc11-unkown architecture) || Both || 0.95 || You can find some (unverified/untested) drivers in [https://moodle.org/mod/forum/discuss.php?d=232844#p1297504 this forum post], courtesy of Josh Urbain.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |  Thanks to [http://remote-learner.net/ Remote-Learner]] (Moodle [http://moodle.com/partners/ Partner]) and specially to Bryan Williams, donating one Visual C++ 6.0 Pro license to Moodle. Thanks to Trevor Johnson and his builds of the dblib extensions. Thanks to Daniele, Doug, Luis, Sean and many others by their collaboration in MDL-14725. Thanks to Frediano Ziglio and James K. Lowden from [http://freetds.org freetds.org] by their support. Thanks to [[User:Alastair Hole|Alastair Hole]] and Matt Rusiniak for providing the PHP 5.3 builds of the libraries. Thanks to Enyby by providing the PHP 5.4 builds of the libraries. Thanks to David Aylmer and Matt Rusiniak for providing the PHP 5.5 builds of the libraries. Thanks!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For versions of the DLLs working with older PHP engines, you can visit [https://docs.moodle.org/30/en/Installing_MSSQL_for_PHP this page for previous Moodle relases].&lt;br /&gt;
&lt;br /&gt;
(alternatively here you can find some [[Development:Compiling FreeTDS under Windows|instructions to build those freetds extensions under win32]] yourself).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. FreeTDS requires the .NET Framework v1.1 to be installed.  You can [http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&amp;amp;DisplayLang=en download it from the Microsoft website] along with its [http://www.microsoft.com/downloads/details.aspx?FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38&amp;amp;DisplayLang=en service pack].  Alternatively, if you do not wish to install this framework, you can [http://kromann.info/ms-libs/msvcr71.dll download the required DLL] from Frank&#039;s site, and save it into your /PHP root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Edit your /PHP/php.ini file and add this line:&lt;br /&gt;
&lt;br /&gt;
  extension=php_dblib.dll &lt;br /&gt;
&lt;br /&gt;
Make sure that any lines referring to the php_mssql.dll extension are DISABLED (commented out).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. When the PHP engine loads the FreeTDS extension it needs to be passed certain infiormation in order to be able to connect to your Moodle database. To retrieve this information FreeTDS looks for a file called &#039;&#039;&#039;freetds.conf&#039;&#039;&#039; in the root folder of the server that PHP installed on (e.g. C:\).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;freetds.conf&#039;&#039;&#039; should have the following structure:&lt;br /&gt;
&lt;br /&gt;
  [global]&lt;br /&gt;
      host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)&lt;br /&gt;
      port = 1433&lt;br /&gt;
      client charset = UTF-8&lt;br /&gt;
      tds version = 8.0&lt;br /&gt;
      text size = 20971520&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to connect to a particular [http://msdn.microsoft.com/en-us/library/aa174516(SQL.80).aspx instance] of MSSQL you should specify the instance name:&lt;br /&gt;
&lt;br /&gt;
  [global]&lt;br /&gt;
      host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)&lt;br /&gt;
      instance = xxx (instance name, e.g. INST2)&lt;br /&gt;
      port = 1433&lt;br /&gt;
      client charset = UTF-8&lt;br /&gt;
      tds version = 8.0&lt;br /&gt;
      text size = 20971520&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
*You can configure FreeTDS to look for the freetds.conf file in any directory that you want - you don&#039;t have to use C:\. To do this create a SYSTEM environment variable called &#039;&#039;&#039;FREETDS&#039;&#039;&#039; and point it to the directory where you have installed the freetds.conf file. If you do not set this environment variable FreeTDS will look for the freetds.conf file in the C:\ folder, which is the default. One possible benefit of setting the FREETDS environment variable and using a different installation directory for freetds.conf is that C:\ is very predictable to a hacker that knows anything about FreeTDS and that is the first place that he would look if he wanted to compromise your system. So, using a different installation directory would just make your system stronger. See the FreeTDS [http://www.freetds.org/userguide/envvar.htm Setting the environment variables] documentation for more information about this FREETDS environment variable.&lt;br /&gt;
&lt;br /&gt;
*Alternatively, you can [[Development:Compiling FreeTDS under Windows|recompile]] the FreeTDS extension yourself and change the default location to your preferred location at compile time. Then it is not necessary to create any environment variable. You must just ensure that freetds.conf is in the same folder that you specify when you compile php_dblib.dll.&lt;br /&gt;
&lt;br /&gt;
*MSSQL is usually installed with port 1433 as the default. However, if the port was changed on your server when you installed MSSQL then you need to specify the correct port number.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Your Moodle &#039;&#039;&#039;config.php&#039;&#039;&#039; should include lines like these:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;dbtype    = &#039;mssql&#039;;        // Required&lt;br /&gt;
$CFG-&amp;gt;dbhost    = &#039;localhost&#039;;      // assuming MS SQL is on the same server, otherwise use an IP&lt;br /&gt;
$CFG-&amp;gt;dbname    = &#039;moodle&#039;;         // or whatever you called the database you created&lt;br /&gt;
$CFG-&amp;gt;dbuser    = &#039;yourusername&#039;;   // I usually use the &#039;sa&#039; account (dbowner perms are enough)&lt;br /&gt;
$CFG-&amp;gt;dbpass    = &#039;yourpassword&#039;;&lt;br /&gt;
$CFG-&amp;gt;dbpersist =  false;&lt;br /&gt;
$CFG-&amp;gt;prefix    = &#039;mdl_&#039;;            //Prefix, you can change it, but NEVER leave it blank.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a config.php file yet, it can be generated as normal from the Moodle installer. Alternatively you can use the config-dist.php file that comes with the Moodle package to create your own config.php file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Restart or start your web server.  If Moodle still cannot communicate with the database server, please turn display_startup_errors to &amp;quot;On&amp;quot; in your /PHP/php.ini file, then restart the web server and check for any errors that may indicate incorrect DLL versions or missing dependencies.  These error reports, turned off by default in PHP, can be vital in locating a problem with new extension installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Database conection test, try this PHP script, just put in a text file called test.php change (&#039;localhost&#039;, &#039;db_user&#039;, &#039;db_password&#039;) to suite your setup, and load from local host (http://localhost/test.php)...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	$link = mssql_connect(&#039;localhost&#039;, &#039;db_user&#039;, &#039;db_password&#039;);&lt;br /&gt;
	if(!$link) {&lt;br /&gt;
		echo&#039;Could not connect&#039;;&lt;br /&gt;
		die(&#039;Could not connect: &#039; . mssql_error());&lt;br /&gt;
	}&lt;br /&gt;
	echo&#039;Successful connection&#039;;&lt;br /&gt;
	mssql_close($link);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Install Moodle as usual.  Good luck!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you encounter some problems you can try:&lt;br /&gt;
*check that you have DotNet framework 1.1 installed (later version are installed on Vista, but you could need this specific one)&amp;lt;br /&amp;gt;&lt;br /&gt;
*enable TCP/IP for MSSQL: SQL Server 2005 Network Configuration -&amp;gt; Protocols for MSSQLSERVER -&amp;gt; TCP/IP (Enable) -&amp;gt; Properties -&amp;gt; Ip Addresses -&amp;gt; 127.0.0.1 (Active+Enable)&amp;lt;br /&amp;gt;&lt;br /&gt;
*make sure the SQL Server Browser service is running SQL Server 2005 Network Configuration -&amp;gt; SQL Server Services&amp;lt;br /&amp;gt;&lt;br /&gt;
*if you are using SQL Server 2005 and you have the error &#039;&#039;4004: Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier&#039;&#039;, try the ODBTP method (next chapter). The SQL Server complaining that it doesn&#039;t support pure Unicode via TDS or older versions of ODBC. Microsoft has deprecated DB-Library a long ago, in favor of ODBC, OLE DB, or SQL Native Client. Many new features of SQL 2005 aren&#039;t accessible via DB-Library so if you need them, you could have to switch away from tools based on TDS and DB-Library :(&lt;br /&gt;
&lt;br /&gt;
== FreeTDS on Linux (on Ubuntu by compiling an mssql.so extension) ==&lt;br /&gt;
This is a good read to [http://www.robert-gonzalez.com/2009/02/18/building-the-php-ms-sql-server-extension-from-source-on-ubuntu-810/ building a FreeTDS based mssql extension for apache on Ubuntu]. Do note that [http://www.freetds.org/news.html freeTDS] 0.91 was recently released, you can find latest versions [http://freetds.sourceforge.net/ here]. &lt;br /&gt;
&lt;br /&gt;
Note: the freetds.conf file you use should have &amp;quot;text size = 20971520&amp;quot; as mentioned in the FreeTDS on Windows section otherwise you might see sessions logging out or worse apache segmentation faults. Also see [[FreeTDS]].&lt;br /&gt;
&lt;br /&gt;
Note2: Please note that updating php tends to remove the freetds configurations. You might need to reconfigure freetds after an upgrade&lt;br /&gt;
&lt;br /&gt;
== Using FreeTDS on Debian Lenny ==&lt;br /&gt;
I found the following solution using:&lt;br /&gt;
* PHP Version 5.2.6-1+lenny9&lt;br /&gt;
* Microsoft SQL Server Enterprise Edition, version: 9.00.4053.00&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install libsybdb5 freetds-common php5-sybase&lt;br /&gt;
/etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
At the end of the process, if all goes fine, you will find in the mssql section of phpinfo();&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MSSQL Support&lt;br /&gt;
! enabled&lt;br /&gt;
|-&lt;br /&gt;
| Library version &lt;br /&gt;
| FreeTDS &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Once FreeTDS is correctly installed, don not forget to set it up following explanations in https://docs.moodle.org/en/FreeTDS&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Errors FAQ]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum]&lt;br /&gt;
&lt;br /&gt;
[[Category:XMLDB]]&lt;br /&gt;
[[Category:DB]]&lt;br /&gt;
[[Category:SQL databases]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Talk:PostgreSQL&amp;diff=124646</id>
		<title>Talk:PostgreSQL</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Talk:PostgreSQL&amp;diff=124646"/>
		<updated>2016-08-04T17:18:53Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Client Authentication Section ==&lt;br /&gt;
&lt;br /&gt;
I&#039;ve added a section called &#039;Client Authentication&#039; to the bottom of the page, with instructions on adding an entry to &#039;pg_hba.conf&#039;. I thought this was useful for people who aren&#039;t familiar with Postgres, as it will be an unfamiliar step to anyone with a background in MySQL.&lt;br /&gt;
&lt;br /&gt;
After six years of looking after Moodle with a MySQL setup, I had to set up my first PostgreSQL server yesterday, and this is something that stumped me for a while. If these instructions can save somebody else a bit of time, they&#039;re probably a good thing.&lt;br /&gt;
&lt;br /&gt;
--[[User:Alex Walker 2|Alex Walker 2]] ([[User talk:Alex Walker 2|talk]]) 18:16, 4 August 2016 (AWST)&lt;br /&gt;
&lt;br /&gt;
: Thanks Alex! --[[User:Eloy Lafuente (stronk7)|Eloy Lafuente (stronk7)]] ([[User talk:Eloy Lafuente (stronk7)|talk]]) 01:18, 5 August 2016 (AWST)&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=Installing_MSSQL_for_PHP&amp;diff=124401</id>
		<title>Installing MSSQL for PHP</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=Installing_MSSQL_for_PHP&amp;diff=124401"/>
		<updated>2016-07-25T15:46:39Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Adding PHP 5.6 mssql candidate module link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This short manual is suitable if you are trying to run Moodle using the SQL*Server (MSSQL) RDBMS. Steps detailed below must be performed &#039;&#039;&#039;before&#039;&#039;&#039; installing Moodle itself.&lt;br /&gt;
&lt;br /&gt;
Some of this may also apply if you wish to access an MSSQL server for external db authentication/enrollment. &lt;br /&gt;
&lt;br /&gt;
First of all, minimum required version of MSSQL has been stabilised to MSSQL 2005 (v.9).&lt;br /&gt;
&lt;br /&gt;
While PHP comes with one, more or less, standard extension (mssql) that provides access to MSSQL databases, early we found some hard limits on it. Basically such default extension has some limits that prevent us to use it at all (you can find more info about these problems [[Development:XMLDB problems#MSSQL, PHP, UTF-8 and UCS-2|here]]).&lt;br /&gt;
&lt;br /&gt;
So, in order to allow PHP (i.e. Moodle) to access to MSSQL DBs properly we have to install a &#039;&#039;&#039;mssql extension alternative&#039;&#039;&#039; to save us from the problems related above. See the sections below for details about the various options.&lt;br /&gt;
&lt;br /&gt;
== Installation overview ==&lt;br /&gt;
&lt;br /&gt;
1. Get MSSQL Server installed and running. ([http://www.microsoft.com/sql/editions/express/default.mspx A free limited version, SQL Server Express Edition] is available for testing.)&lt;br /&gt;
:Make sure that you choose mixed authentication (Windows and local accounts) to keep things simpler later.  You&#039;ll be asked to define the  &amp;quot;sa&amp;quot; account password (it&#039;s the default System Administrator account which has full access to all databases by default).&lt;br /&gt;
&lt;br /&gt;
2. Make sure MS SQL Server can accept incoming TCP/IP connections on port 1433 (the standard one).&lt;br /&gt;
:You might need to explicitly allow this in your Windows firewall (see the Control Panel).  You may also need to edit options in the :&#039;&#039;&#039;SQL Server Configuration Manager&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Network Configuration&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Protocols&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;TCP/IP enabled&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3. Open the &amp;quot;SQL Server Management Studio&amp;quot; and create a new empty database.  If you are using the &amp;quot;sa&amp;quot; account then you don&#039;t need to do anything else here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Configuration&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;4. Configure these settings in your created (and still empty) database:&lt;br /&gt;
Configure these settings in your created (and still empty) database:&lt;br /&gt;
:*Use a case sensitive collation, such as Latin1_General_CS_AS.&lt;br /&gt;
:*ANSI NULLS Enabled = True (ALTER DATABASE xxxx SET ANSI_NULLS ON)&lt;br /&gt;
:*Quoted Identifiers Enabled = True (ALTER DATABASE xxxx SET QUOTED_IDENTIFIER ON)&lt;br /&gt;
:*Is Read Committed transaction ON = True (ALTER DATABASE xxxx SET READ_COMMITTED_SNAPSHOT ON)&lt;br /&gt;
:** In older versions this is not settable via the DB properties. To set READ_COMMITTED_SNAPSHOT, there must be no active connections to the database except for the connection executing the ALTER command. If you are viewing the DB in the Server Management Studio, disconnect from any servers in the &amp;quot;Object Explorer&amp;quot; (right-click &amp;gt; Disconnect), then create a &amp;quot;New Query&amp;quot; and run the ALTER command. See http://msdn.microsoft.com/en-us/library/bb522682.aspx for details.&lt;br /&gt;
:** If your DB name starts with a number, you may need to put quotes around the DB name in the query.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Get PHP installed with a web server.   Unless you want to do it under IIS or some other way, the packages on the [http://download.moodle.org Moodle download page] are a good solution.&lt;br /&gt;
&lt;br /&gt;
6. Choose one of the following specific sections for your server to install the &#039;&#039;&#039;mssql extension alternative&#039;&#039;&#039; installed and running properly on your PHP box.&lt;br /&gt;
&lt;br /&gt;
7. Set the following settings in your php.ini file&lt;br /&gt;
:* mssql.textlimit = 20971520&lt;br /&gt;
:* mssql.textsize = 20971520&lt;br /&gt;
&lt;br /&gt;
8. With all this properly configured, you can continue with a [[Installing Moodle|standard Moodle installation]].&lt;br /&gt;
&lt;br /&gt;
== Microsoft Drivers for SQL Server for PHP ==&lt;br /&gt;
&lt;br /&gt;
In July 2008 Microsoft [http://social.msdn.microsoft.com/forums/en-US/sqldriverforphp/thread/a10e5202-9e41-4ff8-a33e-fbcc7b951be2/ released] a new SQL Server Driver for PHP. This is a PHP extension that allows PHP scripts to read and write data on Microsoft SQL Server databases and it overcomes the problems with the native SQL Server extension that was previously bundled with PHP.&lt;br /&gt;
&lt;br /&gt;
When using [[IIS]] it is strongly recommended to use the official Microsoft PHP installer from http://php.iis.net/, it should include the latest version of necessary drivers and it also simplifies future upgrades and configuration.&lt;br /&gt;
&lt;br /&gt;
For Windows servers with [[Apache]] see http://www.microsoft.com/en-us/download/details.aspx?id=20098.&lt;br /&gt;
&lt;br /&gt;
To know more about how to run Moodle with these drivers go to [[Using the Microsoft SQL Server Driver for PHP]].&lt;br /&gt;
&lt;br /&gt;
== Using FreeTDS on Windows ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;&#039;&#039;&#039;Important Note 1:&#039;&#039;&#039; Due to some previous bugs it&#039;s highly recommendable to use PHP &amp;gt;= 5.2.6 and FreeTDS 0.82 + post-release patches ([http://tracker.moodle.org/browse/MDL-14725 more info]).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your web server is on Windows, use &#039;&#039;&#039;php_dblib.dll&#039;&#039;&#039;. Despite the name, it&#039;s FreeTDS compiled for Windows. (Go to this page for information on [https://docs.moodle.org/en/FreeTDS Using FreeTDS for Unix].) &lt;br /&gt;
&lt;br /&gt;
Originally we were using the DLLs available at [http://kromann.info/article.php?Id=11062598797760000 Frank Kromann&#039;s site], but they are outdated (using old versions of FreeTDS) and that has caused [http://tracker.moodle.org/browse/MDL-14725 some problems] in the past.&lt;br /&gt;
&lt;br /&gt;
So, right now, the recommended way to use FreeTDS under Windows is to use PHP 5.2.x following the following instructions:&lt;br /&gt;
&lt;br /&gt;
1. Download the appropriate copy of php_dblib.dll from the list below, and save it into your /PHP/ext directory.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;table table-striped table-bordered&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! PHP version !! [http://www.iis-aid.com/articles/my_word/difference_between_php_thread_safe_and_non_thread_safe_binaries Thread Safe]  !! FreeTDS version !! Download URL&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | PHP 5.2.x (vc6) || Yes || 0.82 + 20090302 patches || [http://download.moodle.org/download.php/dblib/php52/DBLIB_TS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| No || 0.82 + 20090302 patches || [http://download.moodle.org/download.php/dblib/php52/DBLIB_NOTS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | PHP 5.3.x (vc6) || Yes || 0.82 + 20090904 patches (unconfirmed) || [http://download.moodle.org/download.php/dblib/php53_vc6/DBLIB_TS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| No || 0.82 + 20090904 patches (unconfirmed) || [http://download.moodle.org/download.php/dblib/php53_vc6/DBLIB_NOTS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | PHP 5.3.x (vc9) || Yes || 0.82 + 20090904 patches || [http://download.moodle.org/download.php/dblib/php53_vc9/DBLIB_TS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| No || 0.82 + 20090904 patches || [http://download.moodle.org/download.php/dblib/php53_vc9/DBLIB_NOTS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | PHP 5.4.x (vc9) || Yes || 0.82 + 20110906 patches || [http://download.moodle.org/download.php/dblib/php54_vc9/DBLIB_TS.zip Download!] Mirrors: [http://inethub.olvi.net.ua/ftp/pub/soft/programming/php/ms%20sql%20driver%20for%20%20php%205.4.10/dblib_ts.zip 1] [ftp://inethub.olvi.net.ua/pub/soft/programming/php/ms%20sql%20driver%20for%20%20php%205.4.10/DBLIB_TS.zip 2 (ftp)] [http://www.sendspace.com/file/vtger3 3]&lt;br /&gt;
|-&lt;br /&gt;
| No || 0.82 + 20110906 patches || [http://download.moodle.org/download.php/dblib/php54_vc9/DBLIB_NOTS.zip Download!] Mirrors: [http://inethub.olvi.net.ua/ftp/pub/soft/programming/php/ms%20sql%20driver%20for%20%20php%205.4.10/dblib_nts.zip 1] [ftp://inethub.olvi.net.ua/pub/soft/programming/php/ms%20sql%20driver%20for%20%20php%205.4.10/DBLIB_NTS.zip 2 (ftp)] [http://www.sendspace.com/file/nkg2j4 3]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | PHP 5.4.x (vc9) || Yes || 0.91.102 || [http://download.moodle.org/download.php/dblib/php54_vc9_091102/DBLIB_TS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| No || 0.91.102 || [http://download.moodle.org/download.php/dblib/php54_vc9_091102/DBLIB_NOTS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | PHP 5.5.x (vc11-x86) || Yes || 0.91.89 || [http://download.moodle.org/download.php/dblib/php55_vc11_x86/DBLIB_TS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| No || 0.91.89 || [http://download.moodle.org/download.php/dblib/php55_vc11_x86/DBLIB_NOTS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | PHP 5.5.x (vc11-x64) || Yes || 0.91.93 || [http://download.moodle.org/download.php/dblib/php55_vc11_x64/DBLIB_TS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| No || 0.91.93 || [http://download.moodle.org/download.php/dblib/php55_vc11_x64/DBLIB_NOTS.zip Download!]&lt;br /&gt;
|-&lt;br /&gt;
| PHP 5.6.x (vc11-unkown architecture) || Both || 0.95 || You can find some (unverified/untested) drivers in [https://moodle.org/mod/forum/discuss.php?d=232844#p1297504 this forum post], courtesy of Josh Urbain.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; |  Thanks to [http://remote-learner.net/ Remote-Learner]] (Moodle [http://moodle.com/partners/ Partner]) and specially to Bryan Williams, donating one Visual C++ 6.0 Pro license to Moodle. Thanks to Trevor Johnson and his builds of the dblib extensions. Thanks to Daniele, Doug, Luis, Sean and many others by their collaboration in MDL-14725. Thanks to Frediano Ziglio and James K. Lowden from [http://freetds.org freetds.org] by their support. Thanks to [[User:Alastair Hole|Alastair Hole]] and Matt Rusiniak for providing the PHP 5.3 builds of the libraries. Thanks to Enyby by providing the PHP 5.4 builds of the libraries. Thanks to David Aylmer and Matt Rusiniak for providing the PHP 5.5 builds of the libraries. Thanks!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(alternatively here you can find some [[Development:Compiling FreeTDS under Windows|instructions to build those freetds extensions under win32]] yourself)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. FreeTDS requires the .NET Framework v1.1 to be installed.  You can [http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&amp;amp;DisplayLang=en download it from the Microsoft website] along with its [http://www.microsoft.com/downloads/details.aspx?FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38&amp;amp;DisplayLang=en service pack].  Alternatively, if you do not wish to install this framework, you can [http://kromann.info/ms-libs/msvcr71.dll download the required DLL] from Frank&#039;s site, and save it into your /PHP root directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Edit your /PHP/php.ini file and add this line:&lt;br /&gt;
&lt;br /&gt;
  extension=php_dblib.dll &lt;br /&gt;
&lt;br /&gt;
Make sure that any lines referring to the php_mssql.dll extension are DISABLED (commented out).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. When the PHP engine loads the FreeTDS extension it needs to be passed certain infiormation in order to be able to connect to your Moodle database. To retrieve this information FreeTDS looks for a file called &#039;&#039;&#039;freetds.conf&#039;&#039;&#039; in the root folder of the server that PHP installed on (e.g. C:\).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;freetds.conf&#039;&#039;&#039; should have the following structure:&lt;br /&gt;
&lt;br /&gt;
  [global]&lt;br /&gt;
      host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)&lt;br /&gt;
      port = 1433&lt;br /&gt;
      client charset = UTF-8&lt;br /&gt;
      tds version = 8.0&lt;br /&gt;
      text size = 20971520&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to connect to a particular [http://msdn.microsoft.com/en-us/library/aa174516(SQL.80).aspx instance] of MSSQL you should specify the instance name:&lt;br /&gt;
&lt;br /&gt;
  [global]&lt;br /&gt;
      host = xxx.xxx.xxx.xxx (host name or ip of the MSSQL server)&lt;br /&gt;
      instance = xxx (instance name, e.g. INST2)&lt;br /&gt;
      port = 1433&lt;br /&gt;
      client charset = UTF-8&lt;br /&gt;
      tds version = 8.0&lt;br /&gt;
      text size = 20971520&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
*You can configure FreeTDS to look for the freetds.conf file in any directory that you want - you don&#039;t have to use C:\. To do this create a SYSTEM environment variable called &#039;&#039;&#039;FREETDS&#039;&#039;&#039; and point it to the directory where you have installed the freetds.conf file. If you do not set this environment variable FreeTDS will look for the freetds.conf file in the C:\ folder, which is the default. One possible benefit of setting the FREETDS environment variable and using a different installation directory for freetds.conf is that C:\ is very predictable to a hacker that knows anything about FreeTDS and that is the first place that he would look if he wanted to compromise your system. So, using a different installation directory would just make your system stronger. See the FreeTDS [http://www.freetds.org/userguide/envvar.htm Setting the environment variables] documentation for more information about this FREETDS environment variable.&lt;br /&gt;
&lt;br /&gt;
*Alternatively, you can [[Development:Compiling FreeTDS under Windows|recompile]] the FreeTDS extension yourself and change the default location to your preferred location at compile time. Then it is not necessary to create any environment variable. You must just ensure that freetds.conf is in the same folder that you specify when you compile php_dblib.dll.&lt;br /&gt;
&lt;br /&gt;
*MSSQL is usually installed with port 1433 as the default. However, if the port was changed on your server when you installed MSSQL then you need to specify the correct port number.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Your Moodle &#039;&#039;&#039;config.php&#039;&#039;&#039; should include lines like these:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
$CFG-&amp;gt;dbtype    = &#039;mssql&#039;;        // Required&lt;br /&gt;
$CFG-&amp;gt;dbhost    = &#039;localhost&#039;;      // assuming MS SQL is on the same server, otherwise use an IP&lt;br /&gt;
$CFG-&amp;gt;dbname    = &#039;moodle&#039;;         // or whatever you called the database you created&lt;br /&gt;
$CFG-&amp;gt;dbuser    = &#039;yourusername&#039;;   // I usually use the &#039;sa&#039; account (dbowner perms are enough)&lt;br /&gt;
$CFG-&amp;gt;dbpass    = &#039;yourpassword&#039;;&lt;br /&gt;
$CFG-&amp;gt;dbpersist =  false;&lt;br /&gt;
$CFG-&amp;gt;prefix    = &#039;mdl_&#039;;            //Prefix, you can change it, but NEVER leave it blank.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have a config.php file yet, it can be generated as normal from the Moodle installer. Alternatively you can use the config-dist.php file that comes with the Moodle package to create your own config.php file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Restart or start your web server.  If Moodle still cannot communicate with the database server, please turn display_startup_errors to &amp;quot;On&amp;quot; in your /PHP/php.ini file, then restart the web server and check for any errors that may indicate incorrect DLL versions or missing dependencies.  These error reports, turned off by default in PHP, can be vital in locating a problem with new extension installations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Database conection test, try this PHP script, just put in a text file called test.php change (&#039;localhost&#039;, &#039;db_user&#039;, &#039;db_password&#039;) to suite your setup, and load from local host (http://localhost/test.php)...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	$link = mssql_connect(&#039;localhost&#039;, &#039;db_user&#039;, &#039;db_password&#039;);&lt;br /&gt;
	if(!$link) {&lt;br /&gt;
		echo&#039;Could not connect&#039;;&lt;br /&gt;
		die(&#039;Could not connect: &#039; . mssql_error());&lt;br /&gt;
	}&lt;br /&gt;
	echo&#039;Successful connection&#039;;&lt;br /&gt;
	mssql_close($link);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8. Install Moodle as usual.  Good luck!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If you encounter some problems you can try:&lt;br /&gt;
*check that you have DotNet framework 1.1 installed (later version are installed on Vista, but you could need this specific one)&amp;lt;br /&amp;gt;&lt;br /&gt;
*enable TCP/IP for MSSQL: SQL Server 2005 Network Configuration -&amp;gt; Protocols for MSSQLSERVER -&amp;gt; TCP/IP (Enable) -&amp;gt; Properties -&amp;gt; Ip Addresses -&amp;gt; 127.0.0.1 (Active+Enable)&amp;lt;br /&amp;gt;&lt;br /&gt;
*make sure the SQL Server Browser service is running SQL Server 2005 Network Configuration -&amp;gt; SQL Server Services&amp;lt;br /&amp;gt;&lt;br /&gt;
*if you are using SQL Server 2005 and you have the error &#039;&#039;4004: Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier&#039;&#039;, try the ODBTP method (next chapter). The SQL Server complaining that it doesn&#039;t support pure Unicode via TDS or older versions of ODBC. Microsoft has deprecated DB-Library a long ago, in favor of ODBC, OLE DB, or SQL Native Client. Many new features of SQL 2005 aren&#039;t accessible via DB-Library so if you need them, you could have to switch away from tools based on TDS and DB-Library :(&lt;br /&gt;
&lt;br /&gt;
== FreeTDS on Linux (on Ubuntu by compiling an mssql.so extension) ==&lt;br /&gt;
This is a good read to [http://www.robert-gonzalez.com/2009/02/18/building-the-php-ms-sql-server-extension-from-source-on-ubuntu-810/ building a FreeTDS based mssql extension for apache on Ubuntu]. Do note that [http://www.freetds.org/news.html freeTDS] 0.91 was recently released, you can find latest versions [http://freetds.sourceforge.net/ here]. &lt;br /&gt;
&lt;br /&gt;
Note: the freetds.conf file you use should have &amp;quot;text size = 20971520&amp;quot; as mentioned in the FreeTDS on Windows section otherwise you might see sessions logging out or worse apache segmentation faults. Also see [[FreeTDS]].&lt;br /&gt;
&lt;br /&gt;
Note2: Please note that updating php tends to remove the freetds configurations. You might need to reconfigure freetds after an upgrade&lt;br /&gt;
&lt;br /&gt;
== Using FreeTDS on Debian Lenny ==&lt;br /&gt;
I found the following solution using:&lt;br /&gt;
* PHP Version 5.2.6-1+lenny9&lt;br /&gt;
* Microsoft SQL Server Enterprise Edition, version: 9.00.4053.00&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install libsybdb5 freetds-common php5-sybase&lt;br /&gt;
/etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
At the end of the process, if all goes fine, you will find in the mssql section of phpinfo();&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! MSSQL Support&lt;br /&gt;
! enabled&lt;br /&gt;
|-&lt;br /&gt;
| Library version &lt;br /&gt;
| FreeTDS &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Once FreeTDS is correctly installed, don not forget to set it up following explanations in https://docs.moodle.org/en/FreeTDS&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Errors FAQ]]&lt;br /&gt;
* Using Moodle [http://moodle.org/mod/forum/view.php?id=28 Installation problems forum]&lt;br /&gt;
&lt;br /&gt;
[[Category:XMLDB]]&lt;br /&gt;
[[Category:DB]]&lt;br /&gt;
[[Category:SQL databases]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=AMOS&amp;diff=122242</id>
		<title>AMOS</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=AMOS&amp;diff=122242"/>
		<updated>2016-02-10T22:12:26Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: Redirected page to dev:AMOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[dev:AMOS]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=AMOS&amp;diff=122241</id>
		<title>AMOS</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=AMOS&amp;diff=122241"/>
		<updated>2016-02-10T21:30:09Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[dev:AMOS manual]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/403/en/index.php?title=AMOS&amp;diff=122240</id>
		<title>AMOS</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/403/en/index.php?title=AMOS&amp;diff=122240"/>
		<updated>2016-02-10T21:28:28Z</updated>

		<summary type="html">&lt;p&gt;Stronk7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[dev:AMOS manual]]&lt;/div&gt;</summary>
		<author><name>Stronk7</name></author>
	</entry>
</feed>