Last updated March 24, 2013. Created by cossovich on February 8, 2012.
Edited by rj, johntelford, OpenChimp, jstrosch. 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 -vThe 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
- mysql
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
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.8.tar.gz
tar -zxf drush-7.x-5.8.tar.gzNow 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/drushThat completes the installation and setup of Drush in the Cygwin environment, test it out by running drush from the command line:
drushYou should get an output of all the drush commands available.
Comments
drush with cygwin
I installed cygwin, work very well, Drush is also ok but doesn't recognise when in a valid drupal root folder
I used a symbolic link to my xampp htdocs (on windows) and here what i get:
PHP configuration : C:\xampp\php\php.ini
Drush version : 6.0-dev
Drush configuration :
Drush alias files : C:\cygwin\usr\local\src\drush\includes/../aliases.dru
shrc.php /drush/aliases.drushrc.php
I get the same result when I copy the folder under /home/my-name/home/www/drupal (equivalent to c:\cygwin\home\my-name\home\www\drupal ) to avoid the question of the symbolic link
I manage to run a makefile in a new folder but if drupal got installed, I don't understand what's happening when launching a drush dl features for example. I get a success message but nothing happens in the folder
excellent!
Thanks for posting this. Everything worked as described with drush 5.8 on a windows 7 machine. After installation I can easily open cygwin prompt, navigate to my xampp site root, and drush to my heart's desire. Yes!
Steve Or Steven
Great Info Here
I've been able to successfully do this on 3 Windows machines now. Thank's for making the Drupal experience easier for us! (We have no choice over server environments...)
Using git?
If you're using cygwin + git and authenticating with ssh keys, you may get an error about a ca-crt key not being properly configured. Install the ca-certificates package to fix this.
Also, in git you will want to set core.autocrlf to FALSE. This fixes a problem where you do a git pull but then a git status shows that all the files you just pulled have been modified.
git config --global core.autocrlf false--
R.J. Townsend
RobertJTownsend.com