Using Vagrant as a WordPress Development Environment: Part 2

In my previous post, I discussed installing and setting up Vagrant with a basic Ubuntu box and troubleshooting a snag I hit having Hyper-V activated. In this post, I’ll troubleshoot another Vagrant setup issue and adding Scotch Box, a Vagrant box designed for LAMP applications (including WordPress).

A Second Hiccup

After resolving the Hyper-V issue, I encountered another error after running “vagrant up”: the connection between Vagrant and VirtualBox timed out. Opening the VirtualBox GUI preview window showed a blank, black screen. Not very helpful.

Opening the VirtualBox “settings” screen, however, showed that my box was configured to use a very low amount of RAM. I upped this to 1024MB and re-ran “vagrant up” without any issues. The box booted successfully.

Important Configuration Settings

This all could have been avoided had the Vagrant quick start tutorial made note of two important settings within the “Vagrantfile”. On line 46, the following lines are commented out:

# config.vm.provider "virtualbox" do |vb|
#   # Display the VirtualBox GUI when booting the machine
#   vb.gui = true
#   # Customize the amount of memory on the VM:
#   vb.memory = "1024"
# end

Un-commenting those lines would have saved me an hour or so of frustration, giving the box the necessary RAM to boot and also allowing me to see the box as it boots, instead of only reading messages within the console.

A Vagrant Box for WordPress: Scotch Box

The last real steps of the Vagrant quick start tutorial call for SSH-ing into the fully booted box. I was happy just being able to boot the machine after a couple hours of tinkering, so I decided to save the SSH step for when I had a box I’d actually be using for development.

Some searching led me to Scotch Box, a complete LAMP stack solution for Vagrant that required little configuration after installation. I tried a couple other “WordPress” tagged boxes from the catalog, but none seemed ready-to-go, uhh, out-of-the-box.

There appears to be both a difficult way and an easy way to get Scotch Box up and running. Of course, I inadvertently chose the difficult route. Following the Vagrant instructions, I initialized my project directory and added the box from the catalog. After modifying my “Vagrantfile” to make sure I had enough RAM, I ran “vagrant up” and ran into another timeout issue, followed by a chain of other problems.

As it turns out, all of my troubles could have been avoided if I had simply cloned the Scotch Box repository on Github. Doing so would have given me a properly configured “Vagrantfile” and allowed the box to launch with the web-server accessible from my host machine.

In the next part of this series, I’ll SSH into Scotch Box, connect to the MySQL database and install WordPress using Yeoman.

Using Vagrant as a WordPress Development Environment: Part 1

In the past, I’ve used XAMPP for local WordPress theme development, but have been reading and hearing lots about Vagrant. Last weekend, I decided to give it a try.

Unlike XAMPP, the idea behind Vagrant is to run a virtualized OS environment from within a program like VirtualBox. These virtual environments are distributed via a catalog of base images (known as “boxes”). The catalog is comprised of user contributed and customized boxes. Vagrant has a nicely written tutorial on it’s site to get you started creating your first virtual environment from one of these boxes. Unfortunately, at least for me, there were some complications along the way.

Initial Setup

After installing both Vagrant and VirtualBox, and initializing your project directory, it’s time to install your first “box.” Vagrant recommends testing out a box called “hashicorp/precise32” which is a base image of Ubuntu 12.04 LTS 32-bit.

I’m primarily a Windows user, so I carried out all of my commands simply using the Windows Command prompt. After executing the “vagrant box add hashicorp/precise32” command, the box download begins. One of the nice things about Vagrant is that these boxes can be reused by multiple Vagrant environments, so there’s no need to download the same box twice.

Next, after downloading, it’s time to edit the auto-generated “Vagrantfile” to tell Vagrant that you’d like to use the box you’ve just downloaded as your virtual environment. Once configured and saved, it’s just a matter of returning to the command prompt and executing “vagrant up” to launch your box.

The First Hiccup

During the launch process, Vagrant boots up the specified Ubuntu box in VirtualBox. By default, you don’t see this process taking place from within the VirtualBox GUI — all we’re given are some messages on the command prompt relaying the boot status.

Of course, my first attempt at booting resulted in an error. Launching VirtualBox I was presented with an unhelpful error message:

VT-x is not available. (VERR_VMX_NO_VMX).

Turns out, VirtualBox does not play nice with Windows Hyper-V — VT-x is hardware virtualization that is usurped by Hyper-V and VirtualBox needs it to work. Disabling Hyper-V cleared this error, but uncovered another.

In the next part of this post series, I’ll wrap up troubleshooting my initial Vagrant setup, launch and SSH into the test Ubuntu box and take a look at a couple other boxes that come distributed with a LAMP stack for WordPress development.