Controlling remote Drupal sites with Drush For a couple of weeks now I have been watching various screencasts and envying those who can operate Drush on their sites, esp. when enabling/disabling of the modules, or clearing cache. The time savings seem to be immense.

However, as a more of a front-end developer, rather than a qualified, fluent console operator, I find myself completely lost as per the usage of Drush with remote sites. Most of the googled readings treat about local sites, they specify paths to local installations, or they assume that a site was created using site-install command. While I am interested in adding Drush to an existing remote site. How do I add Drush into play with that remote site?

Now that I'm trying to get the big picture of using Drush, I think I may have missed some principal knowledge about the environment and tools needed, which I haven't found anywhere.


Apart from having command line Drush installed on my desktop, do I have to install Drush module on my remote site? Or is Drupal core Drush-controllable out-of-the-box (if it is, what is the purpose of Drush module available at drupal.org/project/drush)
Do I have to configure SSH for communicating the server?
Do I need to provide db credentials anywhere (where)?
Do I need to define FTP credentials anywhere (where)?
aliases.drushrc.php: does it live only on my desktop, or should I define anything similar on the remote ftp?


My setup involves staging and production sites, the former also stored on a remote ftp server with its own domain. I would like both to be controllable via Drush. Is that feasible?

It'd be great if someone could shed some light on me.
You have a lot of questions there, but I'll try to give you the best overview of how to do this easily.

First, note that though Drush is listed as a module on Drupal.org, it is not technically a module as you don't "enable" or "disable" it like other modules.


Yes, Drush must be installed on the remote site.  When you do so, make sure to install the same version that you have installed locally.  It may still work if you're using different versions, but it can also cause strange bugs that are difficult to troubleshoot so always try to keep the same version.
It's certainly easier if you have SSH set up for some of the Drush commands.  Your web host should be able to help you with getting SSH keys set up for your local machine.
Yes, you will need to provide DB credentials.  This can be done by following the example in drush/examples/example.aliases.drushrc.php in the drush folder.
No, I don't think so.
You do not need to set up the alias on your desktop unless you are going to be logging in to your remote server and using aliases there.


Basically, if you have SSH working and have installed Drush on the remote server as well as your local machine, then, once you set up an alias, you can type something like drush @myremote status and it should work.