I decided to start a fun new project by setting up a development environment for WordPress. My primary goals are to have something I can use on my desktop or laptop without worrying about cluttering up the operating system (OS)on my PCs or scattering project files all across my home network. My buddy Justin over at Chop Shop pointed me toward VirtualBox a while back, so I decided to dive in and give it a try. VirtualBox is a free, open-source virtualization application that allows you to set up virtual machines (VMs) quickly and easily. Virtual machines offer many benefits:
- They are “sandboxed” and won’t interfere with your OS installation
- They can be saved in a particular state, exported, and transferred to another VM host (so if I’m going on vacation I can copy my VMs from my desktop to my laptop)
- The same base VM installation (with the OS, Apache, MySQL, and PHP installed) can be saved and duplicated for multiple development environments (WordPress, Drupal, etc.)
- Modern hardware is designed to support virtualization technologies so performance is generally excellent
Typically, the primary (non-virtualized) OS on the computer is called the “host” operating system, and the virtual OS is called the “guest” operating system. I’ll be using those terms throughout this tutorial.
I don’t have any spare Windows licenses lying around, so I’m turning to Linux for my guest OS. I’ve had some experience with Ubuntu in the past, and I think the x86 version will work just fine for WordPress. I’ll also be using XAMPP for Linux (formerly LAMPP) as my application platform to host WordPress on.
Once my VM is set up with WordPress I will have a development environment that allows me to play around all I want without fear of messing up my host OS. If I happen to screw something up on my guest OS, I can always revert to a previous state in the VM as long as I remember to take “snapshots” of the VM while it is still functioning properly.
I am breaking this project down into three phases:
- Installing VirtualBox
- Installing Ubuntu
- Installing WordPress
I’ve dedicated a page for each phase of the project, and nearly every step has an accompanying screenshot below it. Jump to the next page and let’s get started!