43,19 €
An administrator's guide to configuring, securing, customizing, and extending Moodle
If you are a technician, systems administrator, or part of academic staff, this is the book for you. This book is ideal for anyone who has to administer a Moodle system. Whether you are dealing with a small-scale local Moodle system or a large-scale multi-site Virtual Learning Environment, this book will assist you with any administrative task. Some basic Moodle knowledge is helpful, but not essential.
Moodle is the de facto standard for open source learning platforms. However, setting up and managing a learning environment can be a complex task since it covers a wide range of technical, organizational, and pedagogical topics. This ranges from basic user and course management, to configuring plugins and design elements, all the way to system settings, performance optimization, events frameworks, and so on.
This book concentrates on basic tasks such as how to set up and configure Moodle and how to perform day-to-day administration activities, and progresses on to more advanced topics that show you how to customize and extend Moodle, manage courses, cohorts, and users, and how to work with roles and capabilities. You'll learn to configure Moodle plugins and ensure your VLE conforms to pedagogical and technical requirements in your organization. You'll then learn how to integrate the VLE via web services and network it with other sites, including Mahara, and extend your system via plugins and LTI. By the end of this book, you will be able to set up an efficient, fully fledged, and secure Moodle system.
The book takes a problem-solution approach to fall in line with your day-to-day operations. This is a one-stop reference for any task you will ever come across when administering a Moodle site of any shape and size.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 573
Veröffentlichungsjahr: 2016
Copyright © 2016 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: September 2008
Second Edition: October 2011
Third Edition: February 2016
Production reference: 1240216
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78328-971-4
www.packtpub.com
Author
Alex Büchner
Reviewers
Chad Outten
Ian Rifkin
Shashikant Vaishnav
Acquisition Editors
Reshma Raman
Rebecca Youe
Content Development Editor
Rashmi Suvarna
Technical Editor
Shivani Kiran Mistry
Copy Editor
Sonia Cheema
Project Coordinator
Suzanne Coutinho
Proofreader
Safis Editing
Indexer
Tejal Daruwale Soni
Production Coordinator
Nilesh Mohite
Cover Work
Nilesh Mohite
Alex Büchner is the co-founder and technical director of the Platinum Totara, Moodle, and Mahara partner, Synergy Learning. He has been involved in system and database administration for more than two decades and has been administering virtual learning environments of all shapes and sizes since their advent on the educational landscape.
Alex holds a PhD in computer science and an MSc in software engineering. He has authored over 50 international publications, including two books, and is a frequent speaker on Totara, Moodle, Mahara, and related open source technologies. His first two books on Moodle Administration by Packt Publishing have become the de facto standard on the topic.
The best learning experience in Moodle is provided when communication and collaboration is utilized. The same has been applied in writing this book, which would not have been possible without the support of the Packt editorial team.
I would like to thank the reviewers for their constructive feedback provided during the reviewing process. This book would not be the same without your comments and suggestions.
Special thanks must go to all my colleagues at Synergy Learning. No matter how tricky the Moodle problem, somebody will always be there to come up with a rock solid solution.
I have to thank all our customers. Without you, we wouldn't be aware of all the Moodle hitches and glitches that are out there. Keep them coming!
Last but not least, I have to thank AB + ab for their support and patience while I have been hiding away writing yet another book. I will make up for it. Promise!
Chad Outten is a qualified educator and technologist with more than 15 years of experience in the education and ICT sectors. He is the Managing Director at My Learning Space, an Australian e-learning company, and has worked closely with high-profile organizations such as eBay, Shell, Ricoh, iiNet, Rip Curl, and Queensland Health, among a diverse range of clients to help them improve staff performance and business outcomes through better learning, training, and compliance programs.
Chad is a Moodle certified teacher and has acted as a mentor and assessor for the internationally recognized Moodle Teacher Certification program. He is a proud member of the esteemed Particularly Helpful Moodlers and Quality Assurance Testers groups at moodle.org, and in 2008, he organized the Australian Moodle Moot. Chad is passionate about e-learning, admires educators, and understands the value of a good learning management system to address the challenges of 21st century education.
Ian Rifkin has experience with servers and applications (purchased, open source, and custom), and acts as a release engineer for his institution. He has in-depth knowledge of web application development and middleware integrations, including identity management systems. He is a developer and manager who has intimate knowledge of command-line Unix environments.
He has worked with Moodle as a student, faculty member, and administrator. Currently, he is employed as the software systems manager at Brandeis University, where he manages a small web team. He also holds a part-time adjunct instructor role for the Graduate Professional Studies division at Brandeis University, where he teaches web content management and web application development.
Ian holds an M.Sc. degree in information technology management and a BA degree in anthropology (with a minor in Internet studies). In his spare time, he enjoys computer games, genealogy research, baking, gardening, and spending time with his wife, Valerie, and son, Caleb.
Shashikant Vaishnav was born and brought up in Jodhpur, a desert town in Rajasthan, India. He's involved with a London-based Seedcamp-supported start-up, Shoprocket. It's an e-commerce system delivered over the cloud and integrates seamlessly into any application with a single line of code.
He is been involved with Moodle for quite a long time as a student. While an undergraduate, he participated in Google's Summer of Code program and integrated Apache Solr with Moodle. He also participated as a mentor in Google's Code-in program for the Sugar Labs organization.
He finished his graduation from the Government Engineering college Bikaner with a bachelor's of engineering and technology degree in computer science in 2013. His focus on academics aside, he harbors a deep interest in music and sports.
He loves to blog about his experiences with open source technology, travel, and life. He reads spiritual books, indulges in photography, and hacks around with open source projects.
He previously collaborated with Packt Publishing as a technical reviewer of Git Version Control Cookbook and Moodle 3 Administration Third Edition.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www2.packtpub.com/books/subscription/packtlib
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.
Since its launch in 2002, Moodle has become the benchmark that every learning management system is measured against. It has won a wide range of international accolades and established itself as an ecosystem for a large number of educational tools and services.
Moodle 3 Administration, Third Edition is a complete, practical guide for administering Moodle sites. It covers setting up Moodle, configuration, and day-to-day administrative tasks as well as advanced options to customize and extend Moodle.
The author, who has been at the cutting edge of Moodle administration since its advent, has adopted a problem-solution approach to bring the content in line with your day-to-day operations. The practical examples will help you to set up Moodle for large organizations and small courses alike.
This is a one-stop reference for tasks that you will come across when administering a Moodle site of any shape or size. It not only covers core Moodle functionality, but also third-party tools and add-ons that will increase your flexibility and efficiency even further when dealing with administrative duties.
Why another book on Moodle administration? Since the second edition of the title in 2011, the system has been modified and extended significantly to cover all the relevant new functionality in Moodle 3.
Moodle has grown into a mature, sophisticated, and complex software system. As a result, Moodle Administration covers a wide range of topics. A fun way to demonstrate the various subjects is in the form of a tube/subway/metro/ underground map (under the Creative Commons license by Synergy Learning):
Chapter 1, Moodle Installation, tells you about the most suitable Moodle setup for your organization, including software and hardware requirements. You will learn how to install Moodle in three environments, namely, LAMP/Unix, Windows, and Mac OS, before Moodle updates options are covered in detail. Throughout the chapter, you will also learn how to perform some of the described operations using the Moodle Command-line Interface (CLI), Git, and Moodle Shell (Moosh).
Chapter 2, The Moodle System, covers the building blocks of the learning platform. First, we cover the Moodle architecture, that is, the main Moodle components and where its data and code is stored. We then provide you with the skills to find your way a round in Moodle via its intuitive user and administration interface. Finally, we deal with the management of files, which includes Moodle's standard file management, web host file management, and file management via the file system repository.
Chapter 3, Courses, Users, and Roles, gives you an overview of Moodle courses, users, and roles. It covers the basics of the three key concepts and demonstrates how the three core elements are inherently intertwined.
Chapter 4, Course Management, shows you how to set up new courses (also in bulk) and organize them in categories. The remainder of the chapter deals with an array of enrolment options, covering Moodle's internal enrolment (manual, self, and guest), cohort enrolment and synchronization, database-driven enrolment, for instance, via LDAP, meta courses, and payment-driven enrolments.
Chapter 5, User Management, explains how to manage users on your system. We first cover what user profiles look like and how they can be extended before presenting (manual and bulk) standard user actions. We then explain how to add users to Moodle manually, that is, one-by-one, and via batch upload before dealing with cohorts. Then, you will learn about a plethora of authentication mechanisms that Moodle equips us with. Finally, we discuss the best practices of user naming schemes.
Chapter 6, Managing Permissions – Roles and Capabilities, guides you through permission management. It applies roles and capabilities to users in different contexts. We will cover the assignment of roles, modification of existing roles, and creation of new roles before we deal with any administrative role-related settings.
Chapter 7, Moodle Look and Feel, tells you how to adapt your Moodle system to bring it in line with the corporate branding of your organization. We will cover the customization of the front page, basic creation of Moodle themes, and support for mobile devices via responsive themes. You will also learn how to configure the Moodle editor and support users with accessibility requirements.
Chapter 8, Moodle Plugins, explains in detail how to extend your Moodle system via third-party add-ons. You will be able to distinguish between good add-ons and not-so-good add-ons before we cover extensions that are popular with other users. We will then cover how to install, configure, and uninstall third-party add-ons. Plugins that are covered are activities, blocks and filters, repositories, portfolios, text editors, licenses, question types and behaviors, plagiarism prevention, licenses, and availability restrictions.
Chapter 9, Moodle Configuration, deals with the educational and technical configuration of your Moodle system. Pedagogical topics that are covered are badges, collaboration (blogs, comments and tags), LTI, localization, grades and gradebook settings, and a number of miscellaneous parameters. Technical subjects that are dealt with include synchronous communication (instant messaging and video conferencing), asynchronous communication (inbound and messaging as well as RSS feeds), and a number of experimental settings.
Chapter 10, Moodle Logging and Reporting, equips you with the tools that you require in order to interpret and analyze the vast amount of usage data that Moodle is collecting. You will learn about the logging framework and monitoring facilities provided by Moodle that include activity reporting, user tracking, and some basic statistics. Then, we will take a look at third-party tools that cover learning analytics, report generation, web log analyzers, and live data trackers such as Google Analytics and Piwik.
Chapter 11, Moodle Security and Privacy, focuses on ensuring that the data in your Moodle system is protected from any misuse. You will learn about security notifications, user security, data and content security, and system security. We will conclude the chapter with information on privacy and data protection concerns.
Chapter 12, Moodle Performance and Optimization, makes sure that your Moodle system runs to its full potential. We will cover configuring, monitoring, and fine-tuning your virtual learning environment for maximum speed. You will learn how to optimize Moodle content before we focus on system parameters, namely, caching via the Moodle Universal Cache (MUC), session handling, cron management, scheduled tasks, module settings, and miscellaneous settings. We also present some basic performance profiling and monitoring tools.
Chapter 13, Backup and Restore, focuses on ensuring that your data would not be lost in the event of a disaster. We will cover course backups, site backups, system backups, and restoring data from the taken data archives.
Chapter 14, Moodle Admin Tools, covers Moodle admin tools that assist you with certain specific administrative tasks. These include web-based helpers such as upgrade and database tools as well as CLI scripts. We will also be looking at some add-ons, especially the powerful Moodle Shell, Moosh.
Chapter 15, Moodle Integration, looks at ways to integrate Moodle with other systems via web services. We will provide information about the basic concepts of Moodle web services before you learn how to set up external systems and users controlling Moodle. This also covers the support for the official mobile app.
Chapter 16, Moodle Networking, tells you how to connect disparate Moodle and Totara systems either in a peer-to-peer setup or via a Moodle hub. You will also be able to apply the learned networking techniques to connect the popular open source e-portfolio system, Mahara, and the social learning tool, Totara Social, to Moodle. We will further show you how to connect to Moodle.net and set up your own community hub.
Appendix, Configuration Settings, provides you with a list of parameters that can be modified in Moodle's configuration file and the impact that each of these values will have. The areas covered are Administration Settings and System Settings.
For Moodle, you must have the following components up and running on your server (at the time of writing for version 3.0):
PHP extensions: Moodle makes use of a number of PHP extensions—most of which are compiled in PHP by default.
Depending on your specific setup, additional software and hardware might be required.
This book is written for technicians and systems administrators as well as academic staff, that is, basically for anyone who has to administer a Moodle system. Whether you are dealing with a small-scale local Moodle system or a large-scale multi-site Virtual Learning Environment (VLE), this book will assist you with any administrative tasks. Some basic Moodle knowledge is helpful, but not essential.
A Moodle administrator is basically a VLE administrator who manages a Moodle system. A quick search through recruitment agencies specializing in the educational sector reveals a growing number of dedicated job titles that are closely related to VLE administration. A few examples are as follows:
The list does not include functions that regularly act in an administrative capacity, such as IT support. It also does not include roles that are situated in the pedagogical field, but often take on the work of a VLE administrator, such as learning technologists or e-learning coordinators.
A VLE administrator usually works very closely with the staff who has the responsibility for the administration of IT systems, databases, and networks. It has been proven beneficial to have some basic skills in these areas. Additionally, links are likely in larger organizations where content management systems, student information management systems, and other related infrastructure is present.
Given this growing number of VLE administration-related roles, let's look at some key obligations of the job functions and what skills are essential and desirable.
The responsibilities of a VLE administrator differ from organization to organization. However, there are some obligations that are common across installations and setups:
In addition to these VLE-specific features, you are required to make sure that the virtual learning environment is secure and stable and performs well. Backups have to be in place, monitoring has to be set up, reports about usage have to be produced, and regular system maintenance has to be carried out.
If you host your own system, you will be responsible for all of the listed tasks and many more. If your VLE is hosted in a managed environment, some of the tasks closer to system level will be carried out by the hosting provider. So, it is important that they have a good understanding of Moodle. Either way, you will be the first person to be contacted by staff and learners if anything goes wrong, if they require new functionality, or if some administrative task has to be carried out.
With great power comes great responsibility!
While a range of e-learning-related activities are now taught as part of some academic and vocational qualifications (for instance, instructional design or e-moderation), VLE administration per se is not. Most VLE administrators have a technical background and often have some system or database administration knowledge. Again, it entirely depends on whether you host your VLE locally or externally. The administration skills of a remotely hosted system can be learned by anybody with some technical knowledge. However, for an internally hosted system, you will require a good working knowledge of the operating system on which the VLE is installed, the underlying database that is used, the network in which the VLE has to operate, and any further components that have to work with the learning system.
In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.
Code words in text are shown as follows:
If the cron.php script is invoked over HTTP (either using wget or curl), more memory is used than calling directly via the php –f command.
Any command-line input and output is written as follows:
There are two ways you can create a so-called database dump from a MySQL database, either via command line or via Moodle's optional database interface.
The simplest syntax for the command line tool is:
New terms and important words are introduced in a bold-type font. Words that you see on the screen, in menus or dialog boxes for example, appear in our text like this:
Clicking on the Enabled protocols link in the overview table will guide you to Plugins | Web services | Manage protocols screen.
Warnings or important notes appear in a box like this.
Tips and tricks appear like this.
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply e-mail <[email protected]>, and mention the book's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
We also provide you with a PDF file that has color images of the screenshots/diagrams used in this book. The color images will help you better understand the changes in the output. You can download this file from http://www.packtpub.com/sites/default/files/downloads/Moodle3AdministrationThirdEdition_ColorImages.pdf.
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.
To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at <[email protected]> with a link to the suspected pirated material.
We appreciate your help in protecting our authors and our ability to bring you valuable content.
If you have a problem with any aspect of this book, you can contact us at <[email protected]>, and we will do our best to address the problem.
Let's get started by installing Moodle.
After providing an overview that describes which setup is most suitable, software as well as hardware requirements are outlined.
We will then cover the following installations:
You will only need to study the section(s) of the operating system(s) you are planning to use. Moodle can be scaled from a single instructor to an entire institution. We will only be able to cover the most common installations and present solutions to some common problems. We also have to assume that you are familiar with basic system administration of the operating system on which you will be installing Moodle.
Before we start installing Moodle, you have to decide which setup is right for your organization. Once you have come to a conclusion, there are a number of prerequisites that you have to provide before we can get started.
There are a number of different environments in which you can set up Moodle. The three main criteria that should dictate the choice of the correct setup are:
Max number of concurrent users
Recommended setup
1 (to experiment locally)
Desktop, laptop, memory stick
20 (single class)
Public server or https://moodlecloud.com/en/
100 (small school / company)
Shared server
250 (large school / company)
Dedicated server
500 (medium-to-large college)
Dedicated application and database servers
+500 (university/corporate)
Load-balanced cluster
Please bear in mind that these are only indicative numbers, which are not written in stone, and also depend on the other factors mentioned here. The mentioned hosting option on https://moodlecloud.com/en/ offers free Moodle hosting by Moodle HQ with a number of limitations: maximum number of users is set to 50, storage capacity is limited to 200 MB, there is no ability to install plugins, and there is advertisement displayed throughout the site. This is a good way to try out Moodle, but not intended for production sites.
Organizations require a server (either dedicated or shared) that is either hosted in-house or externally. If you decide to go down the hosted route, it is highly recommended to avoid a cheap hosting package as their systems are not optimized for Moodle usage. This will have a significant impact on the performance of the system, especially with an increasing number of users.
Cost: Budgetary constraints will certainly play an important role in your setup. Unless you already have the appropriate infrastructure in place, it is likely to be more cost-effective to host your Moodle system externally as it saves you from having to purchase servers and provide a 24/7 data connection that caters to your learners' needs. Licensing cost is significantly higher if you use commercial operating systems, web servers, and database systems, instead of an open source solution. Either way, Moodle is designed to support a wide range of possible infrastructures suitable to your organization's IT policy.In addition to these three key criteria that usually influence the decision about the underlying infrastructure, there are other factors that will have an impact on your decision, such as in-house expertise, compatibility with other systems, personal preference, and existing resources.
We will cover the three most popular operating systems for hosting Moodle—Linux, Windows, and Mac OS. For other setups such as on a memory stick, in a virtualized environment, or a larger multi-server cluster, please consult your local Moodle Partner (https://moodle.com/). Some hosting companies offer quick one-click installations (often via the Fantastico installer, which usually doesn't contain the latest version). While the resulting Moodle system is sufficient for experimental sites, it is certainly unsuitable for production environments.
There are a number of hardware and software requirements that have to be satisfied before we can start installing Moodle.
These requirements apply if you host Moodle yourself or if it is hosted on an external server (shared, virtual, dedicated, or clustered). On cheaper hosting packages, the hardware configuration is often insufficient to run Moodle efficiently:
The more RAM the better; the faster the RAM the better.
While it is recommend to have the latest version installed, for Moodle 3, you must have the following components up and running on your server (release specific notes can be found at https://docs.moodle.org/dev/Releases):
Depending on your specific setup, additional software and hardware might be required. It is assumed that the database, web server, PHP, and its extensions have been installed correctly as this is not a VLE administrator task. Once this is the case, we are ready to go.
Internet Explorer 8 is not supported by Moodle. A modern web browser (Internet Explorer 9+, Firefox 25+, Google Chrome 30+, or Safari 6+) is required to access Moodle.
Moodle is developed in Linux using Apache, MySQL, and PHP (known as theLAMP platform). If you have a choice, this is the preferred environment to use. There is ongoing debate whether PostgreSQL is the more suitable database option, but we will stick with MySQL as this is the system most administrators are familiar with. Also, some organizations are bound to Microsoft SQL or Oracle. If this is the case, please refer to the respective installation guide as this is beyond the scope of this book.
Go tohttps://download.moodle.org/ and select Latest release in the Standard Moodle section:
By the time of reading, a newer version is likely to be available. If you wish to go with the 3.0 version this book has been written for, select Other supported releases on the right; otherwise, feel free to go with the latest stable build; most content in this book will still be applicable.
There are five types of builds available on Moodle's download site:
Each version is made available in the two compressed formats: TGZ (use the tar command to uncompress) and ZIP (requires unzip). You can either download them by clicking on the respective link or, if you have (secure) shell access, retrieve the file directly by using the wget command:
The location where you install Moodle is referred to as dirroot.
If you make use of Moodle Shell (MOOSH), which is described in more detail in Chapter 14, Moodle Admin Tools, you can use the following command to download the latest stable branch of Moodle:
Once you have moved the file to the location where you want to install it on your web server (dirroot), extract the file using the unzip command (or tar xvfz if you downloaded the TGZ version). In a hosted environment, you might have to use the uncompressing method provided by the web administration interface (cPanel, Plesk, or any bespoke system):
If you place the entire folder in your web server documents directory, the site will be located at www.yourwebserver.com/moodle. To access your site from www.yourwebserver.com, copy the contents directly into the main web server's documents directory.
The URL via which Moodle is accessed is referred to as wwwroot.
Once this has been successfully done, you have to create the database that Moodle uses to store its data.
Moodle requires a database where it can store its information. While it is possible to share an existing database, it is highly recommended to create a separate database for Moodle. This can either be done via a web interface, as provided for hosted servers, or via the Unix command line.
Most hosting providers provide a dedicated web interface to carry out basic database operations. Alternatively, you can use phpMyAdmin, an open source software that allows you to manage MySQL databases over the Web. It is part of most Linux distributions and many control panels, such as CPanel or Plesk. (phpMyAdmin is often configured not to allow new databases to be created. If this is the case, you have to create the database from the database manager in your control panel.)
Once you have started phpMyAdmin, go to the Databases section and create a new database using the UTF collation (utf8_general_ci collation). You don't need to create any tables; Moodle will be populating the database during the installation process.
While you can use an existing database user account, it is good practice to create a dedicated user for the Moodle database. This step is carried out in the Privileges section.
Do not use the MySQL root account for your Moodle database!
phpMyAdmin allows you to perform both steps—creating a database and adding a new user—in a single action, as shown in the following screenshot. We will create a user, book, and also check the Create database with same name and grant all privileges option:
If you don't have access to a web interface to create MySQL databases and user accounts or if you prefer to use a Linux shell, you can perform these steps via the command line:
It is necessary to reload the grant tables using the following command line:
You have now completed the database setup. All we have to do now is to create Moodle's data directory before we are ready to start the installation of Moodle itself.
Moodle stores most of its information in the database you have just created. However, any uploaded files such as assignments or pictures are stored in a separate directory. This data directory in Moodle is usually referred to as moodledata.
The location which holds your Moodle data files is referred to as dataroot.
Later on, the Moodle installer will attempt to create this directory but, in some setups, this is not possible due to security restrictions. To be on the safe side, it is better to create moodledata manually or via a web-based file manager, as provided by some systems:
It is crucial to create moodledata on your server where it cannot be accessed publicly, that is, outside your web directory.
If you don't have permission to create the data directory in a secure location, create the .htaccess file in your home directory containing the following two lines:
This will prevent files from being accessed without the user having permissions to do so.
The installer script performs two main actions—populating the database and creating the configuration file, config.php. The Moodle installer is initiated by entering the URL of wwwroot (the location where you copied Moodle) into your web browser; Moodle will recognize that it hasn't been installed yet and start the process automatically.
The Moodle installer has to set a session cookie. If your browser has been configured to trigger a warning, make sure you accept that cookie.
The first screen lets you choose the language to be used during installation. This is not the locale used for Moodle, only the language for the installation:
The following screenshot displays the expected values for Web address of the site (wwwroot), Moodle directory (dirroot) and Data directory (dataroot); you might have to modify the data directory entry if the location of your moodledata differs:
If dataroot cannot be located or does not have the correct permissions, an error message with details will be displayed. The same applies if dataroot is accessible directly via the Web and is hence, not secure.
In the following screenshot, you have to select which database you wish to use. On my system, only the drivers for MySQL, MariaDB, and PostgresSQL are installed. To use other database systems such as Oracle or MS SQL Server, the respective driver has to be installed first.
This interface is using the configuration details previously established. The following screenshot will look slightly different if you have chosen a different database driver to the native MySQL:
Setting
Description
Database host
The default is localhost (127.0.0.1), which is correct if the database is located on the same server as the web server. If it is located on a separate server, specify the IP address (preferably unresolved, to improve performance).
Database name
Database user
Database password
This is the database name, user name, and password you enter when you run the mysql command.
Tables prefix
All the tables the Moodle installer is going to create will be prefixed with mdl_. This should only be changed if you run multiple Moodle installations using the same database.
Database port
This is the port of the database in your setup. It is usually empty or 3306.
Unix socket
If selected, the connection takes place through the file system as opposed to TCP/IP. A Unix socket file connection is marginally faster than TCP/IP, but it can only be used when connecting to a server on the same computer.
Once you see the following screen, you will know the Moodle configuration file, config.php, has been successfully created. If the creation of the configuration file fails (usually because of incorrect permissions), the installer will display the content of the configuration file. You will have to copy the text from the screen and paste it to config.php in your dirroot.
Before Moodle can proceed with the installation, you have to agree to the GPL license agreement. You find the full license text at https://docs.moodle.org/dev/License.
Once you have accepted the license agreement, the Moodle installer checks to see whether certain components are installed. Not all the modules are compulsory—see the Moodle prerequisites section in this chapter and notice on screen. The installer also verifies the key PHP settings. If any of the tests are not passed, it is important that you go back to the Software requirements section to resolve any problems and restart the installation process after the issues have been fixed. Otherwise, some features may not work or the installer will not continue, depending on the importance of the module.
Two common issues that arise when using MySQL are the prerequisite to use the InnoDB Barracuda file format and file-per-table mode. In both cases entries have to be added to the [mysqld] section in /etc/mysql/my.cnf (innodb_file_format=Barracuda and innodb_file_per_table, respectively).
Once this screen has been confirmed, the Moodle installer will create all the tables in the database. This process might take a few minutes.
Once the table creation and population has been concluded, you will see the screen to set up the administrator account. The default Username is admin, which should be changed for security reasons. The self-explanatory fields you have to fill in are New password, First name, Surname, Email address, City/town, and Select a country. All other fields are explained in great detail in Chapter 5, User Management.
The last screen of the installation script asks you to enter some front page settings, namely, the Full site name, Short name for site and Front page description. These front page settings can be modified later (see Chapter 7, Moodle Look and Feel). Additionally, the installer allows you to turn on Self registration. Leave this disabled for now, until you have covered Chapter 5, User Management.
Once this information has been entered and the screen has been confirmed, you are ready to start using Moodle. However, it is recommended to finalize the installation and to set up the execution of the Moodle maintenance script.
To make sure that Moodle is running without problems, go to Notifications in the Site administration menu in the Settings block:
In the case of my installation, there are two issues—a PHP setting has a value that is not recommended (I have to change this in the php.ini file) and the so-called cron maintenance script has not run for at least 24 hours. We will solve that mystery after we have registered our site. Other messages might appear in the Notifications area, and you should resolve them in due course.
Moodle provides some statistics about its usage on https://moodle.net/stats/. To be included in these figures, you have to register your Moodle site. Registration(below the Notification link) with https://moodle.org/ (MOOCH) is optional and free, and you decide what information will be made public. Even if you opt out of providing any usage patterns for your site, it is still highly recommended to register, as you will get occasional notices, for example, advanced security alerts:
The settings for the registration screen are as follows:
Field
Description
Name
The name of your site, as you just specified in the front page settings.
Privacy
You have these options:
Description
This is a short narrative describing your site.
Language
This is the language your site is published in.
Postal address/Country
Enter your address and select the country in which your organization is located.
Geolocation
This is the latitude and longitude of your location.
Administrator
Enter your name.
Phone/Email address
Enter your contact phone number and e-mail address.
Contact form
By default, Moodle creates a form for other Moodle users to contact you—this can be turned off.
Email notifications
By default, Moodle e-mails you important information, such as upgrades and security issues.
Site Url, Moodle version, Moodle release and More information
This is the data sent to https://moodle.org/ on a regular basis. This information will not be displayed to the public and will only be used for statistical purposes.
Moodle has to perform a number of background tasks on a regular basis. The script that performs these tasks is known as a cron script, and is executed by the cron process. An entire page has been dedicated to this in the Moodle documentation; you can find it at https://docs.moodle.org/en/Cron. It is important that you set up the cron process; otherwise, any timed Moodle features, such as scheduled backups, sending forum notifications, statistics processing, and so on, will not work.
The script, cron.php, is located in the admin directory and can be triggered manually through a web browser (unless your security settings have been changed). Once executed, the output from the script (http://yoursite/admin/cron.php) is shown on screen and you have to navigate back to your Moodle system manually.
Most control panels allow you to set up scheduled tasks via a cron job management tool. Bear in mind that this is not part of Moodle but a part of your hosting package. The following screenshot is from the widely used Plesk system, which executes the script every five minutes:
There are a number of ways to call the cron script. The most popular option in a Linux environment is wget –q –O /dev/null http://<yoursite>/admin/cron.php (see Command in the preceding screenshot). However, if this does not suit your setup, check out https://docs.moodle.org/en/Cron for alternatives.
The interface shown earlier creates an entry in crontab, a file located in the /etc directory that contains all the system-wide cron entries. This file can also be edited manually using crontab -e, but be careful to get the syntax right!
On larger sites, it is recommended to run the cron process every minute!
This concludes the installation process for Moodle in a LAMP environment. If you have come across any problems that have not been covered in these instructions or if your setup differs from the one described, go to https://docs.moodle.org/en/Installing_Moodle, where more installation details are provided and exceptions are covered in great detail.
XAMPP is a free Apache distribution that contains MySQL and PHP (as well as Perl) and exists for a number of operating systems. The Moodle distribution for Windows makes full use of XAMPP and is located at https://download.moodle.org/windows. The installation works on all the latest Windows PCs and server variants.
The XAMPP-based Moodle distribution is only suitable for servers with a small number of users. For larger Windows installations, you have to install Moodle manually. This involves installing a database server (MS SQL or any other support system), a web server (Microsoft IIS or Apache), and PHP, separately. You can find details about this process at https://docs.moodle.org/en/Windows_installation.
Once downloaded, follow these ensuring steps:
That's it! Your Moodle system is now up and running and you are now able to use Moodle locally or from a web browser on another machine as long as your IP address is accessible via the network you are on.
To stop using Moodle, double-click on StopMoodle.exe. If you have a firewall installed, you might have to allow the program to be executed.
Instead of starting and stopping Moodle manually, you can start Apache and MySQL automatically as Windows services. In the server directory of your Moodle system, you find an executable called service.exe, which you have to run with the -install parameter as administrator, as in the following example:
MAMP is a free distribution that contains Apache (and Nginx), MySQL, and PHP for Mac OS X. Like its Windows counterpart, the Moodle distributions for Mac OS X (10.4 or higher) are only intended for local installations and not for production environments. There is also a link on the download site for Mac server installation.
Moodle4Mac is available as universal binaries using MAMP, which is located at https://download.moodle.org/macosx. Once downloaded, follow these steps:
