Moodle development framework

What Is a Learning Management System?

Why Are Learning Management Systems Important?

An Overview of Moodle

Getting Started

  1. Install git
  2. Obtain a Moodle clone
  3. Establish branches and push to your GitHub repo
  1. 160 MB of storage space
  2. A minimum of 1GB RAM
  3. An additional 1 GB RAM for every 20 concurrent users
  4. Sudo privileges and firewall
  5. LAMP stack running on your machine

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

  1. Design MySQL database for Moodle data storage
  2. Implement a data structure anticipated in Moodle design
  3. Create a Moodle user in the database to allow access
$ 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
  1. Select your language
  2. Set /var/moodledata as your data directory
  3. Choose the database driver page and set to sql(native sql)
  4. Enter the Moodle authentication details you created (username and password)
  5. Agree to the terms and conditions
  6. Ensure the ‘Server Check’ page indicates that you have met all minimum requirements
  7. Moodle will install click continue at the bottom
  8. You should now have access to the administrator setup page
  9. Enter a preferred username
  10. Enter a password
  11. Enter an email
  12. Fill all required fields
  13. Select ‘Update Profiles
  1. Website name
  2. Short name
  3. Location
  4. Authorise self-registration via email
  5. Save changes
$ 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:

--

--

--

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:https://www.alibabacloud.com

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Performance of PostgreSQL Multi-Field Random Combination Searches

Hackathons 101

What can organizations who use RedHat OpenShift via IBM Cloud Paks do to ensure regulatory…

Dad Know A Lot Granddad Knows Everything Gift Shirt

Implementing an Operating System #2

Advanced SQL

My experience learning CUDA to accelerate Conway’s Game of Life

Go for Complete BedPad https://t.co/wjBDrWHZ94

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
Alibaba Cloud

Alibaba Cloud

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:https://www.alibabacloud.com

More from Medium

Meteor: using publish-subscribe pattern without MongoDB

All along when people asked me about how publish-subscribe works, I always used a great analogy to explain that: the radios. The radio station would be the publisher and those who were tuning their radios on this radio would be the subscribers.

Using own IP range with virtualization on dedicated servers

SHOW FULL PROCESSLIST in PostgreSQL

SHOW FULL PROCESSLIST in PostgreSQL

Weekly Digest #72