Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Best Practices In Moodle Administration

12,697 views

Published on

Best Practices In Moodle Administration

Published in: Technology
  • Be the first to comment

Best Practices In Moodle Administration

  1. 1. Best Practices in Moodle Administration Jonathan Moore Founder
  2. 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. 3. Format ● Variety of tips / tricks ● Learn the possibilities ● Some hands on ● Ask questions! ● Share your tips
  4. 4. Getting to Know You ● How many were in this session last year? ● Interest in new features in 2.8 / 2.9?
  5. 5. Getting to Know You ● How many new admins? ● How many running Moodle 2.6? Moodle 2.7? Moodle 2.8? ● Anyone running Moodle older than 2.6? ● Any Moodle 1.9 sites? ● Are you a 'geeky
  6. 6. 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?
  7. 7. Outages ● 80% of failures are bad changes ● 80% of downtime finding the bad change
  8. 8. Outages ● 80% of failures are bad changes ● 80% of downtime finding the bad change
  9. 9. 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?
  10. 10. Hands-on ● Forming a Change Advisory Board ● Who? ● How often? ● What are we controlling?
  11. 11. 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
  12. 12. Hands-on ● Local Moodle install ● Moodle.org – Downloads – Current builds – Choose Mac / PC
  13. 13. Admin Know Thy Server ● Monitoring: Cacti / Zennoss ● SNMP monitoring ● Round robin log storage ● Alerts and Notifications: Nagios ● SNMP alert system ● Have your servers page or text you!
  14. 14. ● 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
  15. 15. Performance Tips ● PHP Accelerator – APC / OPCache ● MySQL – – Buffers and Query Caching – Use InnoDB – Use MariaDB build ● Sessions ● Moodle source code location
  16. 16. Performance Tweaking ● Memory Budget ● Concurrency ● 5 Things Making Your Site Slow ● Testing
  17. 17. Hands-on ● Visit phpinfo ● Site Administration → Server → phpInfo ● Confirm PHP version ● Confirm if PHP Accelerator
  18. 18. More Tips ● Batch cron.php runs for multiple Moodles ● Check state of indexes and bigints ● Perform database maintenance
  19. 19. Performance Testing Tools ● Admins – jMeter – Apache ab utility ● Devs – Behat / Sellenium – XProf
  20. 20. 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
  21. 21. User Management ● Plan ahead Moodle sites grow fast! ● Measure twice cut once ● Automate
  22. 22.  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!
  23. 23.  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
  24. 24. Hands-on ● Bulk upload users with a flat file ● External DB enrollmet setup
  25. 25. 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
  26. 26. Hands-on ● Duplicate a role and edit
  27. 27. ● Course backups not a full backup! ● Disable automated course backups? ● Yesterday instance ● Backup Elements ● Moodle code ● Moodledata ● Database Backups Management
  28. 28. Hands-on ● Make a Moodle backup – Copy Moodle source dir – Copy Moodle data dir – 'dump' database to sql file
  29. 29. ● 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
  30. 30. Hands-on ● Enable debugging ● Site Admin → Development → Debugging ● Increase debugging level ● Enable display ● Enable performance info
  31. 31. 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
  32. 32. Hands-on ● Visit issue tracker ● Http://tracker.moodle.org
  33. 33. 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
  34. 34. Common Plug-in Types ● Blocks ● Activity modules ● Filters ● Auth ● Enrollment ● Local ● Themes
  35. 35. 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
  36. 36. Hands-on ● Install the certificate module ● Install Adminer
  37. 37. MyODBC  Windows client software  Connect MySQL to desktop applications  Make ad hoc reports in MS Access, Excel, Open Office, etc.
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. Hands-on ● Run security report ● Enable force logins ● Show secure logins setting ● Show kpass/last pass password manager ● Go to Moodle Docs security FAQ
  43. 43. 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.
  44. 44. 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. 45. Hands-on ● Change theme ● Open theme settings ● Add image ● Change colors
  46. 46. Questions? ● http://elearningconsultancy.com ● jonathan@elearningconsultancy.com ● Twitter: @moorejon ● Skype: moorejon07
  47. 47. What we do ● Expert advice and eLearning program review ● Evangelism and training ● Instructional design ● Custom development ● System tuning ● Performance assessment

×