Join George Papazian for an in-depth discussion in this video Comparing development environments: local server, production server, and Sandbox installation, part of Moodle Administration Essential Training.
- Let's compare some development environments in this video. Since your Moodle installation may be in use 24 hours around the clock, you don't just want to do development work directly on the live site. That would be pretty reckless. Instead, you need to split your work over a few development phases. The topic of development environments is a big one. There are so many options and scenarios, that it's impossible to find a one-size fits all approach. If you are a small scale, freelance web developer, you may be used to dealing with two, or maybe even one type of development phase in your development.
On the other hand, if you work for a large .COM, you may be used to working with five or more development phases with tons of precautionary protocol in between. To simulate a typical, real-world scenario, we're gonna look at three sequences of phases for publishing with Moodle on two different kinds of servers. The first one is testing on a local server. The second one is testing on a non-public production server. And third one is migrating to a live site on the production server. Let's start with the first phase, what we'll call our Sandbox local server setup.
For this course, that will consist of a local server called XAMPP for Windows or Mac, or LAMP for Linux, depending on what operating system you're running. We'll talk more about the setup of your local server in the next video. What you need to know for now though, is the purpose of the Sandbox installation itself. As the name suggests, it's for experimentation of new configurations and plugins. Moodle is quite a complex system, with new plugins and upgrades coming out very frequently. You'll need a safe, fast environment to test these out without worrying about blowing up your Moodle site, and that's where your Sandbox site on your local server comes in.
The second phase will be your test site on the production server. This will be exactly the same server as the one your live site lives on, but just using a completely separate Moodle installation. Once you've experimented with a new configuration, plugin, or upgrade, the purpose of this server is to apply the new change, using exactly the same server settings as your live site. The way a CMS functions can be very sensitive to specific server settings. Having this non-public test site as a buffer minimizes the risk of your live site having an adverse reaction to one of your modifications.
Remember, Moodle is often used for live online learning. It's very likely that people will be using the site on almost a 24-hour basis. Skipping the testing phase during development might mean that you cause the site to crash hours before something crucial, like right before the deadline of final assignments. The third phase is migrating to the live site. Even when you do this, best practices dictate that you'll need to temporarily shutdown the live site while changes are applied. You'll need to announce a maintenance downtime to the entire school days in advance.
And just like construction work on a bridge, it's best to schedule this during off-hours, such as late night or over the weekend. Bummer for you that you have to work off-hours, but that's the way it goes. If you want to avoid catastrophic crashes, re-installations, and a lot of angry admin staff, using the protocol of the three Moodle development phases that I just covered are critical when working with Moodle administration in the real world. In this course, we're mainly gonna focus on the first installation, the Sandbox site, since we're mainly just experimenting.
That being said, I'll be making some references to working with the other environments as we go. So it's important at this point that you understand the difference between working between the three.
- Configuring your local server with XAMPP or LAMP
- Installing Moodle
- Connecting to the database
- Installing cron and automating cron jobs
- Creating views
- Changing primary settings
- Adding and managing users and cohorts
- Setting roles and permissions
- Creating and managing courses
- Applying themes
- Working with plugins
- Keeping your Moodle site secure