Best Practices in Moodle Administration A variety of topics from

advertisement
Best Practices in Moodle
Administration
A variety of topics from technical to practical
Jonathan Moore
Vice President
Remote-Learner
Moodle 1.9 Extension Development
Develop your own blocks,
activities, filters, and
organize your content
with secure code
Thoroughly covers key
libraries of Moodle and
best practices to use
them
Explore the Moodle
architectural concepts,
how it is structured, and
how it works
Detailed examples and
Background and Context


Origin of Practices
 Nearly 1,000 hosted organizations
 Approximately 3 million hosted user
accounts
 Dedicated technical and instructional
teams
 Using Moodle since 1.0
A variety of topics from technical to
practical for Administrators
Know What is Happening on
Your Server

Monitoring: Cacti



SNMP monitoring
Round robin log storage
Alerts and Notifications: Nagios


SNMP alert system
Have your servers page or text you!
Roles

Do not change built in roles


Know what level to apply roles at





Remember reset defaults option
Admin: global
Course Creator: global, or category
Student, Teacher: course
Know what level capabilities work at
Make new roles by copying most similar
existing role
Easy performance optimizations

Run a PHP accelerator



MySQL





eAccelerator and APC
up to 10x performance improvement
Query caching
Increase buffer sizes
Set Server-> System Paths
Batch cron.php runs for multiple Moodles
Check state of indexes and bigints
A Better Way - Automation


Great combination: LDAP authentication
with external database enrollment
External authentication

Automate account creation


Enrollment Plug ins




LDAP/Active Directory and Database
Automate course creation
Automate teacher assignment
Automate student enrollments
Synchronization scripts
Backups



Recommend against using the internal
automated course backups due to
performance issues.
Internal Moodle Backups not for disaster
recovery
Elements of a Moodle Backup




Moodle software
Moodle data folder
SQL data
Moodle yesterday instance
Platform Selection



Linux most used for scalability
Windows significantly lower performance
for PHP apps
Mac OSX forking performance issue

Apache and MySQL concurrency issue
Issue Tracker


Use notification screen to confirm version
Moodle Issue Tracker


Vote for bugs
Set a Watch your important bugs
phpMyAdmin





Useful and powerful, but dangerous
Useful to pull reports not built into
Moodle
Change settings values not in GUI
Fix Moodle when “broken” by user error
Reset administrator password if locked
out
MyODBC



Windows client software
Connect MySQL to desktop applications
Make ad hoc reports in MS Access,
Excel, Open Office, etc.
Various Other Admin Tools

Moodle debug






General debugging
Performance debugging
phpinfo – confirm your php build
iperf – test your network
iostat – linux disk usage stats
strace – see what a process is doing
Custom Development and
Modules




Don't load modules just because they are
available
Use modules over “hacks”
Use the forums to evaluate modules
Use the author's profile to research the
creator
Security






Select Enterprise class OS with long term
update support. Automate updates
Moodledata outside of web root
Try mod_sec
Consider using weekly stable cvs for
Moodle auto updates
Consider forced logins
HTTPS logins
More Security



Consider turning off self registration
Set the Mysql root user password
See Moodle Docs Security Page

http://docs.moodle.org/en/Security
Email delivery



Make sure you have valid reverse DNS
Make sure you have permission to send
email for primary administrator's email
account
Use email debug to help diagnose
problems.
Custom themes



Start with a basic theme
Copy existing theme to a new folder
name
Prevents upgrades from wiping out
Location and Language


Use geography based time zones over
UTC (for new US daylight savings time)
Set an appropriate default language
language (fix “spelling errors”) default is
UK English
Questions?

Download