Last updated September 23, 2015. Created on October 3, 2009.
Edited by hass, Manjit.Singh, SebCorbin, pkiff. Log in to edit this page.

Install Drush on Windows - The easy way.

Installing latest Drush on Windows is no more fun. Since composer is required everything has changed to the bad. The documentation on drush.org and composer is incomplete and lacks highly important requirements.

Here are the complete steps you need to take:

  1. Install Cygwin
    1. Install ncurses package. You need to select ncurses manually in cygwin setup. If you miss to install this you will get an error message that tput is missing.
    2. Install Git package
    3. Install bsdtar package or you cannot restore archives and get errors like Unable to untar and Unable to extract site archive tarball.
    4. Install Curl package or you cannot disable modules.
  2. Now install Composer for Windows globally.
  3. Install Drush the common way. e.g. Drush 7.x (stable):

    composer global require drush/drush:7.*
    

NOTE: Drush cannot run with GnuWin32 as it has no sh.exe support.

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

Comments

rayvan’s picture

Although this is elaborated on the issue resolution - it should be clarified here also. The PATH environment variable should be assigned by going to My Computer > Right-click any blank area inside window > Properties > Advanced tab > Environment Variables > System Variables > select PATH & edit as described.

This instruction is for Windows XP SP3 32-bit.

Thank you,
Ivan

DanChadwick’s picture

On Windows 8.1, for reasons I don't understand, drush 6.0 installed fine via the windows installer and ran from the DOS command window, but would not run from the git bash window. Only the system path was recognized. I added the PHP path to the system path, and it work. I removed it (leaving it in the user path), and it still worked. Perhaps some odd caching??

tostinni’s picture

On windows XP, %* works and accept all arguments, so I'm not sure you need to put %1 %2..., although setting up this would limit you to 9 arguments...

silvis’s picture

Works on Windows 7 Home Premium 64-bit.

kantu’s picture

I tried this
drush dl cck
i get an alert saying libssl32.dll not found
It didnt work even after installin .dll file

najibx’s picture

A little variation that works for me.

1. Added path

;C:\Program Files (x86)\PHP;C:\inetpub\wwwroot\drush;C:\Program Files (x86)\GnuWin32\bin;C:\Program Files\MySQL\MySQL Server 5.1\bin

2. For drush.bat, keep the original. No need to change anything. Although as recommend to put the full path to php.

Drush ruless !

Disney’s picture

Due to respect to all experienced ppl, how do I copy an .exe to another .exe? I dont understand the following instruction:

Copy the file C:\Program Files\GnuWin32\bin\bsdtar.exe to C:\Program Files\GnuWin32\bin\tar.exe

???

coreyp_1’s picture

Check out the installation video mentioned above, at http://vimeo.com/15371661 , as it shows the process.

totoro’s picture

It looks like I also need SSH. Can't find it within gnuwin. Any clues?

coreyp_1’s picture

Generally speaking, you don't need ssh to install drush on windows on a personal development environment such as your laptop. If you are trying to connect to a remote server, then you may need ssh, in which case you can either use PuTTY or Cygwin. You can see more information here.

If you are trying to follow these instructions on a server, you might run into a few problems because you probably won't have the permissions to install the gnuwin32 programs or alter the path variables. You'll have to talk to your hosting provider.

decibel.places’s picture

$ drush or $drush.bat both work on Windows
I was under the impression that I had to call drush.bat on Windows but drush works fine as an alias

sonicthoughts’s picture

I've not been successful. there are some known issues but was hoping someone had a workaround. I'm at the point of building a virtual linux stack on my windows machine...

kurkuma’s picture

I have successfully installed drush on Win7, independently of my WAMP (http://www.wampserver.com/en/) installation (drush in its own directory outside WAMP and with a different version of php).
The layout is like this:
c:\wamp
e:\drush
e:\gnuwin32
e:\php <-- used with drush (zipped, not installed)

thamas’s picture

When using xampp on windows you may get warnings like "PHP Startup: Unable to load dynamic library (...)".

In this case look at the php.ini file (since xampp 1.7.1 in the xampp\php folder see: http://www.apachefriends.org/en/faq-xampp-windows.html#phpini).

I had to change the line 'extension_dir = "\xampp\php\ext"' to 'extension_dir = "E:\xampp\php\ext"' and do the same for browscap.

kurkuma’s picture

If you download the zip versions of the binary packages, do not forget to download the dependencies as well.

ocamp’s picture

when I open the bat file I just get @echo off
REM See http://drupal.org/node/506448 for more information.
@php.exe "%~dp0drush.php" %*

what am i supposed to do to the bat file?

g35nightrider’s picture

Can someone clarify Step 2? Copy to the directory? Why is it telling us to copy to the ...exe file?

decibel.places’s picture

it means: Copy AND RENAME the file C:\Program Files\GnuWin32\bin\bsdtar.exe to C:\Program Files\GnuWin32\bin\tar.exe

In shell scripting the copy command can also rename a file, so copying to a new filename implies renaming it.

You should learn how to use the Windows command terminal (cmd.exe) which basically uses DOS syntax. You will need to use it for Drush on Windows. There are also replacements for the default teminal, such as Console.

electronicmonkey’s picture

My path to php c:\wamp\bin\php
path to Drush c:\wamp\www\drush

I ran "drush' on cmd and get the following :
'php.exe' is not recognized as an internal or external command, operable program or batch file.
What may I have done wrong ?

electronicmonkey’s picture

Never mind. I had path to php.exe wrongly declared in drush.bat . It works now !

samuraijack’s picture

Hi, I've got problem with dosn't working Drush on Windows 7. I have instaled Apache+PHP+Mysql server.
When I want to start Drush I've got information about absence php_mbstring.dll library despite of it's in c:\Program Files\PHP\ext\ catalog. Although it dosn't found OCI.dll; aspell-15.dll; libcs.dll libraries.
I've got instaled Gzip; Libarchive; Wget; Tar programes. In "Control Panel > System > Advanced System Settings > Environment Variables->Path".
I have path "C:\Program Files\PHP;C:\drush;C:\Program Files\GnuWin32\bin;C:\Program Files\MySQL\MySQL Server 5.1\bin".
In file drush.bat I've code;
"@c:\Program Files\PHP\php.exe "%~dp0drush.php" %*
@c:\Program Files\PHP\php.exe C:\drush\drush.php %1 %2 %3 %4 %5 %6 %7 %8 %9"

decibel.places’s picture

Try using an integrated WAMP distro - it looks like you installed Apache and PHP and MySQL separately and may have configuration problems.

I use Xampp for Windows

There is also a Dev Desktop by Acquia that includes the *AMP stack and Drupal

I am using Xampp and I can confirm that Drush is working on Windows 7. My command line looks like this with PHP included in xampp. Notice that I am not using the C:/Program Files/ directory at all, it's in the root:

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

c:\xampp\htdocs\drupal71>drush status

c:\xampp\htdocs\drupal71>c:\xampp\php\php.exe "C:\drush\drush.php" status

 Drupal version                :  7.0
 Site URI                      :  http://default
 Database driver               :  mysql
 Database hostname             :  127.0.0.1
 Database username             :  drupal70
 Database name                 :  d70
 Database                      :  Connected
 Drupal bootstrap              :  Successful
 Drupal user                   :  Anonymous
 Default theme                 :  bartik
 Administration theme          :  seven
 PHP configuration             :  C:\xampp\php\php.ini
 Drush version                 :  4.0-dev
 Drush configuration           :
 Drupal root                   :  C:/xampp/htdocs/drupal71
 Site path                     :  sites/default
 File directory path           :  sites/default/files
 Private file directory path   :  /backup_migrate

c:\xampp\htdocs\drupal71>
decibel.places’s picture

Step 3

Using Xampp installed at c:\xampp the PATH to PHP is c:\xampp\php

Step 4

In drush.bat I had to change

@php.exe "%~dp0drush.php" %*

to

@php.exe "%~dp0drush.php" %1 %2 %3 %4 %5 %6 %7 %8 %9

samuraijack’s picture

Thanks for your help

punjabioo’s picture

thanks for the help
what is Photoshop

carole’s picture

I had to create C:\tmp to avoid "Fail to open stream" errors.

askibinski’s picture

Got it working with above instructions and a minor tweak for the batch file:
http://drupal.org/node/506448#comment-4585172

succesfull on Win 7 Professional, 64bit, Acquia stack (6.20)

Albert Skibinski - ezCompany

Ellen Dee’s picture

If using Git and Drush isn't finding it, add the path to Git/bin to your Path environment variable; e.g. ;c:\Program Files (x86)\Git\bin. Then restart whatever shell you're using (i.e. cygwin).

jaspher’s picture

Works on Windows 7 Professional 32-bit.

Thanks!

---
my blog

mercergirl’s picture

Where are the instructions for applying a patch to drush for windows?

decibel.places’s picture

I use the Eclipse IDE for patches, applying and creating them.

I've tried other Windows patch tools, but Eclipse just does it. In fact, that is about all I use Eclipse for these days.

Eclipse Helios had a distro for PHP developers

The current release Indigo doesn't; maybe they just rolled it into the Classic distro?

I also used the Subclipse plugin to integrate my Eclipse projects with Subversion.

It's also pretty easy to create and apply patches with Git and it's the method to use for Drupal projects

Maung Maung’s picture

This procedure also work on Windows 7 Professionals 64 bit.

My PATH C:\drush\;C:\Program Files (x86)\GnuWin32\bin;C:\xampp\php

Thanks

RyanC’s picture

C:\ProgramData\Propeople\Drush/lib/drush-library-1301704602.tar.gz
using the gzip command failed.

decibel.places’s picture

brandon_beeler’s picture

C:\Users\lwebg>drush
Uncompressing C:\drush/lib/drush-library-230983746.tar.gz using the [error]

gzip command failed.

I get this error and the gzip package is installed.

decibel.places’s picture

You can use another Windows unzip app like 7zip to decompress the archive

but you might want to see what else is wrong with your setup ;)

sohbetodalari’s picture

Thanks you sohbet

nyancat’s picture

I know I am in the minority, but does anyone have any information on Windows 8 and Drush?

Cheers.

alokbhatt’s picture

Please share the information if anyone have idea about how to install Drush on Windows 8 machine.

Thanks

Gabo11’s picture

Do anybody have some info about installing Drush on Win 8.1 pro?

dudeshane01’s picture

Although it is mentioned in top line that this tutorial was updated 16th April, the very first line in installating the hard way, Drush download url has not been corrected.
Kindly update that to GITHUB from drupal.org https://github.com/drush-ops/drush

erg-web’s picture

  1. Drush Windows Installer - drush.ws.

The drush windows installer site is offline and does also not seem to be hosted on the git hub drush ops site.

Is there a URL to download this?

>>>>>> found it >>>>>>>

https://github.com/drush-ops/drush/commit/0988485788c160f1c4c3c485625585...

jumpthattb’s picture

:)

vishal.sirsodiya’s picture

Hi,

I have follow all steps but again show this error blow :-

The drush command 'status' could not be found, Run 'drush cache-clear drush' to clear the commandfile cache if you have installed new extensions. function and the attempt to download this file automatically failed.To continue you will need to download the 1.1.3 package from website

nanabrown’s picture

For my windows 8 I used the exe file to install Drush. Then I set the path like cited above in
control panel>system and security>system>advanced system settings> environment variables
And it was done. Had a few issue with a step by step installation, but the exe did the trick!
Now it's working fine Apart from a migrate thing havent quite figured out yet, but I guess that's just me ;)

Rishi Kulshreshtha’s picture

If still you're getting this error on Windows 7, then you should add this in your "Environment Variables"
C:\ProgramData\Drush;D:\xampp\php

Since, my XAMPP is installed in D drive, hence I've used that accordingly.

agilis’s picture

I have followed all the steps above. Everything seems to work correctly as far as I can tell. Here's the output of 'drupal status' command.

 Drupal version                  :  7.32
 Site URI                        :  http://default
 Database driver                 :  mysql
 Database hostname               :  localhost
 Database port                   :
 Database username               :  db
 Database name                   :  db
 Drupal bootstrap                :  Successful
 Drupal user                     :
 Default theme                   :  theme548
 Administration theme            :  garland
 PHP executable                  :  /cygdrive/c/wamp/bin/php/php5.5.12/php
 PHP configuration               :  C:\wamp\bin\php\php5.5.12\php.ini
 PHP OS                          :  WINNT
 Drush script                    :  C:\Users\dev\AppData\Roaming\Composer\vendor\drush\drush\d
                                    rush.php
 Drush version                   :  7.1.0
 Drush temp directory            :  C:\cygwin64\tmp
 Drush configuration             :
 Drush alias files               :
 Install profile                 :  standard
 Drupal root                     :  C:\wamp\www\projects\dev\Mirror
 Site path                       :  sites/default
 File directory path             :  sites/default/files
 Private file directory path     :  sites/default/files/private
 Temporary file directory path   :  /tmp

However, when I execute the following command, I receive an error.

drush -v up drupal

Initialized Drupal 7.32 root directory at                   [notice]
C:\wamp\www\projects\dev\Mirror
Initialized Drupal site default at sites/default            [notice]
Executing: mysql --defaults-extra-file="C:\\cygwin64\\tmp\\dru2DAB.tmp" --database=db --host=localhost --silent  < "C:\\cygwin64\\tmp\\dru2DAA.tmp"
Executing: mysql --defaults-extra-file="C:\\cygwin64\\tmp\\dru2E29.tmp" --database=db --host=localhost --silent  < "C:\\cygwin64\\tmp\\dru2E28.tmp"
Loading release_info engine.                                [notice]
Loading version_control engine.                             [notice]
Loading package_handler engine.                             [notice]
Executing: wget --version
Loading update_status engine.                               [notice]
/cygdrive/c/wamp/bin/php/php5.5.12/php                      [notice]
"C:\\Users\\dev\\AppData\\Roaming\\Composer\\vendor\\drush\\drush\\drush.php"
--php=/cygdrive/c/wamp/bin/php/php5.5.12/php  --backend=2
--verbose
--root="C:\\wamp\\www\\projects\\dev\\Mirror"
--uri=http://default  pm-updatestatus drupal 2>&1
Illegal string offset 'site' backend.inc:1030            [warning]
The command could not be executed successfully (returned:[error]
The system cannot find the path specified.
, code: 1)
pm-updatestatus failed.                                  [error]
Command dispatch complete                                   [notice]
Command dispatch complete                                   [notice]

The specific error being returned:

Illegal string offset 'site' backend.inc:1030            [warning]
The command could not be executed successfully (returned:[error]
The system cannot find the path specified.
, code: 1)

I cannot seem to track down this issue and I do not know enough about Drush to fix this error.

Can anyone offer any assistance?

jordanl’s picture

I'm having the same issue as well.

mudderklirren’s picture

$ drush up
Illegal string offset 'site' backend.inc:1035 [warning]
The command could not be executed successfully (returned: Syntax wrong.... (in danish)., code: 1) [error]
pm-updatestatus failed. [error]

nixar’s picture

if you do a drush status in your site folder and the PHP executable starts with /cygdrive/..., you will get this error.
I just set up 2 W2012 Core servers and one is having this issue, the other doesn't. I re-installed drush on my local machine and I'm having this issue as well.
Provided the PATH environment variable has the path to your php.exe, the PHP executable path (from the Drush Status output) should be php.exe.

The temporary workaround if you have this issue is to add --php=php.exe to your command.

I'm hoping I can update with the solution soon.

Edit: It seems like %COMPOSER_HOME%\vendor\bin\drush.php is the culprit in this case.
I managed to fix it locally by replacing %COMPOSER_HOME\vendor\bin in my PATH system variable with %COMPOSER_HOME%\vendor\drush\drush

pbcelery’s picture

Drush gives no output in Windows 10... Tried both a Drush Cygwin install with the phar and PowerShell install with Composer

Drush unpacked to `/usr/local/src/drush/drush.bat` and files looks fine. Running PHP shell scripts works fine. Error reporting is on, confirmed with `php -info| grep error` but no output from any drush command.

Any suggestions for Windows 10?

sukh.singh’s picture

It works fine with Windows 10. Follow these steps.

Firstly install composer with Composer-Setup.exe. Make sure your php has php_openssl enabled.

Once done go to command prompt run the following command

composer global require drush/drush:7.*

Afterwards and the path of drush to the global environment variable. Mine was

C:\Users\sukh.singh\AppData\Roaming\Composer\vendor\drush\drush

Once done, logout from the PC and re-login. That is it, now go to the drupal root folder and check with command drush status

michel.settembrino’s picture

Thanks @sukh.singh!

Your method works for me but when I ran for example "drush cc all" I was getting next warning: "No Drupal site found, only 'drush' cache was cleared.".

Solution was to add MySQL into the environment variable. In my case, path was "D:\xampp\mysql\bin".

Regards,
Michel.

fabul’s picture

To use this solution in Drupal 8:
Execute steps 1 and 2.
Open the Cygwin terminal and use
cd <windowsPathToYourDrupalSiteDirectory>
Download drupal.phar console with:
Curl https://drupalconsole.com/installer -L -o drupal.phar
Use Php drupal.phar list to see all the console commands

Fab

AlejCerro’s picture

First of all, thank you so very much! I just spent a good 3 hours trying to get drush working for a Drupal 8 site.

Your answer worked wonderfully except that I get some weird output to the console:

←[30;42m
       ←[39;49m
←[30;42m [OK] Checks passed.
       ←[39;49m
←[30;42m
       ←[39;49m

 // settings:set

←[30;42m
       ←[39;49m
←[30;42m [OK] Setting checked was set to true
       ←[39;49m
←[30;42m
       ←[39;49m

Any Idea why this might be or how to resolve it?

fabul’s picture

That's why I don't want to install Drush. I use Drupal Console.
See if it is the best practice.
Best regards.

srikanth.g’s picture

Is there easy way to install Drush 7(for drupal 8) on windows 7.
I am using Drush 6(for drupal 7) and there is installable file for windows: Drush-6.0-Installer-v1.0.21.msi
it seems there is no such installable msi/exe for drupal 8,can i use PHAR file?
What is the difference between Composer,Drupal Console,Drush?
we have drush 8 and 9 also here: https://github.com/drush-ops/drush/tags ,is it for drupal 9?

fabul’s picture

This is an example of installation or Composer and Drush on Windows. I hope it will help :

1. Be sure tha php command wwrks well in WIndws commands board.
2. create a directory "composer" in c:\
2. Find composer.phar file and copy it in c:\composer. You can find composer .phar on https://getcomposer.org/composer.phar
3. create a composer.bat file in directory c:\composer
4. In composer.bat file, write the commands, and replace the path to composer.phar.

@echo off
if "%PHPBIN%" == "" set PHPBIN=C:\path\to\PHP\executable\dir\.\php.exe
"%PHPBIN%" "C:\path\to\composer.phar" %*

5. Go to Environment variables in Windows and add the path "c:\composer" to be able to use the command "Composer" in Windows commands board.
6. Restart your computer
7. Open Windows commands and write the next command

composer -v

If Windows returns version number, and no error, then you can go on
8. In Windows commands board, write the command
composer install

9. Install Drush by writing:
composer global require drush/drush:7.*
10. composer global require drush/drush:7.*
11. Go to Environment variables in Windows and add the path to drush.bat (parent directory) to be able to use the command "Drush" in Windows commands board.
12. Restart your computer
13. try Drush commands with a command line as drush cc all