Moodle development framework

What Is a Learning Management System?

Why Are Learning Management Systems Important?

An Overview of Moodle

Getting Started

Install Moodle on Ubuntu 16.04

$ sudo apt-get update
$ sudo apt-get install aspell graphviz php7.0-curl 
php7.0-gd php7.0-intl php7.0-ldap php7.0-mysql php7.0-pspell php7.0-xml php7.0-xmlrpc php7.0-zip
$ sudo systemctl restart apache2
$ curl -L https://download.moodle.org/download.php/direct/stable32/moodle-latest-32.tgz > moodle.tgz
$ sudo tar -xvzf moodle.tgz -C /var/www/html
$ ls /var/www/html
Output
index.html moodle
Output
admin composer.json grade
message README.txt
auth composer.lock group mnet
report
availability config-dist.php Gruntfile.js mod
repository
backup config.php help_ajax.php my
rss
badges CONTRIBUTING.txt help.php notes
search
behat.yml.dist COPYING.txt index.php npm-
shrinkwrap.json tag
blocks course install
package.json tags.txt
blog dataformat install.php
phpunit.xml.dist theme
brokenfile.php draftfile.php INSTALL.txt pix
TRADEMARK.txt
cache enrol iplookup
plagiarism user
calendar error lang
pluginfile.php userpix
cohort file.php lib
portfolio version.php
comment files local
PULL_REQUEST_TEMPLATE.txt webservice
competency filter login
question
completion githash.php media rating
$ sudo mkdir /var/moodledata
$ sudo chown -R www-data /var/moodledata
$ sudo chmod -R 0770 /var/moodledata

Database Configuration

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
mysqld configuration
...
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
## We have done away with skip-networking and opted to listen only on localhost for compatibility and security reasons.
...
$ sudo systemctl restart mysql
$ mysql -u root -p
mysql> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
mysql> create user 'moodler'@'localhost' IDENTIFIED BY 'moodlerpassword';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodler'@'localhost' IDENTIFIED BY 'moodlerpassword';
mysql> quit;

Browser Configuration

$ sudo chmod -R 777 /var/www/html/moodle
$ sudo chmod -R 0755 /var/www/html/moodle
$ sudo nano /var/www/html/moodle/config.php
config.php
$CFG->directorypermissions = 0777;
config.php
$CFG->directorypermissions = 0770;
$ sudo chmod -R 0770 /var/moodledata

Creating Your First Course

Conclusion

Resources:

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store