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?