Last updated 2 December 2017. Created on 8 February 2012.
Edited by hansfn, Jean Gionet, rj, johntelford. Log in to edit this page.

This is an alternative way to get Drush running on a Windows 7 system using the Cygwin environment. There is existing documentation on installing and running Drush using GnuWin tools and the native Windows shell at: http://drupal.org/node/594744

If you would like develop Drupal projects on Windows 7 using installation profiles, Drush Make and Git, the Cygwin environment provides a powerful toolset which matches configurations that you would might find on Linux or OS X . More information about using Drush Make to develop installation profiles can be found at: http://drupal.org/node/1006620

Requirements

Before you start installing the Cygwin environment you will need to make sure you have an existing installation of PHP on your Windows system which can be called from the command line of a shell program. Installing PHP on Windows 7 is outside the scope of this article but we'll assume you have already installed XAMPP or something. A default installation of XAMPP will mean that a PHP executable is installed at the path C:\xampp\php\php.exe. This article also assumes that you do not have Windows User Account Control active. There are many articles around the web which explain how to disable it, search for "Disable Windows 7 User Account Control".

To check that PHP is available from your PATH environment variable open the program Command Prompt. Command Prompt is the default shell program for Windows 7, you will find it in your Start menu or you can search for cmd.exe. Test that PHP available by running the command:

php -v

The output should look something like this:

PHP 5.3.8 (cli) (built: Aug 23 2011 11:50:20)
...

If you get an error that starts with "php is not recognized..." you might need to add the folder containing your PHP executable to the PATH variable. To edit the PATH go to Control Panel > System and Security > System > Advance System Settings > Advanced tab > click the Environment Variables button. In the lower section of the Environment Variables window under System variables select Path, then click Edit.

Assuming that C:\xampp\php\php.exe exists you need to add the following folder to PATH, making sure you separate your new entry with a semicolon.
;C:\xampp\php

Now re-open Command Prompt (you will need to close it first to reload the updated PATH variable) and try typing "php -v". You should see the friendly version number output from PHP. If you still get errors you will need to double check your PHP installation.

Installing Cygwin

Grab the Cygwin Setup program from the homepage of the Cygwin site at: http://www.cygwin.com/

When you run the Cygwin setup.exe program it will select a number of packages to install by default, when you arrive at the Select Packages screen of the setup program you need to install the following additional packages:

  • openssh
  • git
  • rxvt
  • patch
  • patchutils
  • unzip
  • nano
  • vim
  • wget
  • connect-proxy
  • curl
  • rsync
  • bsdtar
  • ncurses

Cygwin Setup will install some additional dependencies and then generate a number of Desktop Shortcuts and Start menu items for the various Cygwin shell programs which have been installed. After you've exited the Cygwin installer you can always install more packages by running the Cygwin setup.exe program again. You won't overwrite your existing installation, you will just be able to add further packages.

Installing Drush using Cygwin

The instructions below are outdated as Drush should be installed using Composer - 2nd of December 2017.

Now that we've got all the required tools we can move onto installing Drush in the Cygwin environment. We will be installing the latest All-versions-5.x-dev version of Drush because it has better support for Windows 7 and also has Drush Make built-in.

To access the Cygwin environment open the Cygwin shell program called rxvt-native. We are going to install Drush in Cygwin at the path /usr/local/src/. In the following step we will download Drush and extract the files from the project archive (at the time of writing the latest version of Drush 5 was a development release, use the latest recommended release of Drush 5 if there has been an update in the meantime). You can find the download link we use below from the Drush project page: http://drupal.org/project/drush

From the command line, type each line in the following text as a separate command:

mkdir -p /usr/local/src
cd /usr/local/src
wget http://ftp.drupal.org/files/projects/drush-7.x-5.9.tar.gz 
tar -zxf drush-7.x-5.9.tar.gz

Now we should have all the Drush project files at the path /usr/local/src/drush so that the main Drush script is located at /usr/local/src/drush/drush. To complete the installation we need to make some files executable and create a symbolic link so that we can run Drush from anywhere inside Cygwin.

chmod u+x /usr/local/src/drush/drush
chmod u+x /usr/local/src/drush/drush.bat
ln -s /usr/local/src/drush/drush.bat /usr/bin/drush

That completes the installation and setup of Drush in the Cygwin environment, test it out by running drush from the command line:

drush

You should get an output of all the drush commands available.

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.