One of the easiest and most convenient ways to get your hands on Drupal is on a shared hosting environment. It’s pretty much where everyone is going to start from unless you happen to have a giant long-term budget for your own hardware.

You have a number of options when it comes to hosting and at one time or another I’ve tried a lot of them. Three companies that have managed to keep me the happiest though are A Small Orange (use coupon 15-off to get 15% off; no affiliate), DreamHost (no affiliate) and MediaTemple. I’ve found DreamHost in particular to be pretty impressive when it comes to hosting a lot of one-off sites on my very inexpensive shared plan. I even use it when rapid prototyping for clients.

The best part though is that with DreamHost I can use SSH and Drush the way I normally would like to on a dedicated or virtual server. Set up is a bit more complex than normal, but, once it’s set up for your user it’s smooth sailing.

Before you can do any of this, you will need to make sure you enable SSH for the user you assigned to the domain you want to use Drush with. You can find these options under the Manage Users section of the DreamHost panel. From there open up your favorite SSH client and log into your site (PuTTY works well on Windows, you can just run ssh from the command line on Mac or Linux).

Since you’re in a locked-down shared hosting environment, you obviously can’t make system-wide changes. The easiest way to install Drush is though Pear. Pear, by default, wants to make system-wide changes. Since we can’t do that in a shared environment, our first order of business will be to set up a new instance of pear just for our user.

Now you have your own instance of pear, but you still can’t use it yet. To fix this, we will edit our .bash_profile and add in the path to the most recent PHP version DreamHost provides, as well as adding in our pear directory early on in this user’s PATH.

Open ~/.bash_profile in your favorite editor:nano ~/.bash_profile

And add these lines at the bottom of the file:export PHP_PEAR_PHP_BIN=/usr/local/php53/bin/php
export PATH=${HOME}/pear:/usr/local/php53/bin:${PATH}

Finally, re-load the file so the changes will take effect immediately:. ~/.bash_profile

Now we have the newest version of PHP and our custom version of pear available to us, to check this out, you can run these commands:which php
which pear

Now you can use drush from any site under this user as you would anywhere else (try running `drush help` for some cool examples). You can repeat this process for any other SSH users on your account. A one line tl;dr version of this process is included below for your automated and repetitive pleasure. Enjoy!

Robin Monks has a passion for openness and freedom in technology and he’s spent the last 8 years of his life developing, supporting and maintaining open source software. He’s part of the panel of Drupal community experts who authored The Definitive Guide to Drupal 7 and currently provides independent consulting services. Reach him at 1-855-PODHURL.[/box]

Share this:

Have you tried doing Drush remote commands using aliases? (ref http://www.lullabot.com/articles/new-features-drush-3) When I did, I discovered the path exports needed to be in .bashrc so they were available to remote commands. I moved them .bashrc and do a “source ~/.bashrc” in .bash_profile.

It is so sweet doing a drush @remotesystem status on my laptop and seeing results from my Dreamhost site.

You can check Drush version with “drush status” command inside your application directory or outside your application directory, the difference will be when you are inside application directory you will get more information,

Just a warning that the upgrade instructions in your second link won’t work for anyone using the installation method here on a shared host. If you use the direction here you must update via pear. To update, just run:

The most recent version of drush was not allowing me to install using the /usr/local/php53 directory and when I updated the bash_profile to use the php54 directory it was not working either. I would get the error “Your command line PHP installation is too old. Drush requires at least PHP 5.3.3.” this is because the /usr/local/php53 version is actually PHP 5.3.27 (cli)…

So to fix it I uninstalled drush using..
pear uninstall drush/drush

Then I edited the bash_profile to reflect php 5.4 instead of php53
export PHP_PEAR_PHP_BIN=/usr/local/php54/bin/php
export PATH=${HOME}/pear:/usr/local/php54/bin:${PATH}

Then I reinstalled with
pear install drush/drush

Thank you for the tutorial and I hope this helps anyone who gets stuck.

Related Posts

About Robin

Robin has a passion for openness and freedom in technology and he's spent the last 8 years of his life developing, supporting and maintaining open source software.

He is part of the panel of Drupal community experts who authored The Definitive Guide to Drupal 7, he has written for several magazines (including Free Software Magazine) and lead marketing initiatives for Mozilla Firefox and Drupal.

He currently works as an independent consultant on Drupal and open technology, and you can reach his Podhurl Inc consultancy at 1-855-PODHURL to learn more about how he can help your company apply open technology effectively.

By night, he continues to post to this blog, where he is occasionally forced to write in the third person and frequently gives his experienced opinions on a wide array of topics. Suggestions and feedback are always welcome.