<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/502/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jfederic</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/502/en/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jfederic"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/Special:Contributions/Jfederic"/>
	<updated>2026-06-03T15:12:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154342</id>
		<title>BigBlueButton BN Reminders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154342"/>
		<updated>2025-10-09T20:24:32Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Admin settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is BigBlueButton BN Reminders? ==&lt;br /&gt;
&#039;&#039;&#039;BigBlueButton BN Reminders&#039;&#039;&#039; (component: &amp;lt;code&amp;gt;bbbext_bnreminders&amp;lt;/code&amp;gt;; formerly &#039;&#039;&#039;BN Notify&#039;&#039;&#039;) is an extension to the BigBlueButton activity that sends time-based email reminders to enrolled users before a live session starts. Teachers add one or more reminders (e.g. 1 day / 1 hour before), and the plugin delivers customizable emails with the join link and session details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Note: BigBlueButton BN Reminders requires a working cron and outgoing email configuration. It depends on the BigBlueButton activity (mod_bigbluebuttonbn) being installed and enabled. For privacy reasons, the plugin does not send reminders to guest users.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How is it set up? ==&lt;br /&gt;
* In a course, with &#039;&#039;Edit mode&#039;&#039; enabled, add or edit a &#039;&#039;&#039;BigBlueButton&#039;&#039;&#039; activity.&lt;br /&gt;
* Set a &#039;&#039;&#039;start date/time&#039;&#039;&#039; for the session (reminders are calculated from this time).&lt;br /&gt;
* In the activity settings, locate the &#039;&#039;&#039;Reminders&#039;&#039;&#039; section (BN Reminders).&lt;br /&gt;
* Click &#039;&#039;&#039;Add reminder&#039;&#039;&#039; and choose when the email should be sent (e.g. &#039;&#039;1 hour before&#039;&#039;, &#039;&#039;1 day before&#039;&#039;).&lt;br /&gt;
* (Optional) Add multiple reminders (for example, &#039;&#039;3 days before&#039;&#039; and &#039;&#039;1 hour before&#039;&#039;).&lt;br /&gt;
* Save the activity.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot from 2025-10-09 16-13-27.png|thumb|The “Session timing” and “Email notifications” sections of a BigBlueButton activity. Reminders are enabled with one reminder set to **One hour before meeting starts**, and guests are included.]]&lt;br /&gt;
&lt;br /&gt;
== How does it work? ==&lt;br /&gt;
* The plugin queues reminder emails based on the activity’s start time and the offsets you selected.&lt;br /&gt;
* Each email includes the course/activity context and a join link.&lt;br /&gt;
* Students can manage preferences from their user menu (&#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039;) and can unsubscribe via a link in the email.&lt;br /&gt;
* If the teacher reschedules the activity and saves changes, future reminders are recalculated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements and limitations:&#039;&#039;&lt;br /&gt;
# A start date/time is required for reminders to send.&lt;br /&gt;
# Guests are not supported (no emails are sent to non-enrolled/guest users).&lt;br /&gt;
# Delivery time depends on your site’s cron schedule and mail server throughput.&lt;br /&gt;
&lt;br /&gt;
== Admin settings ==&lt;br /&gt;
From &#039;&#039;Site administration → Plugins → BigBlueButton → Manage BigBlueButton extension plugins → BN Reminders&#039;&#039;, administrators can configure global defaults:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Enable/disable&#039;&#039;&#039; BigBlueButton BN Reminders site-wide.&lt;br /&gt;
* &#039;&#039;&#039;Default reminder offsets&#039;&#039;&#039; available to teachers (e.g. 3d/1d/1h before).&lt;br /&gt;
* &#039;&#039;&#039;Email templates&#039;&#039;&#039; (subject/body) with placeholders:&lt;br /&gt;
** &amp;lt;code&amp;gt;{$url}&amp;lt;/code&amp;gt; – activity URL (join context)&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_fullname}&amp;lt;/code&amp;gt; – course full name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_shortname}&amp;lt;/code&amp;gt; – course short name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$date}&amp;lt;/code&amp;gt; – localized session date/time&lt;br /&gt;
** &amp;lt;code&amp;gt;{$name}&amp;lt;/code&amp;gt; – meeting/activity name&lt;br /&gt;
* &#039;&#039;&#039;Footer / signature&#039;&#039;&#039; (optional) for institutional branding or contact info.&lt;br /&gt;
* &#039;&#039;&#039;Permissions&#039;&#039;&#039; – assign who can configure reminders at activity level via role capabilities (teachers, managers).&lt;br /&gt;
* &#039;&#039;&#039;Scheduled task&#039;&#039;&#039; – verify frequency under &#039;&#039;Site administration → Server → Scheduled tasks&#039;&#039; (BN Reminders). Set to run every 5–15 minutes for timely delivery.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Ensure &#039;&#039;Outgoing mail configuration&#039;&#039; is working (e.g. SMTP) so reminders can be delivered.&amp;lt;/p&amp;gt;&#039;&#039;Tip: Keep subjects short and include the date/time so students can scan their inbox easily.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* &#039;&#039;&#039;Emails not sent:&#039;&#039;&#039; Check that cron is running and the BN Reminders scheduled task is enabled (see &#039;&#039;Server → Scheduled tasks&#039;&#039;). Confirm outgoing mail settings.&lt;br /&gt;
* &#039;&#039;&#039;No reminder options in activity:&#039;&#039;&#039; Verify the plugin is enabled and the activity has a start date/time set.&lt;br /&gt;
* &#039;&#039;&#039;Duplicate emails:&#039;&#039;&#039; Make sure there are no duplicate offsets configured for the same activity.&lt;br /&gt;
* &#039;&#039;&#039;Users unsubscribed by mistake:&#039;&#039;&#039; Direct them to &#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039; to re-enable.&lt;br /&gt;
&lt;br /&gt;
== Version and requirements ==&lt;br /&gt;
* &#039;&#039;&#039;Moodle:&#039;&#039;&#039; 4.5 or later (recommended).&lt;br /&gt;
* &#039;&#039;&#039;BigBlueButtonBN:&#039;&#039;&#039; ≥ 2024100700 (or the minimum required by your release).&lt;br /&gt;
* &#039;&#039;&#039;Cron:&#039;&#039;&#039; Required for scheduled delivery.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BigBlueButton]] – the activity module BigBlueButton BN Reminders extends.&lt;br /&gt;
&lt;br /&gt;
[[Category:BigBlueButton]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154341</id>
		<title>BigBlueButton BN Reminders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154341"/>
		<updated>2025-10-09T20:24:00Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* What is BigBlueButton BN Reminders? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is BigBlueButton BN Reminders? ==&lt;br /&gt;
&#039;&#039;&#039;BigBlueButton BN Reminders&#039;&#039;&#039; (component: &amp;lt;code&amp;gt;bbbext_bnreminders&amp;lt;/code&amp;gt;; formerly &#039;&#039;&#039;BN Notify&#039;&#039;&#039;) is an extension to the BigBlueButton activity that sends time-based email reminders to enrolled users before a live session starts. Teachers add one or more reminders (e.g. 1 day / 1 hour before), and the plugin delivers customizable emails with the join link and session details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Note: BigBlueButton BN Reminders requires a working cron and outgoing email configuration. It depends on the BigBlueButton activity (mod_bigbluebuttonbn) being installed and enabled. For privacy reasons, the plugin does not send reminders to guest users.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How is it set up? ==&lt;br /&gt;
* In a course, with &#039;&#039;Edit mode&#039;&#039; enabled, add or edit a &#039;&#039;&#039;BigBlueButton&#039;&#039;&#039; activity.&lt;br /&gt;
* Set a &#039;&#039;&#039;start date/time&#039;&#039;&#039; for the session (reminders are calculated from this time).&lt;br /&gt;
* In the activity settings, locate the &#039;&#039;&#039;Reminders&#039;&#039;&#039; section (BN Reminders).&lt;br /&gt;
* Click &#039;&#039;&#039;Add reminder&#039;&#039;&#039; and choose when the email should be sent (e.g. &#039;&#039;1 hour before&#039;&#039;, &#039;&#039;1 day before&#039;&#039;).&lt;br /&gt;
* (Optional) Add multiple reminders (for example, &#039;&#039;3 days before&#039;&#039; and &#039;&#039;1 hour before&#039;&#039;).&lt;br /&gt;
* Save the activity.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot from 2025-10-09 16-13-27.png|thumb|The “Session timing” and “Email notifications” sections of a BigBlueButton activity. Reminders are enabled with one reminder set to **One hour before meeting starts**, and guests are included.]]&lt;br /&gt;
&lt;br /&gt;
== How does it work? ==&lt;br /&gt;
* The plugin queues reminder emails based on the activity’s start time and the offsets you selected.&lt;br /&gt;
* Each email includes the course/activity context and a join link.&lt;br /&gt;
* Students can manage preferences from their user menu (&#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039;) and can unsubscribe via a link in the email.&lt;br /&gt;
* If the teacher reschedules the activity and saves changes, future reminders are recalculated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements and limitations:&#039;&#039;&lt;br /&gt;
# A start date/time is required for reminders to send.&lt;br /&gt;
# Guests are not supported (no emails are sent to non-enrolled/guest users).&lt;br /&gt;
# Delivery time depends on your site’s cron schedule and mail server throughput.&lt;br /&gt;
&lt;br /&gt;
== Admin settings ==&lt;br /&gt;
From &#039;&#039;Site administration → Plugins → BigBlueButton → Manage BigBlueButton extension plugins → BN Reminders&#039;&#039;, administrators can configure global defaults:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Enable/disable&#039;&#039;&#039; BN Reminders site-wide.&lt;br /&gt;
* &#039;&#039;&#039;Default reminder offsets&#039;&#039;&#039; available to teachers (e.g. 3d/1d/1h before).&lt;br /&gt;
* &#039;&#039;&#039;Email templates&#039;&#039;&#039; (subject/body) with placeholders:&lt;br /&gt;
** &amp;lt;code&amp;gt;{$url}&amp;lt;/code&amp;gt; – activity URL (join context)&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_fullname}&amp;lt;/code&amp;gt; – course full name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_shortname}&amp;lt;/code&amp;gt; – course short name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$date}&amp;lt;/code&amp;gt; – localized session date/time&lt;br /&gt;
** &amp;lt;code&amp;gt;{$name}&amp;lt;/code&amp;gt; – meeting/activity name&lt;br /&gt;
* &#039;&#039;&#039;Footer / signature&#039;&#039;&#039; (optional) for institutional branding or contact info.&lt;br /&gt;
* &#039;&#039;&#039;Permissions&#039;&#039;&#039; – assign who can configure reminders at activity level via role capabilities (teachers, managers).&lt;br /&gt;
* &#039;&#039;&#039;Scheduled task&#039;&#039;&#039; – verify frequency under &#039;&#039;Site administration → Server → Scheduled tasks&#039;&#039; (BN Reminders). Set to run every 5–15 minutes for timely delivery.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Ensure &#039;&#039;Outgoing mail configuration&#039;&#039; is working (e.g. SMTP) so reminders can be delivered.&amp;lt;/p&amp;gt;&#039;&#039;Tip: Keep subjects short and include the date/time so students can scan their inbox easily.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* &#039;&#039;&#039;Emails not sent:&#039;&#039;&#039; Check that cron is running and the BN Reminders scheduled task is enabled (see &#039;&#039;Server → Scheduled tasks&#039;&#039;). Confirm outgoing mail settings.&lt;br /&gt;
* &#039;&#039;&#039;No reminder options in activity:&#039;&#039;&#039; Verify the plugin is enabled and the activity has a start date/time set.&lt;br /&gt;
* &#039;&#039;&#039;Duplicate emails:&#039;&#039;&#039; Make sure there are no duplicate offsets configured for the same activity.&lt;br /&gt;
* &#039;&#039;&#039;Users unsubscribed by mistake:&#039;&#039;&#039; Direct them to &#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039; to re-enable.&lt;br /&gt;
&lt;br /&gt;
== Version and requirements ==&lt;br /&gt;
* &#039;&#039;&#039;Moodle:&#039;&#039;&#039; 4.5 or later (recommended).&lt;br /&gt;
* &#039;&#039;&#039;BigBlueButtonBN:&#039;&#039;&#039; ≥ 2024100700 (or the minimum required by your release).&lt;br /&gt;
* &#039;&#039;&#039;Cron:&#039;&#039;&#039; Required for scheduled delivery.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BigBlueButton]] – the activity module BigBlueButton BN Reminders extends.&lt;br /&gt;
&lt;br /&gt;
[[Category:BigBlueButton]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154340</id>
		<title>BigBlueButton BN Reminders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154340"/>
		<updated>2025-10-09T20:22:03Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is BigBlueButton BN Reminders? ==&lt;br /&gt;
&#039;&#039;&#039;BigBlueButton BN Reminders&#039;&#039;&#039; (component: &amp;lt;code&amp;gt;bbbext_bnreminders&amp;lt;/code&amp;gt;; formerly &#039;&#039;&#039;BN Notify&#039;&#039;&#039;) is an extension to the BigBlueButton activity that sends time-based email reminders to enrolled users before a live session starts. Teachers add one or more reminders (e.g. 1 day / 1 hour before), and the plugin delivers customizable emails with the join link and session details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Note: BN Reminders requires a working cron and outgoing email configuration. It depends on the BigBlueButton activity (mod_bigbluebuttonbn) being installed and enabled. For privacy reasons, the plugin does not send reminders to guest users.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How is it set up? ==&lt;br /&gt;
* In a course, with &#039;&#039;Edit mode&#039;&#039; enabled, add or edit a &#039;&#039;&#039;BigBlueButton&#039;&#039;&#039; activity.&lt;br /&gt;
* Set a &#039;&#039;&#039;start date/time&#039;&#039;&#039; for the session (reminders are calculated from this time).&lt;br /&gt;
* In the activity settings, locate the &#039;&#039;&#039;Reminders&#039;&#039;&#039; section (BN Reminders).&lt;br /&gt;
* Click &#039;&#039;&#039;Add reminder&#039;&#039;&#039; and choose when the email should be sent (e.g. &#039;&#039;1 hour before&#039;&#039;, &#039;&#039;1 day before&#039;&#039;).&lt;br /&gt;
* (Optional) Add multiple reminders (for example, &#039;&#039;3 days before&#039;&#039; and &#039;&#039;1 hour before&#039;&#039;).&lt;br /&gt;
* Save the activity.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot from 2025-10-09 16-13-27.png|thumb|The “Session timing” and “Email notifications” sections of a BigBlueButton activity. Reminders are enabled with one reminder set to **One hour before meeting starts**, and guests are included.]]&lt;br /&gt;
&lt;br /&gt;
== How does it work? ==&lt;br /&gt;
* The plugin queues reminder emails based on the activity’s start time and the offsets you selected.&lt;br /&gt;
* Each email includes the course/activity context and a join link.&lt;br /&gt;
* Students can manage preferences from their user menu (&#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039;) and can unsubscribe via a link in the email.&lt;br /&gt;
* If the teacher reschedules the activity and saves changes, future reminders are recalculated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements and limitations:&#039;&#039;&lt;br /&gt;
# A start date/time is required for reminders to send.&lt;br /&gt;
# Guests are not supported (no emails are sent to non-enrolled/guest users).&lt;br /&gt;
# Delivery time depends on your site’s cron schedule and mail server throughput.&lt;br /&gt;
&lt;br /&gt;
== Admin settings ==&lt;br /&gt;
From &#039;&#039;Site administration → Plugins → BigBlueButton → Manage BigBlueButton extension plugins → BN Reminders&#039;&#039;, administrators can configure global defaults:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Enable/disable&#039;&#039;&#039; BN Reminders site-wide.&lt;br /&gt;
* &#039;&#039;&#039;Default reminder offsets&#039;&#039;&#039; available to teachers (e.g. 3d/1d/1h before).&lt;br /&gt;
* &#039;&#039;&#039;Email templates&#039;&#039;&#039; (subject/body) with placeholders:&lt;br /&gt;
** &amp;lt;code&amp;gt;{$url}&amp;lt;/code&amp;gt; – activity URL (join context)&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_fullname}&amp;lt;/code&amp;gt; – course full name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_shortname}&amp;lt;/code&amp;gt; – course short name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$date}&amp;lt;/code&amp;gt; – localized session date/time&lt;br /&gt;
** &amp;lt;code&amp;gt;{$name}&amp;lt;/code&amp;gt; – meeting/activity name&lt;br /&gt;
* &#039;&#039;&#039;Footer / signature&#039;&#039;&#039; (optional) for institutional branding or contact info.&lt;br /&gt;
* &#039;&#039;&#039;Permissions&#039;&#039;&#039; – assign who can configure reminders at activity level via role capabilities (teachers, managers).&lt;br /&gt;
* &#039;&#039;&#039;Scheduled task&#039;&#039;&#039; – verify frequency under &#039;&#039;Site administration → Server → Scheduled tasks&#039;&#039; (BN Reminders). Set to run every 5–15 minutes for timely delivery.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Ensure &#039;&#039;Outgoing mail configuration&#039;&#039; is working (e.g. SMTP) so reminders can be delivered.&amp;lt;/p&amp;gt;&#039;&#039;Tip: Keep subjects short and include the date/time so students can scan their inbox easily.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* &#039;&#039;&#039;Emails not sent:&#039;&#039;&#039; Check that cron is running and the BN Reminders scheduled task is enabled (see &#039;&#039;Server → Scheduled tasks&#039;&#039;). Confirm outgoing mail settings.&lt;br /&gt;
* &#039;&#039;&#039;No reminder options in activity:&#039;&#039;&#039; Verify the plugin is enabled and the activity has a start date/time set.&lt;br /&gt;
* &#039;&#039;&#039;Duplicate emails:&#039;&#039;&#039; Make sure there are no duplicate offsets configured for the same activity.&lt;br /&gt;
* &#039;&#039;&#039;Users unsubscribed by mistake:&#039;&#039;&#039; Direct them to &#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039; to re-enable.&lt;br /&gt;
&lt;br /&gt;
== Version and requirements ==&lt;br /&gt;
* &#039;&#039;&#039;Moodle:&#039;&#039;&#039; 4.5 or later (recommended).&lt;br /&gt;
* &#039;&#039;&#039;BigBlueButtonBN:&#039;&#039;&#039; ≥ 2024100700 (or the minimum required by your release).&lt;br /&gt;
* &#039;&#039;&#039;Cron:&#039;&#039;&#039; Required for scheduled delivery.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BigBlueButton]] – the activity module BigBlueButton BN Reminders extends.&lt;br /&gt;
&lt;br /&gt;
[[Category:BigBlueButton]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154339</id>
		<title>BigBlueButton BN Reminders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154339"/>
		<updated>2025-10-09T20:20:29Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is BigBlueButton BN Reminders? ==&lt;br /&gt;
&#039;&#039;&#039;BigBlueButton BN Reminders&#039;&#039;&#039; (component: &amp;lt;code&amp;gt;bbbext_bnreminders&amp;lt;/code&amp;gt;; formerly &#039;&#039;&#039;BN Notify&#039;&#039;&#039;) is an extension to the BigBlueButton activity that sends time-based email reminders to enrolled users before a live session starts. Teachers add one or more reminders (e.g. 1 day / 1 hour before), and the plugin delivers customizable emails with the join link and session details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Note: BN Reminders requires a working cron and outgoing email configuration. It depends on the BigBlueButton activity (mod_bigbluebuttonbn) being installed and enabled. For privacy reasons, the plugin does not send reminders to guest users.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How is it set up? ==&lt;br /&gt;
* In a course, with &#039;&#039;Edit mode&#039;&#039; enabled, add or edit a &#039;&#039;&#039;BigBlueButton&#039;&#039;&#039; activity.&lt;br /&gt;
* Set a &#039;&#039;&#039;start date/time&#039;&#039;&#039; for the session (reminders are calculated from this time).&lt;br /&gt;
* In the activity settings, locate the &#039;&#039;&#039;Reminders&#039;&#039;&#039; section (BN Reminders).&lt;br /&gt;
* Click &#039;&#039;&#039;Add reminder&#039;&#039;&#039; and choose when the email should be sent (e.g. &#039;&#039;1 hour before&#039;&#039;, &#039;&#039;1 day before&#039;&#039;).&lt;br /&gt;
* (Optional) Add multiple reminders (for example, &#039;&#039;3 days before&#039;&#039; and &#039;&#039;1 hour before&#039;&#039;).&lt;br /&gt;
* Save the activity.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot from 2025-10-09 16-13-27.png|thumb|The “Session timing” and “Email notifications” sections of a BigBlueButton activity. Reminders are enabled with one reminder set to **One hour before meeting starts**, and guests are included.]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Keep subjects short and include the date/time so students can scan their inbox easily.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== How does it work? ==&lt;br /&gt;
* The plugin queues reminder emails based on the activity’s start time and the offsets you selected.&lt;br /&gt;
* Each email includes the course/activity context and a join link.&lt;br /&gt;
* Students can manage preferences from their user menu (&#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039;) and can unsubscribe via a link in the email.&lt;br /&gt;
* If the teacher reschedules the activity and saves changes, future reminders are recalculated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements and limitations:&#039;&#039;&lt;br /&gt;
# A start date/time is required for reminders to send.&lt;br /&gt;
# Guests are not supported (no emails are sent to non-enrolled/guest users).&lt;br /&gt;
# Delivery time depends on your site’s cron schedule and mail server throughput.&lt;br /&gt;
&lt;br /&gt;
== Admin settings ==&lt;br /&gt;
From &#039;&#039;Site administration → Plugins → BigBlueButton → Manage BigBlueButton extension plugins → BN Reminders&#039;&#039;, administrators can configure global defaults:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Enable/disable&#039;&#039;&#039; BN Reminders site-wide.&lt;br /&gt;
* &#039;&#039;&#039;Default reminder offsets&#039;&#039;&#039; available to teachers (e.g. 3d/1d/1h before).&lt;br /&gt;
* &#039;&#039;&#039;Email templates&#039;&#039;&#039; (subject/body) with placeholders:&lt;br /&gt;
** &amp;lt;code&amp;gt;{$url}&amp;lt;/code&amp;gt; – activity URL (join context)&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_fullname}&amp;lt;/code&amp;gt; – course full name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_shortname}&amp;lt;/code&amp;gt; – course short name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$date}&amp;lt;/code&amp;gt; – localized session date/time&lt;br /&gt;
** &amp;lt;code&amp;gt;{$name}&amp;lt;/code&amp;gt; – meeting/activity name&lt;br /&gt;
* &#039;&#039;&#039;Footer / signature&#039;&#039;&#039; (optional) for institutional branding or contact info.&lt;br /&gt;
* &#039;&#039;&#039;Permissions&#039;&#039;&#039; – assign who can configure reminders at activity level via role capabilities (teachers, managers).&lt;br /&gt;
* &#039;&#039;&#039;Scheduled task&#039;&#039;&#039; – verify frequency under &#039;&#039;Site administration → Server → Scheduled tasks&#039;&#039; (BN Reminders). Set to run every 5–15 minutes for timely delivery.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Ensure &#039;&#039;Outgoing mail configuration&#039;&#039; is working (e.g. SMTP) so reminders can be delivered.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* &#039;&#039;&#039;Emails not sent:&#039;&#039;&#039; Check that cron is running and the BN Reminders scheduled task is enabled (see &#039;&#039;Server → Scheduled tasks&#039;&#039;). Confirm outgoing mail settings.&lt;br /&gt;
* &#039;&#039;&#039;No reminder options in activity:&#039;&#039;&#039; Verify the plugin is enabled and the activity has a start date/time set.&lt;br /&gt;
* &#039;&#039;&#039;Duplicate emails:&#039;&#039;&#039; Make sure there are no duplicate offsets configured for the same activity.&lt;br /&gt;
* &#039;&#039;&#039;Users unsubscribed by mistake:&#039;&#039;&#039; Direct them to &#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039; to re-enable.&lt;br /&gt;
&lt;br /&gt;
== Version and requirements ==&lt;br /&gt;
* &#039;&#039;&#039;Moodle:&#039;&#039;&#039; 4.5 or later (recommended).&lt;br /&gt;
* &#039;&#039;&#039;BigBlueButtonBN:&#039;&#039;&#039; ≥ 2024100700 (or the minimum required by your release).&lt;br /&gt;
* &#039;&#039;&#039;Cron:&#039;&#039;&#039; Required for scheduled delivery.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BigBlueButton]] – the activity module BigBlueButton BN Reminders extends.&lt;br /&gt;
&lt;br /&gt;
[[Category:BigBlueButton]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=File:Screenshot_from_2025-10-09_16-13-27.png&amp;diff=154338</id>
		<title>File:Screenshot from 2025-10-09 16-13-27.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=File:Screenshot_from_2025-10-09_16-13-27.png&amp;diff=154338"/>
		<updated>2025-10-09T20:19:59Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The “Session timing” and “Email notifications” sections of a BigBlueButton activity. Reminders are enabled with one reminder set to **One hour before meeting starts**, and guests are included.&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154337</id>
		<title>BigBlueButton BN Reminders</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=BigBlueButton_BN_Reminders&amp;diff=154337"/>
		<updated>2025-10-09T20:06:21Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: Created page with &amp;quot;== What is BigBlueButton BN Reminders? == &amp;#039;&amp;#039;&amp;#039;BigBlueButton BN Reminders&amp;#039;&amp;#039;&amp;#039; (component: &amp;lt;code&amp;gt;bbbext_bnreminders&amp;lt;/code&amp;gt;; formerly &amp;#039;&amp;#039;&amp;#039;BN Notify&amp;#039;&amp;#039;&amp;#039;) is an extension to the BigBlueButton activity that sends time-based email reminders to enrolled users before a live session starts. Teachers add one or more reminders (e.g. 1 day / 1 hour before), and the plugin delivers customizable emails with the join link and session details.  &amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Note: BN Reminders requires a w...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is BigBlueButton BN Reminders? ==&lt;br /&gt;
&#039;&#039;&#039;BigBlueButton BN Reminders&#039;&#039;&#039; (component: &amp;lt;code&amp;gt;bbbext_bnreminders&amp;lt;/code&amp;gt;; formerly &#039;&#039;&#039;BN Notify&#039;&#039;&#039;) is an extension to the BigBlueButton activity that sends time-based email reminders to enrolled users before a live session starts. Teachers add one or more reminders (e.g. 1 day / 1 hour before), and the plugin delivers customizable emails with the join link and session details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Note: BN Reminders requires a working cron and outgoing email configuration. It depends on the BigBlueButton activity (mod_bigbluebuttonbn) being installed and enabled. For privacy reasons, the plugin does not send reminders to guest users.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How is it set up? ==&lt;br /&gt;
* In a course, with &#039;&#039;Edit mode&#039;&#039; enabled, add or edit a &#039;&#039;&#039;BigBlueButton&#039;&#039;&#039; activity.&lt;br /&gt;
* Set a &#039;&#039;&#039;start date/time&#039;&#039;&#039; for the session (reminders are calculated from this time).&lt;br /&gt;
* In the activity settings, locate the &#039;&#039;&#039;Reminders&#039;&#039;&#039; section (BN Reminders).&lt;br /&gt;
* Click &#039;&#039;&#039;Add reminder&#039;&#039;&#039; and choose when the email should be sent (e.g. &#039;&#039;1 hour before&#039;&#039;, &#039;&#039;1 day before&#039;&#039;).&lt;br /&gt;
* (Optional) Add multiple reminders (for example, &#039;&#039;3 days before&#039;&#039; and &#039;&#039;1 hour before&#039;&#039;).&lt;br /&gt;
* Save the activity.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Tip: Keep subjects short and include the date/time so students can scan their inbox easily.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== How does it work? ==&lt;br /&gt;
* The plugin queues reminder emails based on the activity’s start time and the offsets you selected.&lt;br /&gt;
* Each email includes the course/activity context and a join link.&lt;br /&gt;
* Students can manage preferences from their user menu (&#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039;) and can unsubscribe via a link in the email.&lt;br /&gt;
* If the teacher reschedules the activity and saves changes, future reminders are recalculated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Requirements and limitations:&#039;&#039;&lt;br /&gt;
# A start date/time is required for reminders to send.&lt;br /&gt;
# Guests are not supported (no emails are sent to non-enrolled/guest users).&lt;br /&gt;
# Delivery time depends on your site’s cron schedule and mail server throughput.&lt;br /&gt;
&lt;br /&gt;
== Admin settings ==&lt;br /&gt;
From &#039;&#039;Site administration → Plugins → BigBlueButton → Manage BigBlueButton extension plugins → BN Reminders&#039;&#039;, administrators can configure global defaults:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Enable/disable&#039;&#039;&#039; BN Reminders site-wide.&lt;br /&gt;
* &#039;&#039;&#039;Default reminder offsets&#039;&#039;&#039; available to teachers (e.g. 3d/1d/1h before).&lt;br /&gt;
* &#039;&#039;&#039;Email templates&#039;&#039;&#039; (subject/body) with placeholders:&lt;br /&gt;
** &amp;lt;code&amp;gt;{$url}&amp;lt;/code&amp;gt; – activity URL (join context)&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_fullname}&amp;lt;/code&amp;gt; – course full name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$course_shortname}&amp;lt;/code&amp;gt; – course short name&lt;br /&gt;
** &amp;lt;code&amp;gt;{$date}&amp;lt;/code&amp;gt; – localized session date/time&lt;br /&gt;
** &amp;lt;code&amp;gt;{$name}&amp;lt;/code&amp;gt; – meeting/activity name&lt;br /&gt;
* &#039;&#039;&#039;Footer / signature&#039;&#039;&#039; (optional) for institutional branding or contact info.&lt;br /&gt;
* &#039;&#039;&#039;Permissions&#039;&#039;&#039; – assign who can configure reminders at activity level via role capabilities (teachers, managers).&lt;br /&gt;
* &#039;&#039;&#039;Scheduled task&#039;&#039;&#039; – verify frequency under &#039;&#039;Site administration → Server → Scheduled tasks&#039;&#039; (BN Reminders). Set to run every 5–15 minutes for timely delivery.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=&amp;quot;note&amp;quot;&amp;gt;Ensure &#039;&#039;Outgoing mail configuration&#039;&#039; is working (e.g. SMTP) so reminders can be delivered.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
* &#039;&#039;&#039;Emails not sent:&#039;&#039;&#039; Check that cron is running and the BN Reminders scheduled task is enabled (see &#039;&#039;Server → Scheduled tasks&#039;&#039;). Confirm outgoing mail settings.&lt;br /&gt;
* &#039;&#039;&#039;No reminder options in activity:&#039;&#039;&#039; Verify the plugin is enabled and the activity has a start date/time set.&lt;br /&gt;
* &#039;&#039;&#039;Duplicate emails:&#039;&#039;&#039; Make sure there are no duplicate offsets configured for the same activity.&lt;br /&gt;
* &#039;&#039;&#039;Users unsubscribed by mistake:&#039;&#039;&#039; Direct them to &#039;&#039;Preferences → BigBlueButton reminders preferences&#039;&#039; to re-enable.&lt;br /&gt;
&lt;br /&gt;
== Version and requirements ==&lt;br /&gt;
* &#039;&#039;&#039;Moodle:&#039;&#039;&#039; 4.5 or later (recommended).&lt;br /&gt;
* &#039;&#039;&#039;BigBlueButtonBN:&#039;&#039;&#039; ≥ 2024100700 (or the minimum required by your release).&lt;br /&gt;
* &#039;&#039;&#039;Cron:&#039;&#039;&#039; Required for scheduled delivery.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[BigBlueButton]] – the activity module BigBlueButton BN Reminders extends.&lt;br /&gt;
&lt;br /&gt;
[[Category:BigBlueButton]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=144114</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=144114"/>
		<updated>2022-08-29T17:46:02Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* General consideration */&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.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;
==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;
=== New user tours ===&lt;br /&gt;
Moodle 4.0 has four new [[User tours|user tours]] highlighting new features. If desired, they can be disabled in Site administration / Appearance / User tours.&lt;br /&gt;
&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;
=== New plugins in Moodle {{Version}} ===&lt;br /&gt;
====BigBlueButton====&lt;br /&gt;
{{Note|For recordings to work properly, [https://docs.moodle.org/502/en/Cron Cron] Jobs must be enabled}}&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/502/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;
===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;
==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>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=144113</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=144113"/>
		<updated>2022-08-29T16:36:28Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* A general consideration */&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.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;
==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;
=== New user tours ===&lt;br /&gt;
Moodle 4.0 has four new [[User tours|user tours]] highlighting new features. If desired, they can be disabled in Site administration / Appearance / User tours.&lt;br /&gt;
&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;
=== New plugins in Moodle {{Version}} ===&lt;br /&gt;
====BigBlueButton====&lt;br /&gt;
{{Note|For recordings to work properly, [https://docs.moodle.org/502/en/Cron Cron] Jobs must be enabled}}&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/502/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 implemented. Otherwise the migration will not be completed.&lt;br /&gt;
&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;
==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>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Step-by-step_Installation_Guide_for_Ubuntu&amp;diff=143968</id>
		<title>Step-by-step Installation Guide for Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Step-by-step_Installation_Guide_for_Ubuntu&amp;diff=143968"/>
		<updated>2022-08-04T14:19:01Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Step 1: Install Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
{{Note|This document is about installing Moodle 4.0 in an Ubuntu 20.04 server with PHP 7.4.}}&lt;br /&gt;
==Before you begin==&lt;br /&gt;
It is a good idea to write down the passwords (and usernames) you will need to use for Ubuntu and Moodle:&lt;br /&gt;
* The Ubuntu root password&lt;br /&gt;
* The MySQL username and password that Moodle will use&lt;br /&gt;
* The Moodle main admin username and password&lt;br /&gt;
* An additional admin Moodle username and password&lt;br /&gt;
== Step 1: Install Ubuntu ==&lt;br /&gt;
===Why we prefer Ubuntu server over Ubuntu desktop===&lt;br /&gt;
* Most IT professionals prefer to use a Command Line Interface (CLI) server, because it is safer and less prone to hacking.&lt;br /&gt;
* Amateur users might find it easier to use a graphical (desktop) interface.&lt;br /&gt;
* If you will only be using your Moodle server for local, experimental purposes, you might prefer to install the desktop (64 bits preferred) version of Ubuntu.&lt;br /&gt;
* If you install a CLI only server and later regret it, you can easily add a graphical desktop:&lt;br /&gt;
{{Note| Even though it is not recommended by most experts, you could install a Graphical User Interface (desktop) by issuing the command &#039;sudo tasksel&#039; or &#039;sudo apt install ubuntu-desktop&#039; to [https://help.ubuntu.com/community/ServerGUI install &#039;Ubuntu desktop&#039;]. BUT USE WITH CAUTION: The GUI may not appear as expected, and may prevent user from getting even the CLI. Try it at test machine first.}}&lt;br /&gt;
===Procedure===&lt;br /&gt;
*Ubuntu has a well known issue with its automatic updates filling up the /boot directory until automated updates start to fail and automated removal of old kernel files from /boot is impossible. Because of this you should consider installing Ubuntu with a /boot directory of around 5Gb and putting some automated clean up in place. More info can be found here - [https://help.ubuntu.com/community/RemoveOldKernels]&lt;br /&gt;
&lt;br /&gt;
*You can use either VI (lightweight editor) or VIM (heavyweight editor), however, if you wish to use VIM you will need to install it&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install vim&amp;lt;/pre&amp;gt;&lt;br /&gt;
*VI or VIM Commands&amp;lt;br /&amp;gt;&lt;br /&gt;
To edit a file press &amp;quot;Insert&amp;quot; Key&amp;lt;br /&amp;gt;&lt;br /&gt;
To finish editing press &amp;quot;Esc&amp;quot; Key&amp;lt;br /&amp;gt;&lt;br /&gt;
To write the file press &amp;quot;:w&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
To Exit the editor press &amp;quot;:q&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can also write and quit &amp;quot;:wq&amp;quot;&lt;br /&gt;
*In Ubuntu, the standard user, the account you created during the install, does not have rights to install/write to many of the directories. In the below tutorial we will be using the term &amp;quot;sudo&amp;quot; which stands for &amp;quot;super user do&amp;quot; before most of the commands.&lt;br /&gt;
== Step 2: Install Apache/MySQL/PHP ==&lt;br /&gt;
{{Note| Moodle 3.0.1 [https://docs.moodle.org/dev/Moodle_3.0.1_release_notes introduced support for PHP 7.0 and we will be using PHP 7.4 in this tutorial]}}&lt;br /&gt;
Open up Terminal and install the following;&lt;br /&gt;
&lt;br /&gt;
Adding the php7 ppa:&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install apache2 mysql-client mysql-server php7.4 libapache2-mod-php&lt;br /&gt;
&lt;br /&gt;
(Ubuntu 20.04 now installs PHP8 by default, so be careful to specify the PHP version number or you will get a &amp;quot;line 10602&amp;quot; error. See https://tracker.moodle.org/browse/MDL-70745 for the progress for &amp;quot;Prepare Moodle for PHP 8.0)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Run &#039;sudo mysql_secure_installation&#039; to set the root password for mysql - please, please my dear friends, WRITE IT DOWN and spare yourself some grief, you will need it in step 6.&#039;&#039;&#039;&lt;br /&gt;
== Step 3: Install Additional Software ==&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install graphviz aspell ghostscript clamav php7.4-pspell php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-ldap php7.4-zip php7.4-soap php7.4-mbstring&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart Apache so that the modules are loaded correctly&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
We will be using [[Git]] to install/update the Moodle Core Application&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install git&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Step 4: Download Moodle ==&lt;br /&gt;
Setup your local repository and download Moodle, We will use /opt for this installation.&lt;br /&gt;
*[[Git]] is what is called a &amp;quot;version control system&amp;quot;. By using [[Git|git]] it will much easier down the road to update the moodle core application. Within Step 5 there is a little more detail on why we put the moodle core application code in the /opt directory. &lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt&amp;lt;/pre&amp;gt;&lt;br /&gt;
Download the Moodle Code and Index&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git clone git://git.moodle.org/moodle.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change directory into the downloaded Moodle folder&lt;br /&gt;
&amp;lt;pre&amp;gt;cd moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retrieve a list of each branch available&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git branch -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tell [[Git|git]] which branch to track or use&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git branch --track MOODLE_400_STABLE origin/MOODLE_400_STABLE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally, Check out the Moodle version specified&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git checkout MOODLE_400_STABLE&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Step 5: Copy local repository to /var/www/html/ ==&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp -R /opt/moodle /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/moodledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown -R www-data /var/moodledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 777 /var/moodledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;Explanation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Since we setup a local repository in the previous step, you will copy it to your webroot after any updates and making changes. Having your local repository outside of the webroot, like we have in /opt, you will be able to prepare and stage your upgrades in a more efficient manner. For example, you want to make some changes or add some plug-ins, you would download the plugin and copy it to your local moodle repository. After you have added the plug-in and any other changes you might have made you will need to edit the file located in /opt/moodle/.git/info/exclude. Within that file you want to tell [[Git|git]] which files/folders to exclude when it pulls down the updates when you run your next &amp;quot;sudo git pull&amp;quot;. An example entry would be the certificate mod located in /opt/moodle/mod/certificate so within the exclude file you want to add &amp;quot;/mod/certificate&amp;quot; below the last comments. You would add additional entries, 1 per line, for each plug-in or file you might have changed. If I were to change the favicon.ico file you would just add &amp;quot;favicon.ico&amp;quot; to the exclude file. Now when you run &amp;quot;sudo git pull&amp;quot; to update moodle to the latest version it will ignore those files and directories and just update the core moodle code. Before copying to your webroot to upgrade you want to make sure and download and copy over the latest versions of the plug-ins you might have added.&lt;br /&gt;
== Step 6: Setup MySQL Server ==&lt;br /&gt;
First we need to change the default storage engine to innodb and change the default file format to Barracuda, this is a new setting compared to previous versions. You also need to set innodb_file_per_table in order for Barracuda to work properly. Ref: https://dev.mysql.com/doc/refman/5.7/en/innodb-compression-usage.html&lt;br /&gt;
*You should not need to make innodb the default storage engine anymore, the latest version of Moodle will select it automatically during install. It is always a good idea to make it default anyway. You do however need to set the default file format!&lt;br /&gt;
&lt;br /&gt;
*If you chose to use VIM instead please substitute vi for vim&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/pre&amp;gt;&lt;br /&gt;
Scroll down to the [mysqld] section and under Basic Settings add the following line under the last statement. if you want to add you have to press the &amp;quot;insert&amp;quot; button on your keyboard. this is usually above the &amp;quot;delete&amp;quot; button. this allows you to add some text.&lt;br /&gt;
&lt;br /&gt;
For MySQL Ver 8.0, the three settings below are not needed. &lt;br /&gt;
&amp;lt;pre&amp;gt;default_storage_engine = innodb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;innodb_file_per_table = 1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;innodb_file_format = Barracuda&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: If you use newer versions of MariaDB in Ubuntu 20.04 these changes in config file would arise and error (mysql unknown variable &#039;innodb_file_format=barracuda&#039;), so comment or don&#039;t make these changes, these values are get by default.innodb_file_format was deprecated in MariaDB 10.2 and removed in MariaDB.&lt;br /&gt;
&lt;br /&gt;
In order to save my.cnf using the editor, press the Esc (Escape) key, type the following in sequence which will save :w then close the editor :q&lt;br /&gt;
&amp;lt;pre&amp;gt;:w&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:q&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart MySQL Server for changes to take affect&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service mysql restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to create the Moodle database and the Moodle MySQL User with the correct permissions&lt;br /&gt;
&lt;br /&gt;
Use the password you created in step 1&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mysql -u root -p&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note| Use &#039;utf8mb4&#039; for full range (4-byte) support of UTF-8, including Emoji (&#039;utf8&#039; only supports 3-byte). You will be compliant by Moodle admin page if you don&#039;t use &#039;utf8mb4&#039; here.}}&lt;br /&gt;
Where it says &amp;quot;moodledude&amp;quot; and &amp;quot;passwordformoodledude&amp;quot; you should change to the username and password of your choosing.&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;create user &#039;moodledude&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;passwordformoodledude&#039;;&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO &#039;moodledude&#039;@&#039;localhost&#039;;&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;quit;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note - If you are using MySQL 5.6+ and when you issue the create user and get an error about the password hash you need to adjust the password to use the hash value&lt;br /&gt;
&lt;br /&gt;
You can get this by following the below&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;SELECT password(&#039;passwordformoodledude&#039;);&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This will print the hash of the password like *AD51BAFB2GD003D3480BCED0DH81AB0BG1712535, you will want to use this in the IDENTIFIED BY &#039; part&lt;br /&gt;
== Step 7: Complete Setup ==&lt;br /&gt;
*Note - If you are not comfortable using terminal to create the config.php file that needs to be created when going through the installer, you should temporarily make the webroot writable by doing the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
After you have run the installer and you have moodle setup, you NEED to revert permissions so that it is no longer writable using the below command.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
Open your browser and go to http://IP.ADDRESS.OF.SERVER/moodle&lt;br /&gt;
&lt;br /&gt;
Follow the prompts:&lt;br /&gt;
===Change the path for moodledata===&lt;br /&gt;
/var/moodledata&lt;br /&gt;
===Database Type===&lt;br /&gt;
Choose: mysqli&lt;br /&gt;
=== Database Settings ===&lt;br /&gt;
Host server: localhost&lt;br /&gt;
&lt;br /&gt;
Database: moodle&lt;br /&gt;
&lt;br /&gt;
User: moodledude (the user you created when setting up the database)&lt;br /&gt;
&lt;br /&gt;
Password: passwordformoodledude (the password for the user you created)&lt;br /&gt;
&lt;br /&gt;
Tables Prefix: mdl_&lt;br /&gt;
=== Environment Checks ===&lt;br /&gt;
This will indicate if any elements required to run moodle haven&#039;t been installed.&lt;br /&gt;
=== Next next next... ===&lt;br /&gt;
follow prompts and confirm installation&lt;br /&gt;
===Create a Site Administrator Account ===&lt;br /&gt;
Create your moodle user account which will have site administrator permissions.&lt;br /&gt;
&lt;br /&gt;
The password you select has to meet certain security requirements.&lt;br /&gt;
===Installation Complete ===&lt;br /&gt;
Congrats! You can now start using Moodle!&lt;br /&gt;
===Don&#039;t Forget===&lt;br /&gt;
If you made the webroot writable, revert permissions&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
== System Paths After Install==&lt;br /&gt;
After installing Moodle you should set the system paths, this will provide better performance VS not setting them. Each entry in Moodle will have it&#039;s explanation.&lt;br /&gt;
&lt;br /&gt;
Navigate, on the moodle webpage, to Site Administration &amp;gt; Server &amp;gt; System Paths&lt;br /&gt;
&lt;br /&gt;
Input the following;&lt;br /&gt;
&lt;br /&gt;
Path to du: /usr/bin/du&lt;br /&gt;
&lt;br /&gt;
Path to apsell: /usr/bin/aspell&lt;br /&gt;
&lt;br /&gt;
Path to dot: /usr/bin/dot&lt;br /&gt;
&lt;br /&gt;
Save Changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Optional if you do not already have an AntiVirus Solution&lt;br /&gt;
We also installed ClamAV in Step 3 so we need to set the path in Moodle&lt;br /&gt;
&lt;br /&gt;
1st Create the Quarantine Directory&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/quarantine&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change Ownership&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown -R www-data /var/quarantine&amp;lt;/pre&amp;gt;&lt;br /&gt;
Navigate to Site Administration &amp;gt; Plugins &amp;gt; Antivirus plugins &amp;gt; Manage antivirus plugins&lt;br /&gt;
&lt;br /&gt;
Enable ClamAV antivirus&lt;br /&gt;
&lt;br /&gt;
Click on Settings&lt;br /&gt;
&lt;br /&gt;
Set the proper settings&lt;br /&gt;
&lt;br /&gt;
Save changes&lt;br /&gt;
&lt;br /&gt;
In previous Moodle branches:&lt;br /&gt;
Check &amp;quot;Use ClamAV on uploaded files&amp;quot;&lt;br /&gt;
ClamAV Path : /usr/bin/clamscan&lt;br /&gt;
Quarantine Directory : /var/quarantine&lt;br /&gt;
&lt;br /&gt;
Save Changes&lt;br /&gt;
== Suggestions: Enable Zend OpCache/Change Document Root==&lt;br /&gt;
*Since we have installed Ubuntu Server 20.04LTS, we can use the built-in PHP OPcache.&lt;br /&gt;
Add [[OPcache#Configuration|the recommended OPcache settings]] to your 05-opcache.ini file. Again, substitute vi with vim and remember to use the correct key sequences from the introduction.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/php7/apache2/conf.d/05-opcache.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE: In Ubuntu 16.04 opcache.ini is located in:&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/php/7.0/mods-available/opcache.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart Apache for changes to take affect.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
That&#039;s it for the Zend OpCache!&lt;br /&gt;
&lt;br /&gt;
You can also install a GUI to view the status of your Zend OpCache, not recommended on production servers.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /var/www/html/moodle/&amp;lt;/pre&amp;gt;&lt;br /&gt;
Download the PHP Script to your Moodle directory, you should also add this file to /opt/moodle/.git/info/exclude file so it does not get removed when upgrading your installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo wget https://github.com/rlerdorf/opcache-status/blob/master/opcache.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
Visit http://ip.address.of.server/moodle/opcache.php&lt;br /&gt;
&lt;br /&gt;
If you do not want your end users to type http://yourserver/moodle and just want them to navigate to http://youserver you will need to edit the site configuration for Apache which will tell Apache to use the /var/www/html/moodle as the root directory and not /var/www/html&lt;br /&gt;
&lt;br /&gt;
Open up the Apache sites config and change the document root&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/apache2/sites-available/000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
On the line where DocumentRoot is;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Change From: DocumentRoot /var/www/html&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Change To: DocumentRoot /var/www/html/moodle&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:w&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:q&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart Apache for changes to take affect.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Important note!&lt;br /&gt;
&lt;br /&gt;
If you have already installed Moodle then you should make the below changes.&lt;br /&gt;
== Editing config.php for moodle ==&lt;br /&gt;
In the installation instructions, one of the suggested settings for &#039;webroot&#039; is &#039;localhost&#039;. This is fine if all you want to do is some local testing of your new Moodle installation. If, however, you want to view your new installation from another machine on the same local area network, or view your site on the Internet, you will have to change this setting:&lt;br /&gt;
&lt;br /&gt;
For local testing, &#039;localhost&#039; is fine for the webroot ($CFG-&amp;gt;wwwroot in config.php).&lt;br /&gt;
If you want to test your site from other machines on the same local area network (LAN), then you will have to use the private ip address of the serving machine, (e.g. 192.168.1.2/moodle) or the network name of the serving computer (e.g. network_name_of_serving_machine/moodle) as the web root. Depending on your LAN setup, it may be better to use the network name of the computer rather than its (private) ip address, because the ip address can and will change from time to time. If you don&#039;t want to use the network name, then you will have to speak to your network administrator and have them assign a permanent ip address to the serving machine.&lt;br /&gt;
Finally, if you want to test your new installation across the internet, you will have to use either a domain name or a permanent (public) ip address/moodle as your web root. To handle both types of access, see masquerading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edit config.php for Moodle&lt;br /&gt;
&lt;br /&gt;
cd /var/www/html/moodle&lt;br /&gt;
sudo vim config.php&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;insert&amp;quot; button on your keyboard, make then changes you need to make. Then press &amp;quot;escape&amp;quot; and type the following in to quit and to save changes (excluding quotation marks): &amp;quot;:wq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under $CFG-&amp;gt;wwwroot change to http://ip.address.of.server instead of http://ip.address.of.server/moodle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hosting several Moodle branches in one Ubuntu server==&lt;br /&gt;
* This is very useful for the language pack maintainers to test translations in several Moodle branches.&lt;br /&gt;
* It is also very useful for developers to test their plugins in different Moodle branches.&lt;br /&gt;
* Just create a folder for each instance inside the web folder and that would be enough. &lt;br /&gt;
* To access the sites you only need to add the folder to localhost URL: http://localhost/moodle31&lt;br /&gt;
* You can have an instance for each version from 1.9 to 3.1 &lt;br /&gt;
&lt;br /&gt;
* You do need a separate data folder for each instance and a separate database (You can use phpmyadmin to set your database, but that&#039;s not necessary), add each instance in its own folder, and carry on as above. You can also host another service (e.g., Mahara) in its separate folder.&lt;br /&gt;
===Example 1===&lt;br /&gt;
*So, one example folder tree on one Linux laptop (an actual server would be more) may look something like:&lt;br /&gt;
 var&lt;br /&gt;
--www&lt;br /&gt;
    ----maharadata&lt;br /&gt;
    ----moodlecleandata&lt;br /&gt;
    ----moodlestabledata&lt;br /&gt;
    ----moodlemasterdata&lt;br /&gt;
    ----moodletestingdata&lt;br /&gt;
    ----uswmoodledata&lt;br /&gt;
    ----html&lt;br /&gt;
        ------mahara&lt;br /&gt;
        ------moodleclean&lt;br /&gt;
        ------moodlestable&lt;br /&gt;
        ------moodlemaster&lt;br /&gt;
        ------moodletesting&lt;br /&gt;
        ------uswmoodle&lt;br /&gt;
===Example 2===&lt;br /&gt;
* Have several sandboxed Moodles on a single (CentOS X) server all of different versions .. only the ones that are supported for security fixes and above - 2.7,2.8,2.9,3.0, and now a 3.1. Pretty much &#039;stock&#039; Moodles with only occasional addons, etc. for testing.&lt;br /&gt;
* All have their separate code and data directories as well as their separate DB&#039;s.&lt;br /&gt;
&lt;br /&gt;
* Hint: install and maintain them all with [[Git for Administrators|git]] ... even if you don&#039;t prefer/like command line, that is by far the most efficient way to update and/or upgrade a site.&lt;br /&gt;
 /var/www/html/moodle27/version.php:$release  = &#039;2.7.14 (Build: 20160509)&#039;&lt;br /&gt;
 /var/www/html/moodle28/version.php:$release  = &#039;2.8.12 (Build: 20160509)&#039;&lt;br /&gt;
 /var/www/html/moodle29/version.php:$release  = &#039;2.9.6+ (Build: 20160520)&#039;&lt;br /&gt;
 /var/www/html/moodle30/version.php:$release  = &#039;3.0.4+ (Build: 20160603)&#039;&lt;br /&gt;
 /var/www/html/moodle31/version.php:$release  = &#039;3.1+ (Build: 20160603)&#039;&lt;br /&gt;
* The git -b command locks a site into the version provided with the rest of the git command ... for example, installing the 3.1, which is a long-term support version, installed with git -b option. Don&#039;t plan on upgrading nor testing upgrades with that one.&lt;br /&gt;
 git clone -b MOODLE_31_STABLE git://git.moodle.org/moodle.git moodle31&lt;br /&gt;
* All the other moodles I have on that server have been installed via git &lt;br /&gt;
 git clone git://git.moodle.org/moodle.git [nameofdir]&lt;br /&gt;
* then from nameofdir&lt;br /&gt;
 git branch --track MOODLE_2#_STABLE origin/MOODLE_2#_STABLE&lt;br /&gt;
 git checkout MOODLE_2#_STABLE&lt;br /&gt;
* 2# is the version number.&lt;br /&gt;
&lt;br /&gt;
* That allows one to march that moodle upwards ... higher branch(es). So one can test an upgrade (as opposed to an &#039;update&#039;).&lt;br /&gt;
&lt;br /&gt;
* This second method &#039;gits&#039; more code and backups will range in the 5+ Meg range due to all the older version git stuff The 3.1 much less (restricted to 3.1 branch):&lt;br /&gt;
&lt;br /&gt;
* 545M ./moodle296-code-20160604145012.tar&lt;br /&gt;
&lt;br /&gt;
* 193M ./moodle31+-code-2016060883737.tar&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Installation on Ubuntu using Git]]&lt;br /&gt;
[[es:Guia de instalacion paso-a-paso para Ubuntu 16.04]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Step-by-step_Installation_Guide_for_Ubuntu&amp;diff=143956</id>
		<title>Step-by-step Installation Guide for Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Step-by-step_Installation_Guide_for_Ubuntu&amp;diff=143956"/>
		<updated>2022-08-03T18:58:08Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Before you begin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
{{Note|This document is about installing Moodle 4.0 in an Ubuntu 20.04 server with PHP 7.4.}}&lt;br /&gt;
==Before you begin==&lt;br /&gt;
It is a good idea to write down the passwords (and usernames) you will need to use for Ubuntu and Moodle:&lt;br /&gt;
* The Ubuntu root password&lt;br /&gt;
* The MySQL username and password that Moodle will use&lt;br /&gt;
* The Moodle main admin username and password&lt;br /&gt;
* An additional admin Moodle username and password&lt;br /&gt;
== Step 1: Install Ubuntu ==&lt;br /&gt;
===Why we prefer Ubuntu server over Ubuntu desktop===&lt;br /&gt;
* Most IT professionals prefer to use a Command Line Interface (CLI) server, because it is safer and less prone to hacking.&lt;br /&gt;
* Amateur users might find it easier to use a graphical (desktop) interface.&lt;br /&gt;
* If you will only be using your Moodle server for local, experimental purposes, you might prefer to install the desktop (64 bits preferred) version of Ubuntu.&lt;br /&gt;
* If you install a CLI only server and later regret it, you can easily add a graphical desktop:&lt;br /&gt;
{{Note| Even though it is not recommended by most experts, you could install a Graphical User Interface (desktop) by issuing the command &#039;sudo tasksel&#039; or &#039;sudo apt install ubuntu-desktop&#039; to [https://help.ubuntu.com/community/ServerGUI install &#039;Ubuntu desktop&#039;]. BUT USE WITH CAUTION: The GUI may not appear as expected, and may prevent user from getting even the CLI. Try it at test machine first.}}&lt;br /&gt;
===Procedure===&lt;br /&gt;
*Ubuntu has a well known issue with its automatic updates filling up the /boot directory until automated updates start to fail and automated removal of old kernel files from /boot is impossible. Because of this you should consider installing Ubuntu with a /boot directory of around 5Gb and putting some automated clean up in place. More info can be found here - [https://help.ubuntu.com/community/RemoveOldKernels]&lt;br /&gt;
&lt;br /&gt;
*You can use either VI (lightweight editor) or VIM (heavyweight editor), however, if you wish to use VIM you will need to install it&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install vim&amp;lt;/pre&amp;gt;&lt;br /&gt;
*VI or VIM Commands&amp;lt;br /&amp;gt;&lt;br /&gt;
To edit a file press &amp;quot;Insert&amp;quot; Key&amp;lt;br /&amp;gt;&lt;br /&gt;
To finish editing press &amp;quot;Esc&amp;quot; Key&amp;lt;br /&amp;gt;&lt;br /&gt;
To write the file press &amp;quot;:w&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
To Exit the editor press &amp;quot;:q&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can also write and quit &amp;quot;:wq&amp;quot;&lt;br /&gt;
*In Ubuntu, the standard user, the account you created during the install, does not have rights to install/write to many of the directories. In the below tutorial we will be using the term &amp;quot;sudo&amp;quot; which stands for &amp;quot;super user do&amp;quot; before most of the commands.&lt;br /&gt;
== Step 2: Install Apache/MySQL/PHP ==&lt;br /&gt;
{{Note| Moodle 3.0.1 [https://docs.moodle.org/dev/Moodle_3.0.1_release_notes introduced support for PHP 7.0 and we will be using PHP 7.4 in this tutorial]}}&lt;br /&gt;
Open up Terminal and install the following;&lt;br /&gt;
&lt;br /&gt;
Adding the php7 ppa:&lt;br /&gt;
&lt;br /&gt;
sudo add-apt-repository ppa:ondrej/php&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install apache2 mysql-client mysql-server php7.4 libapache2-mod-php&lt;br /&gt;
&lt;br /&gt;
(Ubuntu 20.04 now installs PHP8 by default, so be careful to specify the PHP version number or you will get a &amp;quot;line 10602&amp;quot; error. See https://tracker.moodle.org/browse/MDL-70745 for the progress for &amp;quot;Prepare Moodle for PHP 8.0)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Run &#039;sudo mysql_secure_installation&#039; to set the root password for mysql - please, please my dear friends, WRITE IT DOWN and spare yourself some grief, you will need it in step 6.&#039;&#039;&#039;&lt;br /&gt;
== Step 3: Install Additional Software ==&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install graphviz aspell ghostscript clamav php7.4-pspell php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-ldap php7.4-zip php7.4-soap php7.4-mbstring&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart Apache so that the modules are loaded correctly&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
We will be using [[Git]] to install/update the Moodle Core Application&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install git&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Step 4: Download Moodle ==&lt;br /&gt;
Setup your local repository and download Moodle, We will use /opt for this installation.&lt;br /&gt;
*[[Git]] is what is called a &amp;quot;version control system&amp;quot;. By using [[Git|git]] it will much easier down the road to update the moodle core application. Within Step 5 there is a little more detail on why we put the moodle core application code in the /opt directory. &lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt&amp;lt;/pre&amp;gt;&lt;br /&gt;
Download the Moodle Code and Index&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git clone git://git.moodle.org/moodle.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change directory into the downloaded Moodle folder&lt;br /&gt;
&amp;lt;pre&amp;gt;cd moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Retrieve a list of each branch available&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git branch -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tell [[Git|git]] which branch to track or use&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git branch --track MOODLE_40_STABLE origin/MOODLE_40_STABLE&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally, Check out the Moodle version specified&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git checkout MOODLE_40_STABLE&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Step 5: Copy local repository to /var/www/html/ ==&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp -R /opt/moodle /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/moodledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown -R www-data /var/moodledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 777 /var/moodledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;Explanation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Since we setup a local repository in the previous step, you will copy it to your webroot after any updates and making changes. Having your local repository outside of the webroot, like we have in /opt, you will be able to prepare and stage your upgrades in a more efficient manner. For example, you want to make some changes or add some plug-ins, you would download the plugin and copy it to your local moodle repository. After you have added the plug-in and any other changes you might have made you will need to edit the file located in /opt/moodle/.git/info/exclude. Within that file you want to tell [[Git|git]] which files/folders to exclude when it pulls down the updates when you run your next &amp;quot;sudo git pull&amp;quot;. An example entry would be the certificate mod located in /opt/moodle/mod/certificate so within the exclude file you want to add &amp;quot;/mod/certificate&amp;quot; below the last comments. You would add additional entries, 1 per line, for each plug-in or file you might have changed. If I were to change the favicon.ico file you would just add &amp;quot;favicon.ico&amp;quot; to the exclude file. Now when you run &amp;quot;sudo git pull&amp;quot; to update moodle to the latest version it will ignore those files and directories and just update the core moodle code. Before copying to your webroot to upgrade you want to make sure and download and copy over the latest versions of the plug-ins you might have added.&lt;br /&gt;
== Step 6: Setup MySQL Server ==&lt;br /&gt;
First we need to change the default storage engine to innodb and change the default file format to Barracuda, this is a new setting compared to previous versions. You also need to set innodb_file_per_table in order for Barracuda to work properly. Ref: https://dev.mysql.com/doc/refman/5.7/en/innodb-compression-usage.html&lt;br /&gt;
*You should not need to make innodb the default storage engine anymore, the latest version of Moodle will select it automatically during install. It is always a good idea to make it default anyway. You do however need to set the default file format!&lt;br /&gt;
&lt;br /&gt;
*If you chose to use VIM instead please substitute vi for vim&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/pre&amp;gt;&lt;br /&gt;
Scroll down to the [mysqld] section and under Basic Settings add the following line under the last statement. if you want to add you have to press the &amp;quot;insert&amp;quot; button on your keyboard. this is usually above the &amp;quot;delete&amp;quot; button. this allows you to add some text.&lt;br /&gt;
&lt;br /&gt;
For MySQL Ver 8.0, the three settings below are not needed. &lt;br /&gt;
&amp;lt;pre&amp;gt;default_storage_engine = innodb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;innodb_file_per_table = 1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;innodb_file_format = Barracuda&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: If you use newer versions of MariaDB in Ubuntu 20.04 these changes in config file would arise and error (mysql unknown variable &#039;innodb_file_format=barracuda&#039;), so comment or don&#039;t make these changes, these values are get by default.innodb_file_format was deprecated in MariaDB 10.2 and removed in MariaDB.&lt;br /&gt;
&lt;br /&gt;
In order to save my.cnf using the editor, press the Esc (Escape) key, type the following in sequence which will save :w then close the editor :q&lt;br /&gt;
&amp;lt;pre&amp;gt;:w&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:q&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart MySQL Server for changes to take affect&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service mysql restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we need to create the Moodle database and the Moodle MySQL User with the correct permissions&lt;br /&gt;
&lt;br /&gt;
Use the password you created in step 1&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mysql -u root -p&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note| Use &#039;utf8mb4&#039; for full range (4-byte) support of UTF-8, including Emoji (&#039;utf8&#039; only supports 3-byte). You will be compliant by Moodle admin page if you don&#039;t use &#039;utf8mb4&#039; here.}}&lt;br /&gt;
Where it says &amp;quot;moodledude&amp;quot; and &amp;quot;passwordformoodledude&amp;quot; you should change to the username and password of your choosing.&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;create user &#039;moodledude&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;passwordformoodledude&#039;;&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO &#039;moodledude&#039;@&#039;localhost&#039;;&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;quit;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note - If you are using MySQL 5.6+ and when you issue the create user and get an error about the password hash you need to adjust the password to use the hash value&lt;br /&gt;
&lt;br /&gt;
You can get this by following the below&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;SELECT password(&#039;passwordformoodledude&#039;);&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This will print the hash of the password like *AD51BAFB2GD003D3480BCED0DH81AB0BG1712535, you will want to use this in the IDENTIFIED BY &#039; part&lt;br /&gt;
== Step 7: Complete Setup ==&lt;br /&gt;
*Note - If you are not comfortable using terminal to create the config.php file that needs to be created when going through the installer, you should temporarily make the webroot writable by doing the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
After you have run the installer and you have moodle setup, you NEED to revert permissions so that it is no longer writable using the below command.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
Open your browser and go to http://IP.ADDRESS.OF.SERVER/moodle&lt;br /&gt;
&lt;br /&gt;
Follow the prompts:&lt;br /&gt;
===Change the path for moodledata===&lt;br /&gt;
/var/moodledata&lt;br /&gt;
===Database Type===&lt;br /&gt;
Choose: mysqli&lt;br /&gt;
=== Database Settings ===&lt;br /&gt;
Host server: localhost&lt;br /&gt;
&lt;br /&gt;
Database: moodle&lt;br /&gt;
&lt;br /&gt;
User: moodledude (the user you created when setting up the database)&lt;br /&gt;
&lt;br /&gt;
Password: passwordformoodledude (the password for the user you created)&lt;br /&gt;
&lt;br /&gt;
Tables Prefix: mdl_&lt;br /&gt;
=== Environment Checks ===&lt;br /&gt;
This will indicate if any elements required to run moodle haven&#039;t been installed.&lt;br /&gt;
=== Next next next... ===&lt;br /&gt;
follow prompts and confirm installation&lt;br /&gt;
===Create a Site Administrator Account ===&lt;br /&gt;
Create your moodle user account which will have site administrator permissions.&lt;br /&gt;
&lt;br /&gt;
The password you select has to meet certain security requirements.&lt;br /&gt;
===Installation Complete ===&lt;br /&gt;
Congrats! You can now start using Moodle!&lt;br /&gt;
===Don&#039;t Forget===&lt;br /&gt;
If you made the webroot writable, revert permissions&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
== System Paths After Install==&lt;br /&gt;
After installing Moodle you should set the system paths, this will provide better performance VS not setting them. Each entry in Moodle will have it&#039;s explanation.&lt;br /&gt;
&lt;br /&gt;
Navigate, on the moodle webpage, to Site Administration &amp;gt; Server &amp;gt; System Paths&lt;br /&gt;
&lt;br /&gt;
Input the following;&lt;br /&gt;
&lt;br /&gt;
Path to du: /usr/bin/du&lt;br /&gt;
&lt;br /&gt;
Path to apsell: /usr/bin/aspell&lt;br /&gt;
&lt;br /&gt;
Path to dot: /usr/bin/dot&lt;br /&gt;
&lt;br /&gt;
Save Changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Optional if you do not already have an AntiVirus Solution&lt;br /&gt;
We also installed ClamAV in Step 3 so we need to set the path in Moodle&lt;br /&gt;
&lt;br /&gt;
1st Create the Quarantine Directory&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/quarantine&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change Ownership&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown -R www-data /var/quarantine&amp;lt;/pre&amp;gt;&lt;br /&gt;
Navigate to Site Administration &amp;gt; Plugins &amp;gt; Antivirus plugins &amp;gt; Manage antivirus plugins&lt;br /&gt;
&lt;br /&gt;
Enable ClamAV antivirus&lt;br /&gt;
&lt;br /&gt;
Click on Settings&lt;br /&gt;
&lt;br /&gt;
Set the proper settings&lt;br /&gt;
&lt;br /&gt;
Save changes&lt;br /&gt;
&lt;br /&gt;
In previous Moodle branches:&lt;br /&gt;
Check &amp;quot;Use ClamAV on uploaded files&amp;quot;&lt;br /&gt;
ClamAV Path : /usr/bin/clamscan&lt;br /&gt;
Quarantine Directory : /var/quarantine&lt;br /&gt;
&lt;br /&gt;
Save Changes&lt;br /&gt;
== Suggestions: Enable Zend OpCache/Change Document Root==&lt;br /&gt;
*Since we have installed Ubuntu Server 20.04LTS, we can use the built-in PHP OPcache.&lt;br /&gt;
Add [[OPcache#Configuration|the recommended OPcache settings]] to your 05-opcache.ini file. Again, substitute vi with vim and remember to use the correct key sequences from the introduction.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/php7/apache2/conf.d/05-opcache.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTE: In Ubuntu 16.04 opcache.ini is located in:&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/php/7.0/mods-available/opcache.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart Apache for changes to take affect.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
That&#039;s it for the Zend OpCache!&lt;br /&gt;
&lt;br /&gt;
You can also install a GUI to view the status of your Zend OpCache, not recommended on production servers.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /var/www/html/moodle/&amp;lt;/pre&amp;gt;&lt;br /&gt;
Download the PHP Script to your Moodle directory, you should also add this file to /opt/moodle/.git/info/exclude file so it does not get removed when upgrading your installation.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo wget https://github.com/rlerdorf/opcache-status/blob/master/opcache.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
Visit http://ip.address.of.server/moodle/opcache.php&lt;br /&gt;
&lt;br /&gt;
If you do not want your end users to type http://yourserver/moodle and just want them to navigate to http://youserver you will need to edit the site configuration for Apache which will tell Apache to use the /var/www/html/moodle as the root directory and not /var/www/html&lt;br /&gt;
&lt;br /&gt;
Open up the Apache sites config and change the document root&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/apache2/sites-available/000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
On the line where DocumentRoot is;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Change From: DocumentRoot /var/www/html&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Change To: DocumentRoot /var/www/html/moodle&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:w&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:q&amp;lt;/pre&amp;gt;&lt;br /&gt;
Restart Apache for changes to take affect.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Important note!&lt;br /&gt;
&lt;br /&gt;
If you have already installed Moodle then you should make the below changes.&lt;br /&gt;
== Editing config.php for moodle ==&lt;br /&gt;
In the installation instructions, one of the suggested settings for &#039;webroot&#039; is &#039;localhost&#039;. This is fine if all you want to do is some local testing of your new Moodle installation. If, however, you want to view your new installation from another machine on the same local area network, or view your site on the Internet, you will have to change this setting:&lt;br /&gt;
&lt;br /&gt;
For local testing, &#039;localhost&#039; is fine for the webroot ($CFG-&amp;gt;wwwroot in config.php).&lt;br /&gt;
If you want to test your site from other machines on the same local area network (LAN), then you will have to use the private ip address of the serving machine, (e.g. 192.168.1.2/moodle) or the network name of the serving computer (e.g. network_name_of_serving_machine/moodle) as the web root. Depending on your LAN setup, it may be better to use the network name of the computer rather than its (private) ip address, because the ip address can and will change from time to time. If you don&#039;t want to use the network name, then you will have to speak to your network administrator and have them assign a permanent ip address to the serving machine.&lt;br /&gt;
Finally, if you want to test your new installation across the internet, you will have to use either a domain name or a permanent (public) ip address/moodle as your web root. To handle both types of access, see masquerading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edit config.php for Moodle&lt;br /&gt;
&lt;br /&gt;
cd /var/www/html/moodle&lt;br /&gt;
sudo vim config.php&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;insert&amp;quot; button on your keyboard, make then changes you need to make. Then press &amp;quot;escape&amp;quot; and type the following in to quit and to save changes (excluding quotation marks): &amp;quot;:wq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under $CFG-&amp;gt;wwwroot change to http://ip.address.of.server instead of http://ip.address.of.server/moodle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hosting several Moodle branches in one Ubuntu server==&lt;br /&gt;
* This is very useful for the language pack maintainers to test translations in several Moodle branches.&lt;br /&gt;
* It is also very useful for developers to test their plugins in different Moodle branches.&lt;br /&gt;
* Just create a folder for each instance inside the web folder and that would be enough. &lt;br /&gt;
* To access the sites you only need to add the folder to localhost URL: http://localhost/moodle31&lt;br /&gt;
* You can have an instance for each version from 1.9 to 3.1 &lt;br /&gt;
&lt;br /&gt;
* You do need a separate data folder for each instance and a separate database (You can use phpmyadmin to set your database, but that&#039;s not necessary), add each instance in its own folder, and carry on as above. You can also host another service (e.g., Mahara) in its separate folder.&lt;br /&gt;
===Example 1===&lt;br /&gt;
*So, one example folder tree on one Linux laptop (an actual server would be more) may look something like:&lt;br /&gt;
 var&lt;br /&gt;
--www&lt;br /&gt;
    ----maharadata&lt;br /&gt;
    ----moodlecleandata&lt;br /&gt;
    ----moodlestabledata&lt;br /&gt;
    ----moodlemasterdata&lt;br /&gt;
    ----moodletestingdata&lt;br /&gt;
    ----uswmoodledata&lt;br /&gt;
    ----html&lt;br /&gt;
        ------mahara&lt;br /&gt;
        ------moodleclean&lt;br /&gt;
        ------moodlestable&lt;br /&gt;
        ------moodlemaster&lt;br /&gt;
        ------moodletesting&lt;br /&gt;
        ------uswmoodle&lt;br /&gt;
===Example 2===&lt;br /&gt;
* Have several sandboxed Moodles on a single (CentOS X) server all of different versions .. only the ones that are supported for security fixes and above - 2.7,2.8,2.9,3.0, and now a 3.1. Pretty much &#039;stock&#039; Moodles with only occasional addons, etc. for testing.&lt;br /&gt;
* All have their separate code and data directories as well as their separate DB&#039;s.&lt;br /&gt;
&lt;br /&gt;
* Hint: install and maintain them all with [[Git for Administrators|git]] ... even if you don&#039;t prefer/like command line, that is by far the most efficient way to update and/or upgrade a site.&lt;br /&gt;
 /var/www/html/moodle27/version.php:$release  = &#039;2.7.14 (Build: 20160509)&#039;&lt;br /&gt;
 /var/www/html/moodle28/version.php:$release  = &#039;2.8.12 (Build: 20160509)&#039;&lt;br /&gt;
 /var/www/html/moodle29/version.php:$release  = &#039;2.9.6+ (Build: 20160520)&#039;&lt;br /&gt;
 /var/www/html/moodle30/version.php:$release  = &#039;3.0.4+ (Build: 20160603)&#039;&lt;br /&gt;
 /var/www/html/moodle31/version.php:$release  = &#039;3.1+ (Build: 20160603)&#039;&lt;br /&gt;
* The git -b command locks a site into the version provided with the rest of the git command ... for example, installing the 3.1, which is a long-term support version, installed with git -b option. Don&#039;t plan on upgrading nor testing upgrades with that one.&lt;br /&gt;
 git clone -b MOODLE_31_STABLE git://git.moodle.org/moodle.git moodle31&lt;br /&gt;
* All the other moodles I have on that server have been installed via git &lt;br /&gt;
 git clone git://git.moodle.org/moodle.git [nameofdir]&lt;br /&gt;
* then from nameofdir&lt;br /&gt;
 git branch --track MOODLE_2#_STABLE origin/MOODLE_2#_STABLE&lt;br /&gt;
 git checkout MOODLE_2#_STABLE&lt;br /&gt;
* 2# is the version number.&lt;br /&gt;
&lt;br /&gt;
* That allows one to march that moodle upwards ... higher branch(es). So one can test an upgrade (as opposed to an &#039;update&#039;).&lt;br /&gt;
&lt;br /&gt;
* This second method &#039;gits&#039; more code and backups will range in the 5+ Meg range due to all the older version git stuff The 3.1 much less (restricted to 3.1 branch):&lt;br /&gt;
&lt;br /&gt;
* 545M ./moodle296-code-20160604145012.tar&lt;br /&gt;
&lt;br /&gt;
* 193M ./moodle31+-code-2016060883737.tar&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Installation on Ubuntu using Git]]&lt;br /&gt;
[[es:Guia de instalacion paso-a-paso para Ubuntu 16.04]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=143955</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=143955"/>
		<updated>2022-08-03T18:52:55Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* After upgrading */&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.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;
==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;
&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;
=== New user tours ===&lt;br /&gt;
Moodle 4.0 has four new [[User tours|user tours]] highlighting new features. If desired, they can be disabled in Site administration / Appearance / User tours.&lt;br /&gt;
&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;
=== New plugins in Moodle {{Version}} ===&lt;br /&gt;
====BigBlueButton====&lt;br /&gt;
{{Note|For recordings to work properly, [https://docs.moodle.org/502/en/Cron Cron] Jobs must be enabled}}&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/502/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;
===== A 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;
===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;
==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>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=143954</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=143954"/>
		<updated>2022-08-03T18:46:40Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* New plugins in Moodle 4.0 */&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.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;
==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;
==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;
=== New user tours ===&lt;br /&gt;
Moodle 4.0 has four new [[User tours|user tours]] highlighting new features. If desired, they can be disabled in Site administration / Appearance / User tours.&lt;br /&gt;
&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;
=== New plugins in Moodle {{Version}} ===&lt;br /&gt;
====BigBlueButton====&lt;br /&gt;
{{Note|For recordings to work properly, [https://docs.moodle.org/502/en/Cron Cron] Jobs must be enabled}}&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/502/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;
===== A 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;
&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;
===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;
==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>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=143943</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Upgrading&amp;diff=143943"/>
		<updated>2022-08-02T15:25:14Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* After upgrading */&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.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;
==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;
==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;
=== New user tours ===&lt;br /&gt;
Moodle 4.0 has four new [[User tours|user tours]] highlighting new features. If desired, they can be disabled in Site administration / Appearance / User tours.&lt;br /&gt;
&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;
&lt;br /&gt;
====BigBlueButtonBN====&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/502/en/BigBlueButton BigBlueButton in Moodle 4.0]&lt;br /&gt;
&lt;br /&gt;
When upgrading to Moodle 4.0, there are two possible scenarios.&lt;br /&gt;
&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;
&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;
&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;
&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;
&lt;br /&gt;
===== A 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;
&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;
===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;
==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>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=BigBlueButton&amp;diff=142906</id>
		<title>BigBlueButton</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=BigBlueButton&amp;diff=142906"/>
		<updated>2022-01-31T21:04:36Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: Updated images aligning to Moodle 4.0 and BBB 2.4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{New features}}&lt;br /&gt;
==What is the BigBlueButton activity?==&lt;br /&gt;
BigBlueButton lets you create from within Moodle links to real-time on-line classrooms using BigBlueButton, an open source web conferencing system for distance education. You can specify conference times, which are then added to the calendar, and, if allowed in your installation, the sessions may be recorded for viewing later. &lt;br /&gt;
&lt;br /&gt;
Free Tier Hosting is currently restricted as follows:&lt;br /&gt;
# The maximum length for each session is 60 minutes;&lt;br /&gt;
# The maximum number of concurrent users per session is 25;&lt;br /&gt;
# Recordings expire after seven (7) days and are not downloadable; and&lt;br /&gt;
# Viewers&#039; (student) webcams are only visible to the moderator.&lt;br /&gt;
==How is it set up?==&lt;br /&gt;
*In a course, with the editing turned, on add BigBlueButton from the activity chooser.&lt;br /&gt;
*Choose a name and description, and, if desired, a welcome message which will appear in the Chat box when participants join the session.&lt;br /&gt;
*If you tick &amp;quot;wait for moderator&amp;quot;, students can only join once someone with the moderator role has entered the room.&lt;br /&gt;
*From the Participants list you can, if needed, give specific roles to specific people, such as a moderator role.&lt;br /&gt;
*In the Schedule section you can set a start time and also a time after which student will not be able to enter the room.&lt;br /&gt;
==How does it work?==&lt;br /&gt;
*Once set up, the activity appears with a link to join when the time is correct. (Before then, or if a moderator is required first. a message appears saying the conference has not yet started.)&lt;br /&gt;
[[File:bbb-room.png|alt=]]&lt;br /&gt;
*On entering the room, a message will appear asking if you want to use your microphone or just listen. If you choose microphone you will need to check your settings.&lt;br /&gt;
*The moderator can choose whether to allow participants to use webcams and microphones or not.&lt;br /&gt;
*The central area can display presentations, polls, screensharing or an interactive whiteboard.&lt;br /&gt;
*There is also a chat option with public and private chat.&lt;br /&gt;
&lt;br /&gt;
[[Category:BigBlueButton]]&lt;br /&gt;
[[es:Guía rápida de BigBlueButton]]&lt;br /&gt;
[[File:bbb24 test-moodle.png|left|frameless|600x600px]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=File:bbb-room.png&amp;diff=142905</id>
		<title>File:bbb-room.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=File:bbb-room.png&amp;diff=142905"/>
		<updated>2022-01-31T21:03:53Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BigBlueButtonBN room in Moodle 4.0&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=File:bbb24_test-moodle.png&amp;diff=142904</id>
		<title>File:bbb24 test-moodle.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=File:bbb24_test-moodle.png&amp;diff=142904"/>
		<updated>2022-01-31T19:42:55Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BigBlueButton 2.4 User Interface available through the test-moodle server&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128740</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128740"/>
		<updated>2017-09-01T20:58:31Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Why won&amp;#039;t these plugins work with all browsers? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox plugin&lt;br /&gt;
|type = Editors&lt;br /&gt;
|entry = https://moodle.org/plugins/?q=recordrtc&lt;br /&gt;
|maintainer = [[User:Jesus Federico|Jesus Federico]]&lt;br /&gt;
|float = right&lt;br /&gt;
}}&lt;br /&gt;
==What is RecordRTC?==&lt;br /&gt;
&lt;br /&gt;
RecordRTC is a set of plugins for the [https://moodle.org/plugins/atto_recordrtc Atto editor] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE editor], enabling users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How do I get it?==&lt;br /&gt;
*Administrators whose Moodle sites allow plugins to be installed directly can install RecordRTC by clicking the Install Plugins link from the Plugins area of Site administration and then searching for the [[https://moodle.org/plugins/atto_recordrtc  Atto RecordRTC plugin] or [https://moodle.org/plugins/tinymce_recordrtc  TinyMCE RecordRTC plugin] as appropriate.&lt;br /&gt;
*Administrators who are not able to install plugins directly can download the plugin from the Moodle Plugins directory and upload it to the server.&lt;br /&gt;
*The plugins are also available on Github: [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE] Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]] See the FAQ below for set up with Ubuntu.&lt;br /&gt;
&lt;br /&gt;
=== What are the admin settings? ===&lt;br /&gt;
The plugins will work with the defaults, but you can change them from theText editors pages (Atto or TinyMCE) from Plugins in Site administration.&lt;br /&gt;
&lt;br /&gt;
Administrators can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
==How does it work?==&lt;br /&gt;
*The Atto or TinyMCE editors will display one or both icons for audio and/or video, depending on the administrator&#039;s setting.&lt;br /&gt;
&lt;br /&gt;
[[File:RecordAtto.png]]&lt;br /&gt;
*Click the icon for audio or video recording. You&#039;ll see a button &#039;Start recording&#039;. Click it and speak.&lt;br /&gt;
[[File:attachasannotation.png]]&lt;br /&gt;
*When you have finished, click to stop the recording. It will ask you to name it and attach the recording as an annotation.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
&lt;br /&gt;
There are two settings that establish the maximum file size that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The controls for navigating the files do not work properly in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why won&#039;t these plugins work with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
MediaStream Recording API, sometimes simply referred to as the Media Recording API or the MediaRecorder API, is closely affiliated with the Media Capture and Streams API and the WebRTC API. The MediaStream Recording API makes it easy to record audio and/or video streams. When used with navigator.mediaDevices.getUserMedia(), it provides an easy way to record from the user&#039;s input devices and instantly use the result in web apps. Both audio and video may be recorded, separately or together. [[https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder MediaRecorder Documentation]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of diverse WebRTC technologies, they can only be used in browsers that have implemented both [[https://www.w3.org/TR/webrtc/ WebRTC 1.0]] and [[https://www.w3.org/TR/mediastream-recording/ MediaRecorder API]]. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
Edge has implemented WebRTC 1.0 in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it does not include MediaRecorder API, so implementing the plugins for this browser requires some customisation to the libraries and the use of an external server.&lt;br /&gt;
&lt;br /&gt;
Safari 11 for iOS will support WebRTC 1.0 [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but same as edge, the implementation of MediaRecorder API has not been announced.&lt;br /&gt;
&lt;br /&gt;
As this covers only about the 60% of the browsers, there are plans for adding support to these two browsers by making use of Media Streaming as in version 2.0 of these plugins.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed in the plugin configuration. Keep in mind that as the file size will increase, the settings in php should also be edited.&lt;br /&gt;
Also, because the size can be too much for the browser itself, we recommend not going to large.&lt;br /&gt;
The only solution for giving a really large limit to the file size is to include a server component for doing a progressive upload and trans coding. But the first version of these plugins do not cover that possibility.&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also see [[Amazon S3 repository]] for information on storing files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do I set it up with Ubuntu?===&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
==Notes for system administrators ==&lt;br /&gt;
=== Increasing max file size ===&lt;br /&gt;
The default maximum size of uploads in PHP is very small, it is recommended to set the upload_max_filesize setting to 40M and the post_max_size setting to 50M for a time limit of 2:00 to avoid getting an alert while recording.&lt;br /&gt;
&lt;br /&gt;
The file size of recorded video for Firefox will likely be twice that of other browsers, even with the same settings; this is expected as it uses a different writing library for recording video. The audio file size should be similar across all browsers.&lt;br /&gt;
&lt;br /&gt;
== Notes for developers ==&lt;br /&gt;
=== Updating libraries ===&lt;br /&gt;
These plugins makes use of two libraries. Adapter.js which makes all the WebRTC magic and Bowser.js that helps to identify the browser and OS where the application is running.&lt;br /&gt;
&lt;br /&gt;
If trying to update Bowser or Adapter.js dependencies for the project, it is necessary to replace the named definition at the top of the file with an anonymous one, like so &lt;br /&gt;
For Bowser.js:&lt;br /&gt;
&lt;br /&gt;
Old code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
!function (root, name, definition) {&lt;br /&gt;
if (typeof module != &#039;undefined&#039; &amp;amp;&amp;amp; module.exports) module.exports = definition()&lt;br /&gt;
else if (typeof define == &#039;function&#039; &amp;amp;&amp;amp; define.amd) define(name, definition)&lt;br /&gt;
else root[name] = definition()&lt;br /&gt;
}(this, &#039;bowser&#039;, function () {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or so for Adapter.js:&lt;br /&gt;
&lt;br /&gt;
Old code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
(function(f){if(typeof exports===&amp;quot;object&amp;quot;&amp;amp;&amp;amp;typeof module!==&amp;quot;undefined&amp;quot;){module.exports=f()}else if(typeof define===&amp;quot;function&amp;quot;&amp;amp;&amp;amp;define.amd){define([],f)}else{var g;if(typeof window!==&amp;quot;undefined&amp;quot;){g=window}else if(typeof global!==&amp;quot;undefined&amp;quot;){g=global}else if(typeof self!==&amp;quot;undefined&amp;quot;){g=self}else{g=this}g.adapter = f()}})(function(){&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio]]&lt;br /&gt;
[[Category:Video]]&lt;br /&gt;
&lt;br /&gt;
[[es:RecordRTC]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128737</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128737"/>
		<updated>2017-09-01T14:36:10Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Updating libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox plugin&lt;br /&gt;
|type = Editors&lt;br /&gt;
|entry = https://moodle.org/plugins/?q=recordrtc&lt;br /&gt;
|maintainer = [[User:Jesus Federico|Jesus Federico]]&lt;br /&gt;
|float = right&lt;br /&gt;
}}&lt;br /&gt;
==What is RecordRTC?==&lt;br /&gt;
&lt;br /&gt;
RecordRTC is a set of plugins for the [https://moodle.org/plugins/atto_recordrtc Atto editor] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE editor], enabling users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How do I get it?==&lt;br /&gt;
*Administrators whose Moodle sites allow plugins to be installed directly can install RecordRTC by clicking the Install Plugins link from the Plugins area of Site administration and then searching for the [[https://moodle.org/plugins/atto_recordrtc  Atto RecordRTC plugin] or [https://moodle.org/plugins/tinymce_recordrtc  TinyMCE RecordRTC plugin] as appropriate.&lt;br /&gt;
*Administrators who are not able to install plugins directly can download the plugin from the Moodle Plugins directory and upload it to the server.&lt;br /&gt;
*The plugins are also available on Github: [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE] Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]] See the FAQ below for set up with Ubuntu.&lt;br /&gt;
&lt;br /&gt;
=== What are the admin settings? ===&lt;br /&gt;
The plugins will work with the defaults, but you can change them from theText editors pages (Atto or TinyMCE) from Plugins in Site administration.&lt;br /&gt;
&lt;br /&gt;
Administrators can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
==How does it work?==&lt;br /&gt;
*The Atto or TinyMCE editors will display one or both icons for audio and/or video, depending on the administrator&#039;s setting.&lt;br /&gt;
&lt;br /&gt;
[[File:RecordAtto.png]]&lt;br /&gt;
*Click the icon for audio or video recording. You&#039;ll see a button &#039;Start recording&#039;. Click it and speak.&lt;br /&gt;
[[File:attachasannotation.png]]&lt;br /&gt;
*When you have finished, click to stop the recording. It will ask you to name it and attach the recording as an annotation.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
&lt;br /&gt;
There are two settings that establish the maximum file size that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The controls for navigating the files do not work properly in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why won&#039;t these plugins work with all browsers? ===&lt;br /&gt;
*WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
*As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
*There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
*There are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed in the plugin configuration. Keep in mind that as the file size will increase, the settings in php should also be edited.&lt;br /&gt;
Also, because the size can be too much for the browser itself, we recommend not going to large.&lt;br /&gt;
The only solution for giving a really large limit to the file size is to include a server component for doing a progressive upload and trans coding. But the first version of these plugins do not cover that possibility.&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also see [[Amazon S3 repository]] for information on storing files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do I set it up with Ubuntu?===&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
==Notes for system administrators ==&lt;br /&gt;
=== Increasing max file size ===&lt;br /&gt;
The default maximum size of uploads in PHP is very small, it is recommended to set the upload_max_filesize setting to 40M and the post_max_size setting to 50M for a time limit of 2:00 to avoid getting an alert while recording.&lt;br /&gt;
&lt;br /&gt;
The file size of recorded video for Firefox will likely be twice that of other browsers, even with the same settings; this is expected as it uses a different writing library for recording video. The audio file size should be similar across all browsers.&lt;br /&gt;
&lt;br /&gt;
== Notes for developers ==&lt;br /&gt;
=== Updating libraries ===&lt;br /&gt;
These plugins makes use of two libraries. Adapter.js which makes all the WebRTC magic and Bowser.js that helps to identify the browser and OS where the application is running.&lt;br /&gt;
&lt;br /&gt;
If trying to update Bowser or Adapter.js dependencies for the project, it is necessary to replace the named definition at the top of the file with an anonymous one, like so &lt;br /&gt;
For Bowser.js:&lt;br /&gt;
&lt;br /&gt;
Old code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
!function (root, name, definition) {&lt;br /&gt;
if (typeof module != &#039;undefined&#039; &amp;amp;&amp;amp; module.exports) module.exports = definition()&lt;br /&gt;
else if (typeof define == &#039;function&#039; &amp;amp;&amp;amp; define.amd) define(name, definition)&lt;br /&gt;
else root[name] = definition()&lt;br /&gt;
}(this, &#039;bowser&#039;, function () {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or so for Adapter.js:&lt;br /&gt;
&lt;br /&gt;
Old code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
(function(f){if(typeof exports===&amp;quot;object&amp;quot;&amp;amp;&amp;amp;typeof module!==&amp;quot;undefined&amp;quot;){module.exports=f()}else if(typeof define===&amp;quot;function&amp;quot;&amp;amp;&amp;amp;define.amd){define([],f)}else{var g;if(typeof window!==&amp;quot;undefined&amp;quot;){g=window}else if(typeof global!==&amp;quot;undefined&amp;quot;){g=global}else if(typeof self!==&amp;quot;undefined&amp;quot;){g=self}else{g=this}g.adapter = f()}})(function(){&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio]]&lt;br /&gt;
[[Category:Video]]&lt;br /&gt;
&lt;br /&gt;
[[es:RecordRTC]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128736</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128736"/>
		<updated>2017-09-01T14:35:42Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Updating libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox plugin&lt;br /&gt;
|type = Editors&lt;br /&gt;
|entry = https://moodle.org/plugins/?q=recordrtc&lt;br /&gt;
|maintainer = [[User:Jesus Federico|Jesus Federico]]&lt;br /&gt;
|float = right&lt;br /&gt;
}}&lt;br /&gt;
==What is RecordRTC?==&lt;br /&gt;
&lt;br /&gt;
RecordRTC is a set of plugins for the [https://moodle.org/plugins/atto_recordrtc Atto editor] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE editor], enabling users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How do I get it?==&lt;br /&gt;
*Administrators whose Moodle sites allow plugins to be installed directly can install RecordRTC by clicking the Install Plugins link from the Plugins area of Site administration and then searching for the [[https://moodle.org/plugins/atto_recordrtc  Atto RecordRTC plugin] or [https://moodle.org/plugins/tinymce_recordrtc  TinyMCE RecordRTC plugin] as appropriate.&lt;br /&gt;
*Administrators who are not able to install plugins directly can download the plugin from the Moodle Plugins directory and upload it to the server.&lt;br /&gt;
*The plugins are also available on Github: [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE] Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]] See the FAQ below for set up with Ubuntu.&lt;br /&gt;
&lt;br /&gt;
=== What are the admin settings? ===&lt;br /&gt;
The plugins will work with the defaults, but you can change them from theText editors pages (Atto or TinyMCE) from Plugins in Site administration.&lt;br /&gt;
&lt;br /&gt;
Administrators can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
==How does it work?==&lt;br /&gt;
*The Atto or TinyMCE editors will display one or both icons for audio and/or video, depending on the administrator&#039;s setting.&lt;br /&gt;
&lt;br /&gt;
[[File:RecordAtto.png]]&lt;br /&gt;
*Click the icon for audio or video recording. You&#039;ll see a button &#039;Start recording&#039;. Click it and speak.&lt;br /&gt;
[[File:attachasannotation.png]]&lt;br /&gt;
*When you have finished, click to stop the recording. It will ask you to name it and attach the recording as an annotation.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
&lt;br /&gt;
There are two settings that establish the maximum file size that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The controls for navigating the files do not work properly in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why won&#039;t these plugins work with all browsers? ===&lt;br /&gt;
*WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
*As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
*There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
*There are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed in the plugin configuration. Keep in mind that as the file size will increase, the settings in php should also be edited.&lt;br /&gt;
Also, because the size can be too much for the browser itself, we recommend not going to large.&lt;br /&gt;
The only solution for giving a really large limit to the file size is to include a server component for doing a progressive upload and trans coding. But the first version of these plugins do not cover that possibility.&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also see [[Amazon S3 repository]] for information on storing files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do I set it up with Ubuntu?===&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
==Notes for system administrators ==&lt;br /&gt;
=== Updating libraries ===&lt;br /&gt;
The default maximum size of uploads in PHP is very small, it is recommended to set the upload_max_filesize setting to 40M and the post_max_size setting to 50M for a time limit of 2:00 to avoid getting an alert while recording.&lt;br /&gt;
&lt;br /&gt;
The file size of recorded video for Firefox will likely be twice that of other browsers, even with the same settings; this is expected as it uses a different writing library for recording video. The audio file size should be similar across all browsers.&lt;br /&gt;
&lt;br /&gt;
== Notes for developers ==&lt;br /&gt;
=== Updating libraries ===&lt;br /&gt;
These plugins makes use of two libraries. Adapter.js which makes all the WebRTC magic and Bowser.js that helps to identify the browser and OS where the application is running.&lt;br /&gt;
&lt;br /&gt;
If trying to update Bowser or Adapter.js dependencies for the project, it is necessary to replace the named definition at the top of the file with an anonymous one, like so &lt;br /&gt;
For Bowser.js:&lt;br /&gt;
&lt;br /&gt;
Old code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
!function (root, name, definition) {&lt;br /&gt;
if (typeof module != &#039;undefined&#039; &amp;amp;&amp;amp; module.exports) module.exports = definition()&lt;br /&gt;
else if (typeof define == &#039;function&#039; &amp;amp;&amp;amp; define.amd) define(name, definition)&lt;br /&gt;
else root[name] = definition()&lt;br /&gt;
}(this, &#039;bowser&#039;, function () {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or so for Adapter.js:&lt;br /&gt;
&lt;br /&gt;
Old code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
(function(f){if(typeof exports===&amp;quot;object&amp;quot;&amp;amp;&amp;amp;typeof module!==&amp;quot;undefined&amp;quot;){module.exports=f()}else if(typeof define===&amp;quot;function&amp;quot;&amp;amp;&amp;amp;define.amd){define([],f)}else{var g;if(typeof window!==&amp;quot;undefined&amp;quot;){g=window}else if(typeof global!==&amp;quot;undefined&amp;quot;){g=global}else if(typeof self!==&amp;quot;undefined&amp;quot;){g=self}else{g=this}g.adapter = f()}})(function(){&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Audio]]&lt;br /&gt;
[[Category:Video]]&lt;br /&gt;
&lt;br /&gt;
[[es:RecordRTC]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128656</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128656"/>
		<updated>2017-08-22T19:38:42Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Updating libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The plugin can be configured during the initial install, and later by navigating to &amp;lt;code&amp;gt;Site administration &amp;gt; Plugins &amp;gt; Text editors &amp;gt; Atto HTML editor &amp;gt; RecordRTC&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Administrator can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
&lt;br /&gt;
There are two settings that establish the maximum file size that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The controls for navigating the files do not work properly in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
&lt;br /&gt;
Also, by Aug 2017 there are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
For the moment we can say for sure that the initial version works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed in the plugin configuration. Keep in mind that as the file size will increase, the settings in php should also be edited.&lt;br /&gt;
Also, because the size can be too much for the browser itself, we recommend not going to large.&lt;br /&gt;
The only solution for giving a really large limit to the file size is to include a server component for doing a progressive upload and trans coding. But the first version of these plugins do not cover that possibility.&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
== System Administrators ==&lt;br /&gt;
=== Updating libraries ===&lt;br /&gt;
The default maximum size of uploads in PHP is very small, it is recommended to set the upload_max_filesize setting to 40M and the post_max_size setting to 50M for a time limit of 2:00 to avoid getting an alert while recording.&lt;br /&gt;
&lt;br /&gt;
The filesize of recorded video for Firefox will likely be twice that of other browsers, even with the same settings; this is expected as it uses a different writing library for recording video. The audio filesize should be similar across all browsers&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
=== Updating libraries ===&lt;br /&gt;
These plugins makes use of two libraries. Adapter.js which makes all the WebRTC magic and Bowser.js that helps to identify the browser and OS where the application is running.&lt;br /&gt;
&lt;br /&gt;
If trying to update Bowser or Adapter.js dependencies for the project, it is necessary to replace the named definition at the top of the file with an anonymous one, like so &lt;br /&gt;
For Bowser.js:&lt;br /&gt;
&lt;br /&gt;
Old code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
!function (root, name, definition) {&lt;br /&gt;
if (typeof module != &#039;undefined&#039; &amp;amp;&amp;amp; module.exports) module.exports = definition()&lt;br /&gt;
else if (typeof define == &#039;function&#039; &amp;amp;&amp;amp; define.amd) define(name, definition)&lt;br /&gt;
else root[name] = definition()&lt;br /&gt;
}(this, &#039;bowser&#039;, function () {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or so for Adapter.js:&lt;br /&gt;
&lt;br /&gt;
Old code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
(function(f){if(typeof exports===&amp;quot;object&amp;quot;&amp;amp;&amp;amp;typeof module!==&amp;quot;undefined&amp;quot;){module.exports=f()}else if(typeof define===&amp;quot;function&amp;quot;&amp;amp;&amp;amp;define.amd){define([],f)}else{var g;if(typeof window!==&amp;quot;undefined&amp;quot;){g=window}else if(typeof global!==&amp;quot;undefined&amp;quot;){g=global}else if(typeof self!==&amp;quot;undefined&amp;quot;){g=self}else{g=this}g.adapter = f()}})(function(){&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128655</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128655"/>
		<updated>2017-08-22T19:37:57Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The plugin can be configured during the initial install, and later by navigating to &amp;lt;code&amp;gt;Site administration &amp;gt; Plugins &amp;gt; Text editors &amp;gt; Atto HTML editor &amp;gt; RecordRTC&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Administrator can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
&lt;br /&gt;
There are two settings that establish the maximum file size that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The controls for navigating the files do not work properly in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
&lt;br /&gt;
Also, by Aug 2017 there are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
For the moment we can say for sure that the initial version works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed in the plugin configuration. Keep in mind that as the file size will increase, the settings in php should also be edited.&lt;br /&gt;
Also, because the size can be too much for the browser itself, we recommend not going to large.&lt;br /&gt;
The only solution for giving a really large limit to the file size is to include a server component for doing a progressive upload and trans coding. But the first version of these plugins do not cover that possibility.&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
== System Administrators ==&lt;br /&gt;
=== Updating libraries ===&lt;br /&gt;
The default maximum size of uploads in PHP is very small, it is recommended to set the upload_max_filesize setting to 40M and the post_max_size setting to 50M for a time limit of 2:00 to avoid getting an alert while recording.&lt;br /&gt;
&lt;br /&gt;
The filesize of recorded video for Firefox will likely be twice that of other browsers, even with the same settings; this is expected as it uses a different writing library for recording video. The audio filesize should be similar across all browsers&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
=== Updating libraries ===&lt;br /&gt;
These plugins makes use of two libraries. Adapter.js which makes all the WebRTC magic and Bowser.js that helps to identify the browser and OS where the application is running.&lt;br /&gt;
&lt;br /&gt;
If trying to update Bowser or Adapter.js dependencies for the project, it is necessary to replace the named definition at the top of the file with an anonymous one, like so (for Bowser):&lt;br /&gt;
&lt;br /&gt;
Old code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
!function (root, name, definition) {&lt;br /&gt;
if (typeof module != &#039;undefined&#039; &amp;amp;&amp;amp; module.exports) module.exports = definition()&lt;br /&gt;
else if (typeof define == &#039;function&#039; &amp;amp;&amp;amp; define.amd) define(name, definition)&lt;br /&gt;
else root[name] = definition()&lt;br /&gt;
}(this, &#039;bowser&#039;, function () {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or so (for Adapter.js):&lt;br /&gt;
&lt;br /&gt;
Old code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
(function(f){if(typeof exports===&amp;quot;object&amp;quot;&amp;amp;&amp;amp;typeof module!==&amp;quot;undefined&amp;quot;){module.exports=f()}else if(typeof define===&amp;quot;function&amp;quot;&amp;amp;&amp;amp;define.amd){define([],f)}else{var g;if(typeof window!==&amp;quot;undefined&amp;quot;){g=window}else if(typeof global!==&amp;quot;undefined&amp;quot;){g=global}else if(typeof self!==&amp;quot;undefined&amp;quot;){g=self}else{g=this}g.adapter = f()}})(function(){&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
New code&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
define([], function() {&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128654</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128654"/>
		<updated>2017-08-22T19:35:43Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Developers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The plugin can be configured during the initial install, and later by navigating to &amp;lt;code&amp;gt;Site administration &amp;gt; Plugins &amp;gt; Text editors &amp;gt; Atto HTML editor &amp;gt; RecordRTC&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Administrator can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
&lt;br /&gt;
There are two settings that establish the maximum file size that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The controls for navigating the files do not work properly in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
&lt;br /&gt;
Also, by Aug 2017 there are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
For the moment we can say for sure that the initial version works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed in the plugin configuration. Keep in mind that as the file size will increase, the settings in php should also be edited.&lt;br /&gt;
Also, because the size can be too much for the browser itself, we recommend not going to large.&lt;br /&gt;
The only solution for giving a really large limit to the file size is to include a server component for doing a progressive upload and trans coding. But the first version of these plugins do not cover that possibility.&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;br /&gt;
=== Updating libraries ===&lt;br /&gt;
These plugins makes use of two libraries. Adapter.js which makes all the WebRTC magic and Bowser.js that helps to identify the browser and OS where the application is running.&lt;br /&gt;
&lt;br /&gt;
If trying to update Bowser or Adapter.js dependencies for the project, it is necessary to replace the named definition at the top of the file with an anonymous one, like so (for Bowser):&lt;br /&gt;
&lt;br /&gt;
Old code:&lt;br /&gt;
&lt;br /&gt;
!function (root, name, definition) {&lt;br /&gt;
if (typeof module != &#039;undefined&#039; &amp;amp;&amp;amp; module.exports) module.exports = definition()&lt;br /&gt;
else if (typeof define == &#039;function&#039; &amp;amp;&amp;amp; define.amd) define(name, definition)&lt;br /&gt;
else root[name] = definition()&lt;br /&gt;
}(this, &#039;bowser&#039;, function () {&lt;br /&gt;
New code:&lt;br /&gt;
&lt;br /&gt;
define([], function() {&lt;br /&gt;
Or so (for Adapter.js):&lt;br /&gt;
&lt;br /&gt;
Old code&lt;br /&gt;
&lt;br /&gt;
(function(f){if(typeof exports===&amp;quot;object&amp;quot;&amp;amp;&amp;amp;typeof module!==&amp;quot;undefined&amp;quot;){module.exports=f()}else if(typeof define===&amp;quot;function&amp;quot;&amp;amp;&amp;amp;define.amd){define([],f)}else{var g;if(typeof window!==&amp;quot;undefined&amp;quot;){g=window}else if(typeof global!==&amp;quot;undefined&amp;quot;){g=global}else if(typeof self!==&amp;quot;undefined&amp;quot;){g=self}else{g=this}g.adapter = f()}})(function(){&lt;br /&gt;
New code&lt;br /&gt;
&lt;br /&gt;
define([], function() {&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128653</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128653"/>
		<updated>2017-08-22T19:20:52Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Can I have recordings with a duration of more than 2 minutes? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The plugin can be configured during the initial install, and later by navigating to &amp;lt;code&amp;gt;Site administration &amp;gt; Plugins &amp;gt; Text editors &amp;gt; Atto HTML editor &amp;gt; RecordRTC&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Administrator can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
&lt;br /&gt;
There are two settings that establish the maximum file size that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The controls for navigating the files do not work properly in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
&lt;br /&gt;
Also, by Aug 2017 there are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
For the moment we can say for sure that the initial version works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed in the plugin configuration. Keep in mind that as the file size will increase, the settings in php should also be edited.&lt;br /&gt;
Also, because the size can be too much for the browser itself, we recommend not going to large.&lt;br /&gt;
The only solution for giving a really large limit to the file size is to include a server component for doing a progressive upload and trans coding. But the first version of these plugins do not cover that possibility.&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128652</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128652"/>
		<updated>2017-08-22T19:17:36Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Known Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The plugin can be configured during the initial install, and later by navigating to &amp;lt;code&amp;gt;Site administration &amp;gt; Plugins &amp;gt; Text editors &amp;gt; Atto HTML editor &amp;gt; RecordRTC&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Administrator can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
&lt;br /&gt;
There are two settings that establish the maximum file size that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The controls for navigating the files do not work properly in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
&lt;br /&gt;
Also, by Aug 2017 there are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
For the moment we can say for sure that the initial version works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed in the plugin configuration. Also keep in mind that as the file size will increase, the settings in php should also be&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128651</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128651"/>
		<updated>2017-08-22T19:16:08Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The plugin can be configured during the initial install, and later by navigating to &amp;lt;code&amp;gt;Site administration &amp;gt; Plugins &amp;gt; Text editors &amp;gt; Atto HTML editor &amp;gt; RecordRTC&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Administrator can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
&lt;br /&gt;
There are two settings that establish the maximum file size that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The media files are not streamed, there is no navigation in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
&lt;br /&gt;
Also, by Aug 2017 there are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
For the moment we can say for sure that the initial version works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed in the plugin configuration. Also keep in mind that as the file size will increase, the settings in php should also be&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=File:recordingrtc_error_limit_reached.png&amp;diff=128650</id>
		<title>File:recordingrtc error limit reached.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=File:recordingrtc_error_limit_reached.png&amp;diff=128650"/>
		<updated>2017-08-22T18:58:49Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: RecordRTC Error message indicating that the maximum size limit for recording was reached.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC Error message indicating that the maximum size limit for recording was reached.&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128649</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128649"/>
		<updated>2017-08-22T18:57:31Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
The plugin can be configured during the initial install, and later by navigating to &amp;lt;code&amp;gt;Site administration &amp;gt; Plugins &amp;gt; Text editors &amp;gt; Atto HTML editor &amp;gt; RecordRTC&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Administrator can:&lt;br /&gt;
&lt;br /&gt;
* Allow the users to record only audio, only video, or both by changing the buttons that appear in the editor toolbar.&lt;br /&gt;
* Change the target bitrate of recorded audio.&lt;br /&gt;
* Change the target bitrate of recorded video&lt;br /&gt;
* Set the recording time limit, to control maximum recording size&lt;br /&gt;
&lt;br /&gt;
The default bitrate for recorded audio (128000) should lead to generate files of about 15kB per minute and the default bitrate for recorded video (2500000) to generate files of 20MB per minute. The lower the bitrate the smaller the file size.&lt;br /&gt;
&lt;br /&gt;
The recording time limit is set to 120 seconds by default so the maximum size expected on video files should be of about 40MB&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recording stops after a few seconds ===&lt;br /&gt;
[[File:recordingrtc_error_limit_reached.png]]&lt;br /&gt;
There are two settings that define the maximum files that can be uploaded to Moodle. These are defined in php.ini for the web server.&lt;br /&gt;
 post_max_size = 8M&lt;br /&gt;
 upload_max_filesize = 2M&lt;br /&gt;
Just edit the file and increase their values to something between 40M-50M for 2 minutes video recordings. &lt;br /&gt;
In Ubuntu&lt;br /&gt;
 vi /etc/php/7.0/apache2/php.ini&lt;br /&gt;
&lt;br /&gt;
===  ===&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
* The media files don&#039;t show duration&lt;br /&gt;
* The media files are not streamed, there is no navigation in the player.&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
&lt;br /&gt;
Also, by Aug 2017 there are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
For the moment we can say for sure that the initial version works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
Yes. That can be changed &lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128648</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128648"/>
		<updated>2017-08-22T18:05:02Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The initial version (1.0) works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing ===&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
&lt;br /&gt;
Also, by Aug 2017 there are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
For the moment we can say for sure that the initial version works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128647</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128647"/>
		<updated>2017-08-22T18:03:34Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Why these plugins can not be used in all browsers? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing ===&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used with all browsers? ===&lt;br /&gt;
WebRTC (&amp;quot;Web Real-Time Communication&amp;quot;) is a collection of communications protocols and application programming interfaces that enable real-time communication over peer-to-peer connections. Implemented in browsers it enables applications such as video conferencing, file transfer, chat, or desktop sharing without the need of either internal or external plugins.[[https://en.wikipedia.org/wiki/WebRTC Wikipedia]]&lt;br /&gt;
&lt;br /&gt;
As these plugins make use of WebRTC technologies, they can only be used in browsers that have a full implementation of WebRTC. This is the case for [https://www.google.com/chrome/ Chrome], [https://www.mozilla.org/en-US/firefox/new/ Firefox] and [http://www.opera.com/ Opera]. [[https://webrtc.org/  See `Supported browsers and platforms`]] Therefore these are the only ones that the initial version of these plugins (1.0) support.&lt;br /&gt;
&lt;br /&gt;
There is an implementation of WebRTC in [https://www.microsoft.com/en-us/windows/microsoft-edge Microsoft Edge] but it is not fully compatible with the standard, so implementing the plugins for this browser requires some customisation to the libraries.&lt;br /&gt;
&lt;br /&gt;
Also, by Aug 2017 there are plans for implementing WebRTC on Safari for iOS [[https://webrtc.ventures/2017/06/webrtc-support-in-safari-11/ See]] but it is not clear how this implementation is going to be.&lt;br /&gt;
&lt;br /&gt;
For the moment we can say for sure that the initial version works fine with Chrome, Firefox and Opera on Desktop computers running Windows, Linux, Mac OS and Chrome OS.&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128646</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128646"/>
		<updated>2017-08-22T17:33:38Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Manually (requires access to the server console and to have git installed) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually ===&lt;br /&gt;
This requires access to the server console and to have git installed.&lt;br /&gt;
&lt;br /&gt;
==== Steps (for Ubuntu only) ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing ===&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128645</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128645"/>
		<updated>2017-08-22T16:04:41Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc Here for Atto] and [https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases Here for Atto] and [https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases here for TinyMCE]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing ===&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128644</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128644"/>
		<updated>2017-08-22T15:51:25Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Where are the recordings stored? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [[https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc for Atto]] and [[https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [[https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases for Atto]] and [[https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]. It is an old article but it gives a good idea on what is underneath. Also [https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128643</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128643"/>
		<updated>2017-08-22T15:49:57Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [[https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc for Atto]] and [[https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [[https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases for Atto]] and [[https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see [[https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk File storage on disk]]. It is an old article but it gives a good idea on what is underneath. Also [[https://docs.moodle.org/502/en/Amazon_S3_repository Amazon S3 repository]] for learning how to store files externally in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128642</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128642"/>
		<updated>2017-08-22T15:47:23Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* F.A.Q. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [[https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc for Atto]] and [[https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [[https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases for Atto]] and [[https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle. So, it depends of the file system your Moodle server has configured.&lt;br /&gt;
When using the default configuration, all files are stored in &amp;lt;code&amp;gt;/moodlepath/moodledata/filedir/xx/yy/&amp;lt;/code&amp;gt; where xx and yy are the path defined by the API when the file was uploaded.&lt;br /&gt;
If you are a developer interested in learning more details about this you can see https://docs.moodle.org/dev/File_API_internals#File_storage_on_disk and https://docs.moodle.org/502/en/Amazon_S3_repository for storing the files in Amazon S3 buckets.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128641</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128641"/>
		<updated>2017-08-22T15:37:41Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [[https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc for Atto]] and [[https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [[https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases for Atto]] and [[https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
&lt;br /&gt;
=== Completing installation ===&lt;br /&gt;
A screen should appear asking to install the plugin. After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128640</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128640"/>
		<updated>2017-08-22T15:36:17Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [[https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc for Atto]] and [[https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [[https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases for Atto]] and [[https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
** For Atto execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
** For TinyMCE execute &amp;lt;code&amp;gt;sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
* A screen should appear asking the install the plugin, similar to above&lt;br /&gt;
&lt;br /&gt;
After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128639</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128639"/>
		<updated>2017-08-22T15:30:28Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [[https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc for Atto]] and [[https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [[https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases for Atto]] and [[https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to &lt;br /&gt;
 [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the button&lt;br /&gt;
 [Install plugin from ZIP file]&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
* Execute `sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc` for Atto or `sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc` for TinyMCE&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
* A screen should appear asking the install the plugin, similar to above&lt;br /&gt;
&lt;br /&gt;
After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128638</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128638"/>
		<updated>2017-08-22T15:27:56Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Using a zip file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [[https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc for Atto]] and [[https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the button [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [[https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases for Atto]] and [[https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file by using the link [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the [Install plugin from ZIP file] button&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
* Execute `sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc` for Atto or `sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc` for TinyMCE&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
* A screen should appear asking the install the plugin, similar to above&lt;br /&gt;
&lt;br /&gt;
After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128636</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128636"/>
		<updated>2017-08-22T15:25:25Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [[https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc for Atto]] and [[https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [[https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases for Atto]] and [[https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases for TinyMCE]]&lt;br /&gt;
&lt;br /&gt;
Look for the latest release and download zip file [[File:recordrtc_git_download.png]]&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the [Install plugin from ZIP file] button&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
* Execute `sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc` for Atto or `sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc` for TinyMCE&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
* A screen should appear asking the install the plugin, similar to above&lt;br /&gt;
&lt;br /&gt;
After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=File:recordrtc_git_download.png&amp;diff=128635</id>
		<title>File:recordrtc git download.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=File:recordrtc_git_download.png&amp;diff=128635"/>
		<updated>2017-08-22T15:24:53Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: Link for downloading zipped source code from GitHub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Link for downloading zipped source code from GitHub&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=File:recordrtc_moodle_download.png&amp;diff=128634</id>
		<title>File:recordrtc moodle download.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=File:recordrtc_moodle_download.png&amp;diff=128634"/>
		<updated>2017-08-22T15:23:53Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: Button for downloading plugins in Moodle plugin directory&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Button for downloading plugins in Moodle plugin directory&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128633</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128633"/>
		<updated>2017-08-22T15:16:15Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
=== Through Moodle plugins directory ===&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
* Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
* Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
* Click on [Install now] and follow the steps.&lt;br /&gt;
&lt;br /&gt;
=== Using a zip file ===&lt;br /&gt;
==== From the Moodle plugin directory ====&lt;br /&gt;
Go to the list of releases available in the Moodle plugin directory. [[https://moodle.org/plugins/pluginversions.php?plugin=atto_recordrtc for Atto]] and [[https://moodle.org/plugins/pluginversions.php?plugin=tinymce_recordrtc for TinyMCE]]&lt;br /&gt;
Look for the latest release and download zip file [[File:recordrtc_moodle_download.png]]&lt;br /&gt;
==== From the GitHub repository ====&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository. [[https://github.com/blindsidenetworks/moodle-atto_recordrtc/releases for Atto]] and [[https://github.com/blindsidenetworks/moodle-tinymce_recordrtc/releases for TinyMCE]]&lt;br /&gt;
Look for the latest release and download zip file [[File:recordrtc_git_download.png]]&lt;br /&gt;
* Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
* Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
* Click on the [Install plugin from ZIP file] button&lt;br /&gt;
&lt;br /&gt;
=== Manually (requires access to the server console and to have git installed) ===&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
* Navigate to `moodle_root_path/lib/editor/atto/plugins` or `moodle_root_path/lib/editor/tinymce/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
* Execute `sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc` for Atto or `sudo git clone https://github.com/blindsidenetworks/moodle-tinymce_recordrtc.git recordrtc` for TinyMCE&lt;br /&gt;
* Log into a Moodle account with administration capabilities&lt;br /&gt;
* A screen should appear asking the install the plugin, similar to above&lt;br /&gt;
&lt;br /&gt;
After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128632</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128632"/>
		<updated>2017-08-22T15:04:07Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar. [[File:recordrtc_buttons.png]]&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
1. Through Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
Click on [Install now] and follow the steps.&lt;br /&gt;
2. Installing via zip file:&lt;br /&gt;
&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository&lt;br /&gt;
Look for the latest release and download zip file&lt;br /&gt;
Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
Click on the [Install plugin from ZIP file] button&lt;br /&gt;
3. Installing manually (requires access to the server console and to have git installed):&lt;br /&gt;
&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
Navigate to `moodle_root_path/lib/editor/atto/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
Execute `sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc`&lt;br /&gt;
Log into a Moodle account with administration capabilities&lt;br /&gt;
A screen should appear asking the install the plugin, similar to above&lt;br /&gt;
After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=File:recordrtc_buttons.png&amp;diff=128631</id>
		<title>File:recordrtc buttons.png</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=File:recordrtc_buttons.png&amp;diff=128631"/>
		<updated>2017-08-22T15:02:11Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: Buttons used by RecordRTC plugin in Atto and TinyMCE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Buttons used by RecordRTC plugin in Atto and TinyMCE&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128630</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128630"/>
		<updated>2017-08-22T15:00:38Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar [[File: recordrtc_buttons.png]].&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
There are several ways to install a plugin in Moodle:&lt;br /&gt;
&lt;br /&gt;
1. Through Moodle plugins directory.&lt;br /&gt;
&lt;br /&gt;
The easiest and more reliable way to install a plugin in the newer versions of Moodle is through the Moodle plugins directory.&lt;br /&gt;
Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
Click on [Install plugins from the Moodle plugins directory]&lt;br /&gt;
Search for RecordRTC and choose the one you are looking for. There is an atto_recordrtc and a tinymce_recordrtc plugin.&lt;br /&gt;
Click on [Install now] and look up for your Moodle site in the list.&lt;br /&gt;
Click on [Install now] and follow the steps.&lt;br /&gt;
2. Installing via zip file:&lt;br /&gt;
&lt;br /&gt;
Go to the list of releases available in the GitHub project&#039;s repository&lt;br /&gt;
Look for the latest release and download zip file&lt;br /&gt;
Logged in as administrator into your Moodle server, go to [Site administration -&amp;gt; Plugins -&amp;gt; Install plugins]&lt;br /&gt;
Under the &#039;Install plugin from ZIP file&#039; section, either select the above archive, or drag and drop it into the specified box on the page&lt;br /&gt;
Click on the [Install plugin from ZIP file] button&lt;br /&gt;
3. Installing manually (requires access to the server console and to have git installed):&lt;br /&gt;
&lt;br /&gt;
These steps are for Ubuntu only&lt;br /&gt;
&lt;br /&gt;
Navigate to `moodle_root_path/lib/editor/atto/plugins`, where `moodle_root_path` is the location where Moodle is installed (ex.: `/var/www/html/moodle`)&lt;br /&gt;
Execute `sudo git clone https://github.com/blindsidenetworks/moodle-atto_recordrtc.git recordrtc`&lt;br /&gt;
Log into a Moodle account with administration capabilities&lt;br /&gt;
A screen should appear asking the install the plugin, similar to above&lt;br /&gt;
After the installation starts, just follow the steps. The plugin will work with the defaults, but you may want to go back and change them depending of your requirements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
=== Recordings are failing &lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== Why these plugins can not be used in all browsers? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128629</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128629"/>
		<updated>2017-08-22T14:42:37Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar.&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128628</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128628"/>
		<updated>2017-08-22T14:37:56Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox plugin&lt;br /&gt;
|type = Editor module (Atto and TinyMCE)&lt;br /&gt;
|set =&lt;br /&gt;
|entry = https://moodle.org/plugins/atto_recordrtc&lt;br /&gt;
|entry = https://moodle.org/plugins/tinymce_recordrtc&lt;br /&gt;
|maintainer = [[User:Jesus Federico|Jesus Federico]]&lt;br /&gt;
|float = right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar.&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128627</id>
		<title>RecordRTC</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=RecordRTC&amp;diff=128627"/>
		<updated>2017-08-22T14:33:45Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: Created page with &amp;quot;{{Infobox plugin |type = Editor module (Atto and TinyMCE) |set = |atto entry = https://moodle.org/plugins/atto_recordrtc |tinymce entry = https://moodle.org/plugins/tinymce_re...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox plugin&lt;br /&gt;
|type = Editor module (Atto and TinyMCE)&lt;br /&gt;
|set =&lt;br /&gt;
|atto entry = https://moodle.org/plugins/atto_recordrtc&lt;br /&gt;
|tinymce entry = https://moodle.org/plugins/tinymce_recordrtc&lt;br /&gt;
|maintainer = [[User:Jesus Federico|Jesus Federico]]&lt;br /&gt;
|float = right&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
RecordRTC is a set of plugins for Moodle editors ([https://moodle.org/plugins/atto_recordrtc Atto] and [https://moodle.org/plugins/tinymce_recordrtc TinyMCE]) that enable users to add audio and video annotations to text, anywhere a text editor is present. This plugin adds buttons for recording audio or video (with audio) to the editor&#039;s toolbar.&lt;br /&gt;
&lt;br /&gt;
Using [https://webrtc.org/ WebRTC] technologies, all recording is done instantly in the browser. After recording, users can embed the annotation directly into the text they are currently editing. The recording will appear as an audio or video player in the published writing.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
== F.A.Q. ==&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
=== Can I have recordings with a duration of more than 2 minutes? ===&lt;br /&gt;
&lt;br /&gt;
=== Where are the recordings stored? ===&lt;br /&gt;
&lt;br /&gt;
Storing the RecordRTC recordings is not different than storing any other media file that is uploaded to Moodle.&lt;br /&gt;
&lt;br /&gt;
=== How do we maintain the recordings? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Developers ==&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Step-by-step_Installation_Guide_for_Ubuntu&amp;diff=126607</id>
		<title>Step-by-step Installation Guide for Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Step-by-step_Installation_Guide_for_Ubuntu&amp;diff=126607"/>
		<updated>2017-01-12T16:07:28Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: /* Step 4: Download Moodle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
{{Note|This document is about installing Moodle 3.1 in an Ubuntu 16.04 server with PHP 7.0. The Moodle 3.0 version of this document covers Moodle 3.0 with Ubuntu 14.04 and PHP 5.}}&lt;br /&gt;
&lt;br /&gt;
== Step 1: Install Ubuntu 16.04 LTS==&lt;br /&gt;
&lt;br /&gt;
===Why we prefer Ubuntu server over Ubuntu desktop===&lt;br /&gt;
* Most IT professionals prefer to use a Command Line Interface (CLI) server, because it is safer and less prone to hacking.&lt;br /&gt;
* Amateur users might find it easier to use a graphical (desktop) interface.&lt;br /&gt;
* If you will only be using your Moodle server for local, experimental purposes, you might prefer to install the desktop (64 bits preferred) version of Ubuntu.&lt;br /&gt;
* If you install a CLI only server and later regret it, you can easily add a graphical desktop:&lt;br /&gt;
** Even though it is not recommended by most experts, you could install a Graphical User Interface (desktop) by issuing the command &#039;sudo tasksel&#039; and choosing (with the Space Bar) to [https://siliconmechanics.zendesk.com/hc/en-us/articles/206241896-Installing-a-GUI-on-Ubuntu-Server-15-04 install &#039;Ubuntu desktop&#039;]. &lt;br /&gt;
&lt;br /&gt;
===Why we prefer (or don&#039;t prefer) Ubuntu 16.04 over Ubuntu 14.04===&lt;br /&gt;
* Both packages are LTS (Long Term Service) releases.&lt;br /&gt;
* Ubuntu Server 16.04LTS has some differences from 14.04LTS, mainly [https://docs.moodle.org/dev/Moodle_and_PHP7 PHP 7.0]. &lt;br /&gt;
* Moodle 3.01 onwards can use [https://docs.moodle.org/dev/Moodle_and_PHP7 PHP 7.0]&lt;br /&gt;
* This document has been updated to reflect those changes.&lt;br /&gt;
* But beware that if you are using external authentication or enrollment plug-ins, please note that at the moment of Moodle 3.0.1 release (December 2015) neither MSSQL nor SQLSRV are available under php7. So, [https://docs.moodle.org/dev/Moodle_and_PHP7#Can_I_use_PHP7_yet.3F anybody using SQL*Server as primary database or remote auth/enrol plugin  should not move to PHP 7] at all ! Also, depending of your configuration, some extensions (memcached [https://docs.moodle.org/dev/Moodle_and_PHP7#Manually_installing_Memcached can be installed], redis, mongodb, xmlrpc...) maybe missing or work in progress for your distribution, triple check the exact availability for your OS.&lt;br /&gt;
&lt;br /&gt;
===Procedure===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Server Edition amd64 preferred&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;http://www.ubuntu.com/download&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ubuntu Server 16.04LTS amd64 has all the required packages.&lt;br /&gt;
&lt;br /&gt;
*Ubuntu Server 16.04LTS has some minor differences from 14.04LTS, mainly PHP 7.0. This document has been updated to reflect those changes.&lt;br /&gt;
&lt;br /&gt;
*You can use either VI (lightweight editor) or VIM (heavyweight editor), however, if you wish to use VIM you will need to install it&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install vim&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*VI or VIM Commands&amp;lt;br /&amp;gt;&lt;br /&gt;
To edit a file press &amp;quot;Insert&amp;quot; Key&amp;lt;br /&amp;gt;&lt;br /&gt;
To finish editing press &amp;quot;Esc&amp;quot; Key&amp;lt;br /&amp;gt;&lt;br /&gt;
To write the file press &amp;quot;:w&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
To Exit the editor press &amp;quot;:q&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can also write and quit &amp;quot;:wq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*In Ubuntu, the standard user, the account you created during the install, does not have rights to install/write to many of the directories. In the below tutorial we will be using the term &amp;quot;sudo&amp;quot; which stands for &amp;quot;super user do&amp;quot; before most of the commands.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Install Apache/MySQL/PHP ==&lt;br /&gt;
{{Note| Moodle 3.0.1 [https://docs.moodle.org/dev/Moodle_3.0.1_release_notes introduced support for PHP 7.0 and we will be using PHP 7.0 in this tutorial]}}&lt;br /&gt;
Open up Terminal and install the following;&lt;br /&gt;
* :22 in the Video&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2 mysql-client mysql-server php7.0 libapache2-mod-php7.0&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;It will prompt you to set the root password for mysql - please, please my dear friends, WRITE IT DOWN and spare yourself some grief, you will need it in step 6.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note| Even though it is not recommended by most experts, you could install a Graphical User Interface (desktop) by issuing the command &#039;sudo tasksel&#039; and choosing (with the Space Bar) to [https://siliconmechanics.zendesk.com/hc/en-us/articles/206241896-Installing-a-GUI-on-Ubuntu-Server-15-04 install &#039;Ubuntu desktop&#039;]}}&lt;br /&gt;
&lt;br /&gt;
== Step 3: Install Additional Software ==&lt;br /&gt;
* 1:10 in the video&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install graphviz aspell php7.0-pspell php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-xml php7.0-xmlrpc php7.0-ldap php7.0-zip php7.0-soap php7.0-mbstring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart Apache so that the modules are loaded correctly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will be using [[Git]] to install/update the Moodle Core Application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git-core&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 4: Download Moodle ==&lt;br /&gt;
* 1:55 in the video&lt;br /&gt;
Setup your local repository and download Moodle, We will use /opt for this installation.&lt;br /&gt;
&lt;br /&gt;
*[[Git]] is what is called a &amp;quot;version control system&amp;quot;. By using [[Git|git]] it will much easier down the road to update the moodle core application. Within Step 5 there is a little more detail on why we put the moodle core application code in the /opt directory. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the Moodle Code and Index&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git clone git://git.moodle.org/moodle.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change directory into the downloaded Moodle folder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd moodle&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retrieve a list of each branch available&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git branch -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell [[Git|git]] which branch to track or use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git branch --track MOODLE_32_STABLE origin/MOODLE_32_STABLE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, Check out the Moodle version specified&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git checkout MOODLE_32_STABLE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Copy local repository to /var/www/html/ ==&lt;br /&gt;
* 3:05 in the video&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp -R /opt/moodle /var/www/html/&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/moodledata&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown -R www-data /var/moodledata&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 777 /var/moodledata&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Explanation:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Since we setup a local repository in the previous step, you will copy it to your webroot after any updates and making changes. Having your local repository outside of the webroot, like we have in /opt, you will be able to prepare and stage your upgrades in a more efficient manner. For example, you want to make some changes or add some plug-ins, you would download the plugin and copy it to your local moodle repository. After you have added the plug-in and any other changes you might have made you will need to edit the file located in /opt/moodle/.git/info/exclude. Within that file you want to tell [[Git|git]] which files/folders to exclude when it pulls down the updates when you run your next &amp;quot;sudo git pull&amp;quot;. An example entry would be the certificate mod located in /opt/moodle/mod/certificate so within the exclude file you want to add &amp;quot;/mod/certificate&amp;quot; below the last comments. You would add additional entries, 1 per line, for each plug-in or file you might have changed. If I were to change the favicon.ico file you would just add &amp;quot;favicon.ico&amp;quot; to the exclude file. Now when you run &amp;quot;sudo git pull&amp;quot; to update moodle to the latest version it will ignore those files and directories and just update the core moodle code. Before copying to your webroot to upgrade you want to make sure and download and copy over the latest versions of the plug-ins you might have added.&lt;br /&gt;
&lt;br /&gt;
== Step 6: Setup MySQL Server ==&lt;br /&gt;
* 4:45 in the video&lt;br /&gt;
First we need to change the default storage engine to innodb and change the default file format to Barracuda, this is a new setting compared to previous versions. You also need to set innodb_file_per_table in order for Barracuda to work properly. Ref: https://dev.mysql.com/doc/refman/5.6/en/innodb-compression-usage.html&lt;br /&gt;
&lt;br /&gt;
*You should not need to make innodb the default storage engine anymore, the latest version of Moodle will select it automatically during install. It is always a good idea to make it default anyway. You do however need to set the default file format!&lt;br /&gt;
&lt;br /&gt;
*If you chose to use VIM instead please substitute vi for vim&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Scroll down to the [mysqld] section and under Basic Settings add the following line under the last statement. if you want to add you have to press the &amp;quot;insert&amp;quot; button on your keyboard. this is usually above the &amp;quot;delete&amp;quot; button. this allows you to add some text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;default_storage_engine = innodb&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;innodb_file_per_table = 1&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;innodb_file_format = Barracuda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to save my.cnf using the editor, press the Esc (Escape) key, type the following in sequence which will save :w then close the editor :q&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;:w&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:q&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart MySQL Server for changes to take affect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service mysql restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to create the Moodle database and the Moodle MySQL User with the correct permissions&lt;br /&gt;
&lt;br /&gt;
Use the password you created in step 1&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u root -p&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where it says &amp;quot;moodledude&amp;quot; and &amp;quot;passwordformoodledude&amp;quot; you should change to the username and password of your choosing.&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;create user &#039;moodledude&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;passwordformoodledude&#039;;&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodledude@localhost IDENTIFIED BY &#039;passwordformoodledude&#039;;&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;quit;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note - If you care using MySQL 5.6+ and when you issue the create user and get an error about the password hash you need to adjust the password to use the hash value&lt;br /&gt;
&lt;br /&gt;
You can get this by following the below&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;SELECT password(&#039;passwordformoodledude&#039;);&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will print the hash of the password like *AD51BAFB2GD003D3480BCED0DH81AB0BG1712535, you will want to use this in the IDENTIFIED BY &#039; part&lt;br /&gt;
&lt;br /&gt;
== Step 7: Complete Setup ==&lt;br /&gt;
* 6:40 in the video&lt;br /&gt;
*Note - If you are not comfortable using terminal to create the config.php file that needs to be created when going through the installer, you should temporarily make the webroot writable by doing the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you have ran the installer and you have moodle setup, you NEED to revert permissions so that it is no longer writable using the below command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open your browser and go to http://IP.ADDRESS.OF.SERVER/moodle &lt;br /&gt;
&lt;br /&gt;
Follow the prompts:&lt;br /&gt;
&lt;br /&gt;
===Change the path for moodledata===&lt;br /&gt;
&lt;br /&gt;
/var/moodledata&lt;br /&gt;
&lt;br /&gt;
===Database Type===&lt;br /&gt;
&lt;br /&gt;
Choose: mysqli&lt;br /&gt;
&lt;br /&gt;
=== Database Settings ===&lt;br /&gt;
&lt;br /&gt;
Host server: localhost&lt;br /&gt;
&lt;br /&gt;
Database: moodle&lt;br /&gt;
&lt;br /&gt;
User: moodledude (the user you created when setting up the database)&lt;br /&gt;
&lt;br /&gt;
Password: passwordformoodledude (the password for the user you created)&lt;br /&gt;
&lt;br /&gt;
Tables Prefix: mdl_&lt;br /&gt;
&lt;br /&gt;
=== Environment Checks ===&lt;br /&gt;
&lt;br /&gt;
This will indicate if any elements required to run moodle haven&#039;t been installed.&lt;br /&gt;
&lt;br /&gt;
=== Next next next... ===&lt;br /&gt;
follow prompts and confirm installation&lt;br /&gt;
&lt;br /&gt;
===Create a Site Administrator Account ===&lt;br /&gt;
Create your moodle user account which will have site administrator permissions.&lt;br /&gt;
&lt;br /&gt;
The password you select has to meet certain security requirements.&lt;br /&gt;
&lt;br /&gt;
===Installation Complete ===&lt;br /&gt;
Congrats! You can now start using Moodle!&lt;br /&gt;
&lt;br /&gt;
===Don&#039;t Forget===&lt;br /&gt;
If you made the webroot writable, revert permissions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== System Paths After Install==&lt;br /&gt;
* 10:05 in the video&lt;br /&gt;
After installing Moodle you should set the system paths, this will provide better performance VS not setting them. Each entry in Moodle will have it&#039;s explanation.&lt;br /&gt;
&lt;br /&gt;
Navigate, on the moodle webpage, to Site Administration &amp;gt; Server &amp;gt; System Paths&lt;br /&gt;
&lt;br /&gt;
Input the following;&lt;br /&gt;
&lt;br /&gt;
Path to Du: /usr/bin/du&lt;br /&gt;
&lt;br /&gt;
Path to Apsell: /usr/bin/aspell&lt;br /&gt;
&lt;br /&gt;
Path to dot: /usr/bin/dot&lt;br /&gt;
&lt;br /&gt;
Save Changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Optional if you do not already have an AntiVirus Solution&lt;br /&gt;
&lt;br /&gt;
We also installed ClamAV in Step 3 so we need to set the path in Moodle&lt;br /&gt;
&lt;br /&gt;
1st Create the Quarantine Directory&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/quarantine&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change Ownership&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown -R www-data /var/quarantine&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Navigate to Site Administration &amp;gt; Security &amp;gt; Anti-Virus&lt;br /&gt;
&lt;br /&gt;
Check &amp;quot;Use ClamAV on uploaded files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ClamAV Path : /usr/bin/clamscan&lt;br /&gt;
&lt;br /&gt;
Quarantine Directory : /var/quarantine&lt;br /&gt;
&lt;br /&gt;
Save Changes&lt;br /&gt;
&lt;br /&gt;
== Suggestions: Enable Zend OpCache/Change Document Root==&lt;br /&gt;
* 11:00 in the video&lt;br /&gt;
*Since we have installed Ubuntu Server 14.04LTS, we can use the built-in PHP OPcache, https://docs.moodle.org/26/en/OPcache&lt;br /&gt;
&lt;br /&gt;
Within the link above, https://docs.moodle.org/26/en/OPcache add the recommended settings to your 05-opcache.ini file. Again, substitute vi with vim and remember to use the correct key squences from the introduction.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/php5/apache2/conf.d/05-opcache.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: In Ubuntu 16.04 opcache.ini is located in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/php/7.0/mods-available/opcache.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart Apache for changes to take affect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That&#039;s it for the Zend OpCache!&lt;br /&gt;
&lt;br /&gt;
You can also install a GUI to view the status of your Zend OpCache, not recommended on production servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /var/www/html/moodle/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the PHP Script to your Moodle directory, you should also add this file to /opt/moodle/.git/info/exclude file so it does not get removed when upgrading your installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo wget https://github.com/rlerdorf/opcache-status/blob/master/opcache.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Visit http://ip.address.of.server/moodle/opcache.php&lt;br /&gt;
&lt;br /&gt;
If you do not want your end users to type http://yourserver/moodle and just want them to navigate to http://youserver you will need to edit the site configuration for Apache which will tell Apache to use the /var/www/html/moodle as the root directory and not /var/www/html&lt;br /&gt;
&lt;br /&gt;
Open up the Apache sites config and change the document root&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/apache2/sites-available/000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the line where DocumentRoot is;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Change From: DocumentRoot /var/www/html&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Change To:   DocumentRoot /var/www/html/moodle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;:w&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:q&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart Apache for changes to take affect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important note!&lt;br /&gt;
&lt;br /&gt;
If you have already installed Moodle then you should make the below changes.&lt;br /&gt;
&lt;br /&gt;
== Editing config.php for moodle ==&lt;br /&gt;
&lt;br /&gt;
In the installation instructions, one of the suggested settings for &#039;webroot&#039; is &#039;localhost&#039;. This is fine if all you want to do is some local testing of your new Moodle installation. If, however, you want to view your new installation from another machine on the same local area network, or view your site on the Internet, you will have to change this setting:&lt;br /&gt;
&lt;br /&gt;
For local testing, &#039;localhost&#039; is fine for the webroot ($CFG-&amp;gt;wwwroot in config.php).&lt;br /&gt;
If you want to test your site from other machines on the same local area network (LAN), then you will have to use the private ip address of the serving machine, (e.g. 192.168.1.2/moodle) or the network name of the serving computer (e.g. network_name_of_serving_machine/moodle) as the web root. Depending on your LAN setup, it may be better to use the network name of the computer rather than its (private) ip address, because the ip address can and will change from time to time. If you don&#039;t want to use the network name, then you will have to speak to your network administrator and have them assign a permanent ip address to the serving machine.&lt;br /&gt;
Finally, if you want to test your new installation across the internet, you will have to use either a domain name or a permanent (public) ip address/moodle as your web root. To handle both types of access, see masquerading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edit config.php for Moodle&lt;br /&gt;
&lt;br /&gt;
cd /var/www/html/moodle&lt;br /&gt;
sudo vim config.php&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;insert&amp;quot; button on your keyboard, make then changes you need to make. Then press &amp;quot;escape&amp;quot; and type the following in to quit and to save changes (excluding quotation marks): &amp;quot;:wq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under $CFG-&amp;gt;wwwroot change to http://ip.address.of.server instead of http://ip.address.of.server/moodle&lt;br /&gt;
&lt;br /&gt;
== Youtube Video==&lt;br /&gt;
https://www.youtube.com/watch?v=H5vAzBrRxzI&lt;br /&gt;
&lt;br /&gt;
==Hosting several Moodle branches in one Ubuntu server==&lt;br /&gt;
* This is very useful for the language pack maintainers to test translations in several Moodle branches.&lt;br /&gt;
* It is also very useful for developers to test their plugins in different Moodle branches.&lt;br /&gt;
* Just create a folder for each instance inside the web folder and that would be enough. &lt;br /&gt;
* To access the sites you only need to add the folder to localhost URL: http://localhost/moodle31&lt;br /&gt;
* You can have an instance for each version from 1.9 to 3.1 &lt;br /&gt;
&lt;br /&gt;
* You do need a separate data folder for each instance and a separate database (You can use phpmyadmin to set your database, but that&#039;s not necessary), add each instance in its own folder, and carry on as above. You can also host another service (eg, Mahara) in it&#039;s separate folder.&lt;br /&gt;
&lt;br /&gt;
===Example 1===&lt;br /&gt;
*So, one example folder tree on one Linux laptop (an actual server would be more) may look something like:&lt;br /&gt;
&lt;br /&gt;
 var&lt;br /&gt;
--www&lt;br /&gt;
    ----maharadata&lt;br /&gt;
    ----moodlecleandata&lt;br /&gt;
    ----moodlestabledata&lt;br /&gt;
    ----moodlemasterdata&lt;br /&gt;
    ----moodletestingdata&lt;br /&gt;
    ----uswmoodledata&lt;br /&gt;
    ----html&lt;br /&gt;
        ------mahara&lt;br /&gt;
        ------moodleclean&lt;br /&gt;
        ------moodlestable&lt;br /&gt;
        ------moodlemaster&lt;br /&gt;
        ------moodletesting&lt;br /&gt;
        ------uswmoodle&lt;br /&gt;
&lt;br /&gt;
===Example 2===&lt;br /&gt;
* Have several sandboxed Moodles on a single (CentOS X) server all of different versions .. only the ones that are supported for security fixes and above - 2.7,2.8,2.9,3.0, and now a 3.1.  Pretty much &#039;stock&#039; Moodles with only occasional addons, etc. for testing.&lt;br /&gt;
* All have their separate code and data directories as well as their separate DB&#039;s.&lt;br /&gt;
&lt;br /&gt;
* Hint: install and maintain them all with [[Git_for_Administrators|git]] ... even if you don&#039;t prefer/like command line, that is by far the most efficient way to update and/or upgrade a site.&lt;br /&gt;
&lt;br /&gt;
 /var/www/html/moodle27/version.php:$release  = &#039;2.7.14 (Build: 20160509)&#039;&lt;br /&gt;
 /var/www/html/moodle28/version.php:$release  = &#039;2.8.12 (Build: 20160509)&#039;&lt;br /&gt;
 /var/www/html/moodle29/version.php:$release  = &#039;2.9.6+ (Build: 20160520)&#039;&lt;br /&gt;
 /var/www/html/moodle30/version.php:$release  = &#039;3.0.4+ (Build: 20160603)&#039;&lt;br /&gt;
 /var/www/html/moodle31/version.php:$release  = &#039;3.1+ (Build: 20160603)&#039;&lt;br /&gt;
&lt;br /&gt;
* The git -b command locks a site into the version provided with the rest of the git command ... for example, installing the 3.1, which is a long term support version, installed with git -b option.   Don&#039;t plan on upgrading nor testing upgrades with that one.&lt;br /&gt;
&lt;br /&gt;
 git clone -b MOODLE_31_STABLE git://git.moodle.org/moodle.git moodle31&lt;br /&gt;
&lt;br /&gt;
* All the other moodles I have on that server have been installed via git &lt;br /&gt;
&lt;br /&gt;
 git clone git://git.moodle.org/moodle.git [nameofdir]&lt;br /&gt;
&lt;br /&gt;
* then from nameofdir&lt;br /&gt;
&lt;br /&gt;
 git branch --track MOODLE_2#_STABLE origin/MOODLE_2#_STABLE&lt;br /&gt;
 git checkout MOODLE_2#_STABLE&lt;br /&gt;
&lt;br /&gt;
* 2# is the version number.&lt;br /&gt;
&lt;br /&gt;
* That allows one to march that moodle upwards ... higher branch(es).   So one can test an upgrade (as opposed to an &#039;update&#039;).&lt;br /&gt;
&lt;br /&gt;
* This second method &#039;gits&#039; more code and backups will range in the 5+ Meg range due to all the older version git stuff    The 3.1 much less (restricted to 3.1 branch):&lt;br /&gt;
&lt;br /&gt;
* 545M    ./moodle296-code-20160604145012.tar&lt;br /&gt;
&lt;br /&gt;
* 193M    ./moodle31+-code-2016060883737.tar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[es:Guia de instalacion paso-a-paso para Ubuntu 16.04]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/502/en/index.php?title=Step-by-step_Installation_Guide_for_Ubuntu&amp;diff=126413</id>
		<title>Step-by-step Installation Guide for Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/502/en/index.php?title=Step-by-step_Installation_Guide_for_Ubuntu&amp;diff=126413"/>
		<updated>2016-12-15T18:15:13Z</updated>

		<summary type="html">&lt;p&gt;Jfederic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Installing Moodle}}&lt;br /&gt;
{{Note|This document is about installing Moodle 3.1 in an Ubuntu 16.04 server with PHP 7.0. The Moodle 3.0 version of this document covers Moodle 3.0 with Ubuntu 14.04 and PHP 5.}}&lt;br /&gt;
&lt;br /&gt;
== Step 1: Install Ubuntu 16.04 LTS==&lt;br /&gt;
&lt;br /&gt;
===Why we prefer Ubuntu server over Ubuntu desktop===&lt;br /&gt;
* Most IT professionals prefer to use a Command Line Interface (CLI) server, because it is safer and less prone to hacking.&lt;br /&gt;
* Amateur users might find it easier to use a graphical (desktop) interface.&lt;br /&gt;
* If you will only be using your Moodle server for local, experimental purposes, you might prefer to install the desktop (64 bits preferred) version of Ubuntu.&lt;br /&gt;
* If you install a CLI only server and later regret it, you can easily add a graphical desktop:&lt;br /&gt;
** Even though it is not recommended by most experts, you could install a Graphical User Interface (desktop) by issuing the command &#039;sudo tasksel&#039; and choosing (with the Space Bar) to [https://siliconmechanics.zendesk.com/hc/en-us/articles/206241896-Installing-a-GUI-on-Ubuntu-Server-15-04 install &#039;Ubuntu desktop&#039;]. &lt;br /&gt;
&lt;br /&gt;
===Why we prefer (or don&#039;t prefer) Ubuntu 16.04 over Ubuntu 14.04===&lt;br /&gt;
* Both packages are LTS (Long Term Service) releases.&lt;br /&gt;
* Ubuntu Server 16.04LTS has some differences from 14.04LTS, mainly [https://docs.moodle.org/dev/Moodle_and_PHP7 PHP 7.0]. &lt;br /&gt;
* Moodle 3.01 onwards can use [https://docs.moodle.org/dev/Moodle_and_PHP7 PHP 7.0]&lt;br /&gt;
* This document has been updated to reflect those changes.&lt;br /&gt;
* But beware that if you are using external authentication or enrollment plug-ins, please note that at the moment of Moodle 3.0.1 release (December 2015) neither MSSQL nor SQLSRV are available under php7. So, [https://docs.moodle.org/dev/Moodle_and_PHP7#Can_I_use_PHP7_yet.3F anybody using SQL*Server as primary database or remote auth/enrol plugin  should not move to PHP 7] at all ! Also, depending of your configuration, some extensions (memcached [https://docs.moodle.org/dev/Moodle_and_PHP7#Manually_installing_Memcached can be installed], redis, mongodb, xmlrpc...) maybe missing or work in progress for your distribution, triple check the exact availability for your OS.&lt;br /&gt;
&lt;br /&gt;
===Procedure===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Server Edition amd64 preferred&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;http://www.ubuntu.com/download&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Ubuntu Server 16.04LTS amd64 has all the required packages.&lt;br /&gt;
&lt;br /&gt;
*Ubuntu Server 16.04LTS has some minor differences from 14.04LTS, mainly PHP 7.0. This document has been updated to reflect those changes.&lt;br /&gt;
&lt;br /&gt;
*You can use either VI (lightweight editor) or VIM (heavyweight editor), however, if you wish to use VIM you will need to install it&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install vim&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*VI or VIM Commands&amp;lt;br /&amp;gt;&lt;br /&gt;
To edit a file press &amp;quot;Insert&amp;quot; Key&amp;lt;br /&amp;gt;&lt;br /&gt;
To finish editing press &amp;quot;Esc&amp;quot; Key&amp;lt;br /&amp;gt;&lt;br /&gt;
To write the file press &amp;quot;:w&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
To Exit the editor press &amp;quot;:q&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
You can also write and quit &amp;quot;:wq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*In Ubuntu, the standard user, the account you created during the install, does not have rights to install/write to many of the directories. In the below tutorial we will be using the term &amp;quot;sudo&amp;quot; which stands for &amp;quot;super user do&amp;quot; before most of the commands.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Install Apache/MySQL/PHP ==&lt;br /&gt;
{{Note| Moodle 3.0.1 [https://docs.moodle.org/dev/Moodle_3.0.1_release_notes introduced support for PHP 7.0 and we will be using PHP 7.0 in this tutorial]}}&lt;br /&gt;
Open up Terminal and install the following;&lt;br /&gt;
* :22 in the Video&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2 mysql-client mysql-server php7.0 libapache2-mod-php7.0&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;It will prompt you to set the root password for mysql - please, please my dear friends, WRITE IT DOWN and spare yourself some grief, you will need it in step 6.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Note| Even though it is not recommended by most experts, you could install a Graphical User Interface (desktop) by issuing the command &#039;sudo tasksel&#039; and choosing (with the Space Bar) to [https://siliconmechanics.zendesk.com/hc/en-us/articles/206241896-Installing-a-GUI-on-Ubuntu-Server-15-04 install &#039;Ubuntu desktop&#039;]}}&lt;br /&gt;
&lt;br /&gt;
== Step 3: Install Additional Software ==&lt;br /&gt;
* 1:10 in the video&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install graphviz aspell php7.0-pspell php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-xml php7.0-xmlrpc php7.0-ldap php7.0-zip php7-soap php7.0-mbstring&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart Apache so that the modules are loaded correctly&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We will be using [[Git]] to install/update the Moodle Core Application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install git-core&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 4: Download Moodle ==&lt;br /&gt;
* 1:55 in the video&lt;br /&gt;
Setup your local repository and download Moodle, We will use /opt for this installation.&lt;br /&gt;
&lt;br /&gt;
*[[Git]] is what is called a &amp;quot;version control system&amp;quot;. By using [[Git|git]] it will much easier down the road to update the moodle core application. Within Step 5 there is a little more detail on why we put the moodle core application code in the /opt directory. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the Moodle Code and Index&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git clone git://git.moodle.org/moodle.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change directory into the downloaded Moodle folder&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd moodle&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retrieve a list of each branch available&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git branch -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tell [[Git|git]] which branch to track or use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git branch --track MOODLE_31_STABLE origin/MOODLE_31_STABLE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, Check out the Moodle version specified&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo git checkout MOODLE_31_STABLE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 5: Copy local repository to /var/www/html/ ==&lt;br /&gt;
* 3:05 in the video&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp -R /opt/moodle /var/www/html/&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/moodledata&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown -R www-data /var/moodledata&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 777 /var/moodledata&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Explanation:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Since we setup a local repository in the previous step, you will copy it to your webroot after any updates and making changes. Having your local repository outside of the webroot, like we have in /opt, you will be able to prepare and stage your upgrades in a more efficient manner. For example, you want to make some changes or add some plug-ins, you would download the plugin and copy it to your local moodle repository. After you have added the plug-in and any other changes you might have made you will need to edit the file located in /opt/moodle/.git/info/exclude. Within that file you want to tell [[Git|git]] which files/folders to exclude when it pulls down the updates when you run your next &amp;quot;sudo git pull&amp;quot;. An example entry would be the certificate mod located in /opt/moodle/mod/certificate so within the exclude file you want to add &amp;quot;/mod/certificate&amp;quot; below the last comments. You would add additional entries, 1 per line, for each plug-in or file you might have changed. If I were to change the favicon.ico file you would just add &amp;quot;favicon.ico&amp;quot; to the exclude file. Now when you run &amp;quot;sudo git pull&amp;quot; to update moodle to the latest version it will ignore those files and directories and just update the core moodle code. Before copying to your webroot to upgrade you want to make sure and download and copy over the latest versions of the plug-ins you might have added.&lt;br /&gt;
&lt;br /&gt;
== Step 6: Setup MySQL Server ==&lt;br /&gt;
* 4:45 in the video&lt;br /&gt;
First we need to change the default storage engine to innodb and change the default file format to Barracuda, this is a new setting compared to previous versions. You also need to set innodb_file_per_table in order for Barracuda to work properly. Ref: https://dev.mysql.com/doc/refman/5.6/en/innodb-compression-usage.html&lt;br /&gt;
&lt;br /&gt;
*You should not need to make innodb the default storage engine anymore, the latest version of Moodle will select it automatically during install. It is always a good idea to make it default anyway. You do however need to set the default file format!&lt;br /&gt;
&lt;br /&gt;
*If you chose to use VIM instead please substitute vi for vim&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Scroll down to the [mysqld] section and under Basic Settings add the following line under the last statement. if you want to add you have to press the &amp;quot;insert&amp;quot; button on your keyboard. this is usually above the &amp;quot;delete&amp;quot; button. this allows you to add some text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;default_storage_engine = innodb&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;innodb_file_per_table = 1&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;innodb_file_format = Barracuda&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to save my.cnf using the editor, press the Esc (Escape) key, type the following in sequence which will save :w then close the editor :q&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;:w&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:q&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart MySQL Server for changes to take affect&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service mysql restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to create the Moodle database and the Moodle MySQL User with the correct permissions&lt;br /&gt;
&lt;br /&gt;
Use the password you created in step 1&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u root -p&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where it says &amp;quot;moodledude&amp;quot; and &amp;quot;passwordformoodledude&amp;quot; you should change to the username and password of your choosing.&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;create user &#039;moodledude&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;passwordformoodledude&#039;;&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodledude@localhost IDENTIFIED BY &#039;passwordformoodledude&#039;;&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;quit;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note - If you care using MySQL 5.6+ and when you issue the create user and get an error about the password hash you need to adjust the password to use the hash value&lt;br /&gt;
&lt;br /&gt;
You can get this by following the below&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt;&amp;lt;pre&amp;gt;SELECT password(&#039;passwordformoodledude&#039;);&amp;lt;/pre&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will print the hash of the password like *AD51BAFB2GD003D3480BCED0DH81AB0BG1712535, you will want to use this in the IDENTIFIED BY &#039; part&lt;br /&gt;
&lt;br /&gt;
== Step 7: Complete Setup ==&lt;br /&gt;
* 6:40 in the video&lt;br /&gt;
*Note - If you are not comfortable using terminal to create the config.php file that needs to be created when going through the installer, you should temporarily make the webroot writable by doing the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you have ran the installer and you have moodle setup, you NEED to revert permissions so that it is no longer writable using the below command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open your browser and go to http://IP.ADDRESS.OF.SERVER/moodle &lt;br /&gt;
&lt;br /&gt;
Follow the prompts:&lt;br /&gt;
&lt;br /&gt;
===Change the path for moodledata===&lt;br /&gt;
&lt;br /&gt;
/var/moodledata&lt;br /&gt;
&lt;br /&gt;
===Database Type===&lt;br /&gt;
&lt;br /&gt;
Choose: mysqli&lt;br /&gt;
&lt;br /&gt;
=== Database Settings ===&lt;br /&gt;
&lt;br /&gt;
Host server: localhost&lt;br /&gt;
&lt;br /&gt;
Database: moodle&lt;br /&gt;
&lt;br /&gt;
User: moodledude (the user you created when setting up the database)&lt;br /&gt;
&lt;br /&gt;
Password: passwordformoodledude (the password for the user you created)&lt;br /&gt;
&lt;br /&gt;
Tables Prefix: mdl_&lt;br /&gt;
&lt;br /&gt;
=== Environment Checks ===&lt;br /&gt;
&lt;br /&gt;
This will indicate if any elements required to run moodle haven&#039;t been installed.&lt;br /&gt;
&lt;br /&gt;
=== Next next next... ===&lt;br /&gt;
follow prompts and confirm installation&lt;br /&gt;
&lt;br /&gt;
===Create a Site Administrator Account ===&lt;br /&gt;
Create your moodle user account which will have site administrator permissions.&lt;br /&gt;
&lt;br /&gt;
The password you select has to meet certain security requirements.&lt;br /&gt;
&lt;br /&gt;
===Installation Complete ===&lt;br /&gt;
Congrats! You can now start using Moodle!&lt;br /&gt;
&lt;br /&gt;
===Don&#039;t Forget===&lt;br /&gt;
If you made the webroot writable, revert permissions&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod -R 0755 /var/www/html/moodle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== System Paths After Install==&lt;br /&gt;
* 10:05 in the video&lt;br /&gt;
After installing Moodle you should set the system paths, this will provide better performance VS not setting them. Each entry in Moodle will have it&#039;s explanation.&lt;br /&gt;
&lt;br /&gt;
Navigate, on the moodle webpage, to Site Administration &amp;gt; Server &amp;gt; System Paths&lt;br /&gt;
&lt;br /&gt;
Input the following;&lt;br /&gt;
&lt;br /&gt;
Path to Du: /usr/bin/du&lt;br /&gt;
&lt;br /&gt;
Path to Apsell: /usr/bin/aspell&lt;br /&gt;
&lt;br /&gt;
Path to dot: /usr/bin/dot&lt;br /&gt;
&lt;br /&gt;
Save Changes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Optional if you do not already have an AntiVirus Solution&lt;br /&gt;
&lt;br /&gt;
We also installed ClamAV in Step 3 so we need to set the path in Moodle&lt;br /&gt;
&lt;br /&gt;
1st Create the Quarantine Directory&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir /var/quarantine&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change Ownership&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown -R www-data /var/quarantine&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Navigate to Site Administration &amp;gt; Security &amp;gt; Anti-Virus&lt;br /&gt;
&lt;br /&gt;
Check &amp;quot;Use ClamAV on uploaded files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ClamAV Path : /usr/bin/clamscan&lt;br /&gt;
&lt;br /&gt;
Quarantine Directory : /var/quarantine&lt;br /&gt;
&lt;br /&gt;
Save Changes&lt;br /&gt;
&lt;br /&gt;
== Suggestions: Enable Zend OpCache/Change Document Root==&lt;br /&gt;
* 11:00 in the video&lt;br /&gt;
*Since we have installed Ubuntu Server 14.04LTS, we can use the built-in PHP OPcache, https://docs.moodle.org/26/en/OPcache&lt;br /&gt;
&lt;br /&gt;
Within the link above, https://docs.moodle.org/26/en/OPcache add the recommended settings to your 05-opcache.ini file. Again, substitute vi with vim and remember to use the correct key squences from the introduction.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/php5/apache2/conf.d/05-opcache.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: In Ubuntu 16.04 opcache.ini is located in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/php/7.0/mods-available/opcache.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart Apache for changes to take affect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That&#039;s it for the Zend OpCache!&lt;br /&gt;
&lt;br /&gt;
You can also install a GUI to view the status of your Zend OpCache, not recommended on production servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /var/www/html/moodle/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the PHP Script to your Moodle directory, you should also add this file to /opt/moodle/.git/info/exclude file so it does not get removed when upgrading your installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo wget https://github.com/rlerdorf/opcache-status/blob/master/opcache.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Visit http://ip.address.of.server/moodle/opcache.php&lt;br /&gt;
&lt;br /&gt;
If you do not want your end users to type http://yourserver/moodle and just want them to navigate to http://youserver you will need to edit the site configuration for Apache which will tell Apache to use the /var/www/html/moodle as the root directory and not /var/www/html&lt;br /&gt;
&lt;br /&gt;
Open up the Apache sites config and change the document root&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo vi /etc/apache2/sites-available/000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the line where DocumentRoot is;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Change From: DocumentRoot /var/www/html&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;Change To:   DocumentRoot /var/www/html/moodle&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;:w&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;:q&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Restart Apache for changes to take affect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important note!&lt;br /&gt;
&lt;br /&gt;
If you have already installed Moodle then you should make the below changes.&lt;br /&gt;
&lt;br /&gt;
== Editing config.php for moodle ==&lt;br /&gt;
&lt;br /&gt;
In the installation instructions, one of the suggested settings for &#039;webroot&#039; is &#039;localhost&#039;. This is fine if all you want to do is some local testing of your new Moodle installation. If, however, you want to view your new installation from another machine on the same local area network, or view your site on the Internet, you will have to change this setting:&lt;br /&gt;
&lt;br /&gt;
For local testing, &#039;localhost&#039; is fine for the webroot ($CFG-&amp;gt;wwwroot in config.php).&lt;br /&gt;
If you want to test your site from other machines on the same local area network (LAN), then you will have to use the private ip address of the serving machine, (e.g. 192.168.1.2/moodle) or the network name of the serving computer (e.g. network_name_of_serving_machine/moodle) as the web root. Depending on your LAN setup, it may be better to use the network name of the computer rather than its (private) ip address, because the ip address can and will change from time to time. If you don&#039;t want to use the network name, then you will have to speak to your network administrator and have them assign a permanent ip address to the serving machine.&lt;br /&gt;
Finally, if you want to test your new installation across the internet, you will have to use either a domain name or a permanent (public) ip address/moodle as your web root. To handle both types of access, see masquerading.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edit config.php for Moodle&lt;br /&gt;
&lt;br /&gt;
cd /var/www/html/moodle&lt;br /&gt;
sudo vim config.php&lt;br /&gt;
&lt;br /&gt;
Hit the &amp;quot;insert&amp;quot; button on your keyboard, make then changes you need to make. Then press &amp;quot;escape&amp;quot; and type the following in to quit and to save changes (excluding quotation marks): &amp;quot;:wq&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Under $CFG-&amp;gt;wwwroot change to http://ip.address.of.server instead of http://ip.address.of.server/moodle&lt;br /&gt;
&lt;br /&gt;
== Youtube Video==&lt;br /&gt;
https://www.youtube.com/watch?v=H5vAzBrRxzI&lt;br /&gt;
&lt;br /&gt;
==Hosting several Moodle branches in one Ubuntu server==&lt;br /&gt;
* This is very useful for the language pack maintainers to test translations in several Moodle branches.&lt;br /&gt;
* It is also very useful for developers to test their plugins in different Moodle branches.&lt;br /&gt;
* Just create a folder for each instance inside the web folder and that would be enough. &lt;br /&gt;
* To access the sites you only need to add the folder to localhost URL: http://localhost/moodle31&lt;br /&gt;
* You can have an instance for each version from 1.9 to 3.1 &lt;br /&gt;
&lt;br /&gt;
* You do need a separate data folder for each instance and a separate database (You can use phpmyadmin to set your database, but that&#039;s not necessary), add each instance in its own folder, and carry on as above. You can also host another service (eg, Mahara) in it&#039;s separate folder.&lt;br /&gt;
&lt;br /&gt;
===Example 1===&lt;br /&gt;
*So, one example folder tree on one Linux laptop (an actual server would be more) may look something like:&lt;br /&gt;
&lt;br /&gt;
 var&lt;br /&gt;
--www&lt;br /&gt;
    ----maharadata&lt;br /&gt;
    ----moodlecleandata&lt;br /&gt;
    ----moodlestabledata&lt;br /&gt;
    ----moodlemasterdata&lt;br /&gt;
    ----moodletestingdata&lt;br /&gt;
    ----uswmoodledata&lt;br /&gt;
    ----html&lt;br /&gt;
        ------mahara&lt;br /&gt;
        ------moodleclean&lt;br /&gt;
        ------moodlestable&lt;br /&gt;
        ------moodlemaster&lt;br /&gt;
        ------moodletesting&lt;br /&gt;
        ------uswmoodle&lt;br /&gt;
&lt;br /&gt;
===Example 2===&lt;br /&gt;
* Have several sandboxed Moodles on a single (CentOS X) server all of different versions .. only the ones that are supported for security fixes and above - 2.7,2.8,2.9,3.0, and now a 3.1.  Pretty much &#039;stock&#039; Moodles with only occasional addons, etc. for testing.&lt;br /&gt;
* All have their separate code and data directories as well as their separate DB&#039;s.&lt;br /&gt;
&lt;br /&gt;
* Hint: install and maintain them all with [[Git_for_Administrators|git]] ... even if you don&#039;t prefer/like command line, that is by far the most efficient way to update and/or upgrade a site.&lt;br /&gt;
&lt;br /&gt;
 /var/www/html/moodle27/version.php:$release  = &#039;2.7.14 (Build: 20160509)&#039;&lt;br /&gt;
 /var/www/html/moodle28/version.php:$release  = &#039;2.8.12 (Build: 20160509)&#039;&lt;br /&gt;
 /var/www/html/moodle29/version.php:$release  = &#039;2.9.6+ (Build: 20160520)&#039;&lt;br /&gt;
 /var/www/html/moodle30/version.php:$release  = &#039;3.0.4+ (Build: 20160603)&#039;&lt;br /&gt;
 /var/www/html/moodle31/version.php:$release  = &#039;3.1+ (Build: 20160603)&#039;&lt;br /&gt;
&lt;br /&gt;
* The git -b command locks a site into the version provided with the rest of the git command ... for example, installing the 3.1, which is a long term support version, installed with git -b option.   Don&#039;t plan on upgrading nor testing upgrades with that one.&lt;br /&gt;
&lt;br /&gt;
 git clone -b MOODLE_31_STABLE git://git.moodle.org/moodle.git moodle31&lt;br /&gt;
&lt;br /&gt;
* All the other moodles I have on that server have been installed via git &lt;br /&gt;
&lt;br /&gt;
 git clone git://git.moodle.org/moodle.git [nameofdir]&lt;br /&gt;
&lt;br /&gt;
* then from nameofdir&lt;br /&gt;
&lt;br /&gt;
 git branch --track MOODLE_2#_STABLE origin/MOODLE_2#_STABLE&lt;br /&gt;
 git checkout MOODLE_2#_STABLE&lt;br /&gt;
&lt;br /&gt;
* 2# is the version number.&lt;br /&gt;
&lt;br /&gt;
* That allows one to march that moodle upwards ... higher branch(es).   So one can test an upgrade (as opposed to an &#039;update&#039;).&lt;br /&gt;
&lt;br /&gt;
* This second method &#039;gits&#039; more code and backups will range in the 5+ Meg range due to all the older version git stuff    The 3.1 much less (restricted to 3.1 branch):&lt;br /&gt;
&lt;br /&gt;
* 545M    ./moodle296-code-20160604145012.tar&lt;br /&gt;
&lt;br /&gt;
* 193M    ./moodle31+-code-2016060883737.tar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[es:Guia de instalacion paso-a-paso para Ubuntu 16.04]]&lt;/div&gt;</summary>
		<author><name>Jfederic</name></author>
	</entry>
</feed>