Demystifying Drupal

Development Environments

January 25, 2013 - 5:44pm

NOTE: I have been working on this series of articles for a couple months, and kept feeling like they had to be complete before publishing. Now I realize that was foolish and it is more important to look at this as a work in progress series and start getting these out there! Projects that I haven't wrote up yet link directly to their respective official homes.  I am also open to feedback on how I can improve this resource for the beginning Drupal Site Builder.

All Drupal sites require PHP, a database, a web server and a host operating system to run on. The most popular combination runs on some form of Linux OS with Apache, MySQL, and PHP5; commonly referred to as the LAMP stack. Since the stack of OS and applications is the foundation of any website and you can't install Drupal without them, it seems fitting that the first series of articles start at the ground level. This series will explore a variety of easy options for putting together a development environment for Drupal. While it is possible to get Drupal to run on other platforms and stacks, LAMP is by far the most common.

Best practices would dictate that development be done in an environment as close to the production environment as possible, to avoid unforeseen conflicts and the "runs fine on my computer" scenario. Linux rules the shared hosting world and VPS hosts, so that is where we will focus. However, that doesn't mean you are out in the cold if you use Windows or OSX as your primary OS. We will also explore a few options for non-Linux environments also.

The plan is to show a variety of options with increasing complexity and capabilities. We will start with some solutions more suitable for those still evaluating Drupal and requiring very little setup, yet limited functionality and move on to more complex and feature rich options. It is worth noting that all of these solutions are aimed at development environments, and not production environments. They may all suffer from varying degrees of performance and security issues, if used in the wild.

The solutions below are part of a work in progress, not all posts are complete and will be subject to future additions and revisions.

Hosted Solutions (Saas) - No install required

  • Drupal Gardens is a Drupal Software as a Service (Saas) offering - no install required, sign up and go! While it is extremely simple to get started, growth potential is limited.
  • Pantheon offers a pre-built development environment for Drupal that can easily be transitioned into a production environment. While working with Pantheon is a little different than a local environment, it doesn't have the constraints of Drupal Gardens.

Self Contained - Single File Install

  • Acquia's Dev Desktop is a single file download, and a self contained Drupal environment that runs at the desktop level. The simplest environment  that can be ran locally.
  • XAMPP, WAMP & MAMP are similar to Dev Desktop, but are not Drupal specific. They will require Drupal installation, but offer the ability to run other projects as well.

Virtualized Solutions - VirtualBox or similar, real Linux base

  • VirtualBox is a cross platform application that allows you to run more than one operating system at the same time in a virtual machine environment. VirtualBox is very popular and easy to use. VirtualBox can be used with one of the "appliances" below, like Quickstart, Turnkey or Bitnami, or it can be used with a full OS install of your favorite Linux and configured to your taste.
  • Drupal Quickstart is a pre-packaged VirtualBox environment tailored just for Drupal. There are many Drupal related items added in. Drupal Quickstart is no longer maintained.
  • Turnkey Linux uses a common core stack and offers multiple "appliances" ready to go, including a LAMP environment and a couple Drupal environments. Stick to the LAMP version, and skip the Drupal ones. Installing Drupal isn't hard, and a 'must know' anyway.
  • DrupalPro is a prepackaged VirtualBox appliance that uses a desktop version of Ubuntu 12.04, to provide a development, and testing environment ready to go in a Linux GUI. Not for the faint of heart, but if you want to test the waters on using an alternate OS to develop in, this could be a good choice. The image is quite large, at 1.9 GB; as opposed to the images from Bitnami and TurnkeyLinux, which are only a few 100 MB.
  • Bitnami is similar to Turnkey Linux with pre-packaged appliances, but also offers solutions similar to Dev Desktop. While Bitnami is easy to get setup and play with, it does things very different from a typical production environment. So it may be confusing when you move to a live server.
  • Vagrant moves up the ladder a step, it is a command line layer that runs above VirtualBox and can create and manage VirtualBox appliances.
  • Barracuda is a serious powerhouse! It strays a bit from the formula, using the high performance NGINX web server, instead of Apache. It also leverages the amazing AEgir project that makes managing and developing multiple Drupal sites a dream!