Best Practices in Moodle Administration provides tips for optimizing Moodle performance and uptime. The presentation recommends establishing change management processes, using monitoring tools, automating user management, and following security best practices. It also demonstrates hands-on techniques for backups, debugging issues, and customizing themes.
2. Background and Context
●
Managed thousands of Moodle sites
●
Managed millions of Moodle user accounts
●
Over 10 years experience with Moodle
●
Tuning, scalability, and performance expert
●
Author of Moodle Module Development
3. Format
● Variety of tips / tricks
● Learn the possibilities
● Some hands on
● Ask questions!
● Share your tips
4. Getting to Know You
● How many new admins?
● How many running Moodle 2.5? Moodle
2.6? Moodle 2.7?
● Anyone running Moodle older than 2.5?
● Any Moodle 1.9 sites?
● Are you a 'geeky admin' or instructional
admin?
5. Getting to Know You
● How many host your own Moodle site?
● What OS are you running?
● What web server are you running?
● What database are you running?
● What are you hoping to learn today?
6. Outages
● 80% of failures are bad changes
● 80% of downtime finding the bad change
7. Moodle Mission Critical?
Use Change Management!
● Have a stakeholder change advisory board
● Who are our stakeholders?
● What should we control?
● What causes downtime?
● What causes user issues?
8. Hands-on
● Forming a Change Advisory Board
● Who?
● How often?
● What are we controlling?
9. Change Management Tips
● Control settings management
● Control module approval
● Control stack changes
● Document the how's and why's
● Be responsive
● Read the Visible Ops book
11. Admin Know Thy Server
● Monitoring: Cacti
● SNMP monitoring
● Round robin log storage
● Alerts and Notifications: Nagios
● SNMP alert system
● Have your servers page or text you!
12. ●
Linux most used for scalability
●
Windows lower performance for PHP
apps, but improving
●
Mac OSX forking performance issue
●
Apache and MySQL concurrency issue
Platform Selection
13. Performance Tips
● PHP Accelerator – APC / OPCache
● MySQL –
– Buffers and Query Caching
– Use InnoDB
– Use MariaDB build
● Sessions
● Moodle source code location
18. JMeter Benchmarking
● Simulates simultaneous user activity
● Gathers response and throughput results
● Not a browser can't test javascript
● Can use to measure +/- of changes
● Can use to estimate expected concurrency, but
harder
● Moodle 2.6 and onward has builtin integration
19. User Management
● Plan ahead Moodle sites grow fast!
● Measure twice cut once
● Automate
20.
Great combination: LDAP authentication with
external database enrolment
Automate account creation
Enrollment Plug-ins
− Automate course creation
− Automate teacher assignment
− Automate student enrollments
Synchronization scripts
A Better Way – Automate!
21.
Automate user creation, course creation and
enrolments
Use LDAP auth + external DB enrolment
Get higher adoption rates from instructors
Instructor can focus more time on teaching less on the
technology
Just-in-Case Model
23. Roles
● Avoid changing built in roles
● Remember reset defaults option
● Know what level to apply roles at
– 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
25. ●
Course backups not a full backup!
●
Disable automated course backups?
●
Yesterday instance
●
Backup Elements
●
Moodle code
●
Moodledata
●
Database
Backups Management
26. Hands-on
● Make a Moodle backup
– Copy Moodle source dir
– Copy Moodle data dir
– 'dump' database to sql file
27. ●
Use an issue tracker / ticket system
●
Get a detailed user report
●
Use Moodle debugger
●
Reproduce issue
●
Use search
●
Google
●
Moodle tracker
●
Moodle forums and docs
Finding and Fixing
28. Hands-on
● Enable debugging
● Site Admin → Development →
Debugging
● Increase debugging level
● Enable display
● Enable performance info
29. Moodle Issue Tracker
Use notification screen to confirm version
Moodle Issue Tracker
»Vote for bugs
»Set a watch your important bugs
»Store issue ID in your support system
for later reference
»http://tracker.moodle.org
31. 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
Consider long term availability
Consider security
32. Common Plug-in Types
● Blocks
● Activity modules
● Filters
● Auth
● Enrollment
● Local
● Themes
33. PhpMyAdmin / Adminer
Useful and powerful, but dangerous
Useful to pull reports not built into Moodle
Change settings not in GUI
Fix Moodle when “broken” by user error
Reset administrator password if locked out
35. MyODBC
Windows client software
Connect MySQL to desktop applications
Make ad hoc reports in MS Access, Excel,
Open Office, etc.
36. Various Admin Helpers
● Moodle debug
● General debugging
● Performance debugging
● phpinfo – confirm your php build
● iperf – test your network
● Iostat / sar – linux disk usage stats
● strace – see what a process is doing
37. Security
● Security report
● Use password salts
● User passwords – less secure then ever!
– Know about password managers like
lastpass and keepass
● Don't give web server user write
permissions to Moodle source
38. General Security
● Select Enterprise class OS with long term update
support.
● Automate updates / have set release schedule
● Moodledata outside of web root
● Try mod_sec
● Consider using weekly stable git for Moodle auto
updates
● Consider forced logins
● HTTPS logins
39. General Security
● Select Enterprise class OS with long term update
support.
● Automate updates / have set release schedule
● Moodledata outside of web root
● Try mod_sec
● Consider using weekly stable git for Moodle auto
updates
● Consider forced logins
● HTTPS logins
40. Hands-on
● Run security report
● Enable force logins
● Show secure logins setting
● Show kpass/last pass password manager
● Go to Moodle Docs security FAQ
41. 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.
42. Custom themes
Start with a basic theme
Copy existing theme to a new folder name
Prevents upgrades from wiping out
Test on a non-production site
Test with many browsers / screen sizes
45. What we do
● Expert advice and eLearning program review
● Evangelism and training
● Instructional design
● Custom development
● System tuning
● Performance assessment