Yeah, you heard me, Windows! Some of you might be thinking, “What the heck is this guy talking about?”, but hear me out. One of the best ways to get more people using Drupal is to show them that it works on Windows, and can be developed on Windows easily. Windows is used by many more people than Mac or Linux. Some of you may be thinking, “oh man, I have to setup Microsoft Internet Information Server (IIS) or Apache for a Drupal Windows installation”, but I have a better solution for you. Let Acquia do the hard work for you and use the Drupal Dev Desktop. They have developed the best localized/virtual Drupal hosting solution for Windows that I have found. There are other “Drupal Stacks” out there, but Acquia has made a very solid development and testing tool with the Acquia Drupal Dev Desktop.
Aside from being able to setup a Drupal website quickly and easily, you can also manage your Drupal databases through PHPMyAdmin, which is accessible directly through the Drupal Dev Desktop interface. When creating a new site, you are able to setup a local hostname, which is useful for doing development of multiple client websites on your local machine. Each local Drupal installation is able to have it’s own file system location, database, and local hostname, so you can keep your projects organized.
Acquia Dev Desktop is really an all around great tool for developing sites on Windows, as the Acquia team has done an awesome job of giving you all the tools you need as a Drupal developer. You are able to create sites from scratch based off the default Acquia Drupal distribution, or you can import your own site including the file system and database. There are 3 different ways to import a site. One allows you to upload a dump file, one allows you to createa new database, and the other allows you to import your database from an existing MySQL server. This is very useful for working on a live site locally to make changes or creating new client project platforms. You should be starting to get the picture that the Acquia Dev Desktop is what you want to use if you want to deploy Drupal websites quickly and efficiently on the Windows operating system.
The Acquia Dev Desktop is one part of the puzzle here, but the other parts aren’t very hard to set up either, so just pay attention and you will see just how easy it is to be Developing like Drupal Ninja on Windows. Here are some quick links and descriptions of what else you are going to need before I start blabbing off again. The list may seem large, but all of the apps are quick installs from setup or archive.
- GetGnuWin32 - This package gets you started to be able to run all the commands that all the Linux and Mac users are so special to their O/S. You can use them on Windows too with GetGNUWin32. You will want to grab the latest version, currently 0.6.30 updated 9-7-2011. This is a managed distribution of GnuWin32 packages, which normally would have to be installed manually.
- Drush - Drush, if you don’t know is the Drupal Shell. It is just as it sounds if you know what a Linux shell is. You can manage much of your Drupal site through command line with Drush. You are going to want to grab the Drush for Windows 5.x branch or higher.
- Putty - Putty is required to generate the SSH key you need to connect to Git repositories on Drupal.org, Github, and elsewhere. It’s also the best tool for remote Linux/Ubuntu systems administration from a Windows machine.
- mysysgit - Git for Windows is music to anyone’s ears who does serious development for any software and has a Windows computer they don’t want to just collect dust. This package available from Google Code is just what you are looking for if you are looking to install Git on Windows. A handy extra that my graphic designer pointed out was that there is a Git Extensions package that allows you got run a Git GUI in Windows, which is pretty sweet for those who are afraid of command line.
- Notepad++ - Notepad++ is a free (as in "free speech" and also as in "free beer") source code editor and Notepad replacement that supports several languages and has advanced search and replace capabilities. At the time of the writing of this article, it was on version 6.1.8.
- Filezilla - Let’s face it, not every server supports Git or other version control systems, especially for client projects. Filezilla is a free, open source FTP solution providing both an FTP client and FTP server application for Windows. Their FTP client is available for Windows, Linux, and Mac.
- DiffMerge - Diffmerge is not an application specific to Windows, as it’s also available for Mac and Linux, but it is a very useful tool when working on code with diffs. It will actually allow you to easily copy and replace code from existing files within an easy to use interface, saving copies of your originals and a new merged file.
So that is it, the basic recipe for developing Drupal sites like a Drupal Ninja on Windows. Once you have all those programs installed, you will have a fairly awesome development environment setup within Windows for developing Drupal websites, Drupal modules, and Drupal themes. I used to use a Macbook Pro for all of my Drupal development work, as it was the best solution I had found up to that point for a local Drupal installation with MAMP. I loved my MBP for what it gave me then, but I don’t always like being on a laptop, and I definitely hate typing on one. I am a classic keyboard user, which goes back to my early days on the Commodore 64.
I have been trying to setup the perfect dev environment in Windows for a while, and the applications are finally all there to do it. It may seem like a massive setup, but if you are a gamer, and mostly a Windows user like myself, you will love being able to fire up your Windows 7 desktop or laptop and start cracking out Drupal code, or Drupal websites just as easy as someone on a Mac or Linux could do.
Well, I gotta keep it moving. Now you have some knowledge and some tools to get you building and developing Drupal websites in Windows. Make of it what you will Mac fans, but I don't like being limited to any one way, or operating system in this case, to develop websites for my clients. Enjoy.