I installed Moodle 5 in a subdomain (letsdothis.writertech.com) and link to it via the Let’s Do This menu item. It should open in a new browser tab. The purpose is to demonstrate one way to integrate an LMS/LXP into a site. A second purpose is to use Moodle to test learning objects and settings prior to loading to another LMS. I periodically update to the latest build. The process to update Moodle can fairly be described as unusual.
✅ Why Moodle’s Update Process Feels Unusual
Most PHP web apps today — WordPress, Joomla, Nextcloud, Drupal — allow in‑browser auto‑updates or at least in‑place file replacement.
But Moodle is different for architectural reasons:
✔ It never overwrites itself
Moodle intentionally avoids auto‑modifying core files, because it is heavily used in universities with strict version control, change‑freeze windows, and custom plugins.
✔ File‑level integrity is important
Administrators often maintain:
custom themes
custom modules
manual patches
heavy plugin ecosystems
So Moodle enforces a clean swap of the entire application directory, not a mix‑and‑match overwrite.
✔ Moodle separates application code from user data
All content (courses, files, cache) live in:
moodledata directory
database
The application folder (/moodle/) should be disposable and replaceable.
This is why updates involve directory replacements instead of incremental patches.
This design goes back to Moodle’s early days and remains deliberate.