I work quite often with Drupal doing various tasks like setting up temporary sites to test out new modules, develop custom modules, and demo Drupal's capabilities to clients and co-workers. For years I've done this on Windows-based machines. I've found over time that I spend quite a bit of time doing tasks that I have very little interest in, just to get to a point where I can enjoy working with Drupal. Some of these tasks include:
- Creating databases
- Setting up database users
- Configuring DNS / host files
- Configuring virtual hosts
- Manually downloading drupal core, modules, themes
- Running the drupal install (yes I like to start with fresh installs for some things)
Windows isn't the easiest to develop on when working with Drupal. I want to mimic the *AMP stack as close as possible and stay clear of IIS. I tried several options to reduce those tasks.
I also gave the Acquia stack (Dev Desktop) a run for a short while. Dev Desktop handled most of the apache / mysql setup and actually did a great job of importing existing sites to test upgrades, patches, new modules, etc. I was still left manually handling dealing with modules and themes, but I could live with this. It got me closer to getting into the weeds of what I enjoyed. Where the Dev Desktop eventually failed me however was during development. I use Komodo IDE 6 for development and debugging and I prefer to have code intelligence (i.e. autocomplete) for PHP and Drupal functions. I've been unable to get Komodo (or Eclipse) to recognize the existence of PHP from the Acquia Stack.
So I made the trip back to WAMP / XAMPP and figured I would see if I can add Drush into the mix to try and alleviate some of the mundane tasks. Unfortunately Drush on Windows still has quite a few issues and isn't the most reliable. At times it ended up causing more issues and I had to spend time correcting them or starting over.
I was contemplating dual booting Ubuntu but quickly turned that idea out. I didn't want to deal with rebooting each time to switch environments and didn't need to put my wife through figuring out what to do if I left Ubuntu left open.
Luckily I came across a recent project a few months ago that changed everything.
From the project page: "A pre-packaged downloadable PHP Development Environment for Drupal"
The Youtube Channel provides a video demo of Quickstart's capabilities.
Author: Michael Cole
Drupal Group: Quickstart Drupal Development Environment
At a high level, Quickstart provides a Virtualbox (Ubuntu 10.04 guest) appliance of a Drupal development machine with some additional Drush scripts. This has drastically decreased my setup / configuration time spent with Drupal. The Virtualbox installation was a breeze. There were a few steps to make sure Ubuntu and Drush were the latest but then I was quickly on to Drupal fun time!
Quickstart Drush Scripts
Where I think Quickstart excels is with the additional Drush scripts it provides. Taking a look at one of the Quickstart documentation pages we can see an example of one of these scripts.
$ drush quickstart-create all --domain=example1.dev
This command will download the latest core, create the database and db user, configure apache / virtual hosts, DNS, and run the Drupal install with the default profile. Boom! I can now open up my browser to example1.dev and start working with Drupal. When I'm done with this particular temporary solution, we simply use the quickstart-delete Drush command to remove all traces.
We can also create different make files and utilize those with the quickstart-create command. Simply add the --makefile=mymakefile.make parameter.
One thing to note is that the quickstart-create will create a new instance of Drupal in it's own folder, database, etc. Where Quickstart isn't quite up to speed yet is handling multi-site "quick" installs. From the looks of it however, it appears that this is an upcoming feature.