Seven Drupal Hosting Considerations

Submitted by Chris Steins on Tue, 08/16/2011 - 5:12am
Chris Steins's picture

Over the years, we've seen websites based on Drupal, the popular open source web content management system, hosted on nearly every possible type of hosting platform, from shared hosting plans, cloud hosting environments, virtual private servers (VPS), dedicated servers, and high-availability clustered environments.

A smart IT manager or system administrator who previously paid $50/year for a low cost shared-hosting environment for a static HTML website often needs to justify to management why the organization will need to spend more on higher-quality hosting for their new Drupal website. It's also not uncommon that this smart IT manager is not yet intimately familiar with Drupal.

I'm often asked for advice on how to select a good hosting environment for small and medium-sized Drupal websites.

Following are six criteria that you can use to evaluate Drupal hosting options.

1. Platform

The current version of Drupal (Drupal 7) is typically (although not always) run on a UNIX/Linux platform with Apache, MySQL and PHP. You'll want to make sure your hosting provider offers these minimum versions:
- Apache 1.3 or Apache 2.x hosted on UNIX/Linux, OS X
- MySQL 5.0.15 or higher
- PHP 5.3

2. Ability to Configure Settings

For optimal performance, you will have to adjust some PHP settings to make Drupal happy (for example: safe_mode, memory_limit). It's important to know that your hosting provider will allow these changes to be made. You may also need one or more helpful PHP libraries (like GD library which helps with image processing) installed. Some hosts don't support PHP configuration changes or additional libraries, so find out how  your host handles these types of configuration changes, and clarify if you will make these changes, or if your host will make these changes for you.

3. System Memory

Drupal typically requires at least 64MB of system memory (RAM). If your site has modest traffic and more than a few modules, or any custom modules, you'll likely want to budget for at least 512MB of system memory to run effectively. Some hosting environments constrain the amount of system RAM to which your website has access because this resource is shared by many other sites on the same server. This limit seems to be a problem most often for sites running on some shared environments when traffic starts to increase.

4. Managed Operating System

Some low cost virtual server options can be a great choice if you're willing to manage the operating system and troubleshoot when your virtual server has problems. If you prefer not to handle this sort of system administration support, you'll want to opt for a managed hosting environment, where your hosting company is responsible for keeping the operating system, Apache, MySQL and PHP up-to-date and running.

5. Filesystem Backup

You'll need an automated filesystem backup that backs up your website files, such as the files that make Drupal run, images, and other documents your users upload. A good backup system should provide an automated daily filesystem backup, keep backed-up files for at least two weeks, and enable you to restore individual files and directories. Several VPS hosting options offer only "site" backups, which may mean that your only option for recovering files is to restore your entire server instance from a previous backup. When you setup your website, you should test this backup by requesting the restoration of a file to ensure that your backup strategy actually works.

6. Database Backup

Because Drupal stores content and configurations in the database, ensuring that your database is backed up is an equally important aspect of your backup plan. Backing up a database is a slightly different process from backing up the filesystem. If you want to manage your database backup yourself, here's a great article on "10 Ways to Automatically & Manually Backup MySQL Database." If you will be working with your database manually, you may also want to be sure that you have a web interface to access your MySQL database, like the popular phpMyAdmin, a free software tool written in PHP intended to handle the administration of MySQL databases.

7. Drupal Updates

Drupal is great software. In order to keep the software operating securely and at its best, you'll need to apply core updates, security patches, and module updates. These updates are typically released monthly, but can be released less or more often. Web hosting companies don't typically won't apply these updates, so you'll need to be explicit about who, how and when these updates are applied to your website.

12 comments

by Tom Oconnor (not verified) on Wed, 08/17/2011 - 7:23am

Thanks for outlining this clearly. This is a great set of baseline features to look for for Drupal hosting. I my experience you really need at least 1GB of shared RAM on a virtual private server for Drupal to work well. I find it's easy to keep a virtual server running RedHat updated myself using up2date. There's only been a few times when it hasn't worked.

by Anonymous (not verified) on Mon, 08/22/2011 - 8:14am

Great tips. Thanks.

by Steve Smithers (not verified) on Fri, 09/02/2011 - 9:25am

Many hosting providers (like GoDaddy hosting) don't provide SSH access to the server. This means that you can't easily review error logs, and you can't easily deploy code patches and updates using SVN. I would add an 8th criteria to your list: SSH access to your server.

Chris Steins's picture

by Chris Steins on Fri, 09/02/2011 - 9:38am

Hi Steve,

Great point.

SVN/Git doesn't typically run natively over S/FTP. However, Beanstalk (http://beanstalkapp.com/), a popular subversion and Git hosting service, does offer a tool called deployments that wraps FTP access with releases via SVN.

However, for ease of access to your server, I also agree that SSH access to the server is often necessary.

Thanks for writing.

Chris

by Steve Smithers (not verified) on Sun, 09/04/2011 - 8:25am

You need to add to your article customer support that knows about Drupal. If you setup your web host and the web host customer support don't know about Drupal then they say everything if your fault and they wont help you troubleshoot. Best to find a host that knows about Drupal.

by Gwenn Sven (not verified) on Wed, 09/07/2011 - 9:55pm

Good list. I think anyone serious about Drupal hosting should get a dedicated server. Otherwise, you're going to run into all sorts of configuration problems, or problems with other sites on that server.

by Nicholas HH (not verified) on Thu, 09/22/2011 - 4:44am

You will definitely need some sort of reliable SVN or Git code deployment solution as part of your hosting, especially is you have several people helping to develop your site. I like Beanstalk, a hosted SVN, but YMMV. Thanks for the good post.

by Steve Oren (not verified) on Mon, 09/26/2011 - 12:11am

Acquia offers their Acquia Managed Cloud, which may avoid some of the typical cloud-hosting problems:
http://acquia.com/products-services/managed-cloud

by Christina (not verified) on Mon, 09/26/2011 - 2:03am

I understand Pantheon (http://www.pantheon.com) will soon offer optimized Drupal hosting, but you'll need to be familiar with git/svn to use it well.

by Sakit Malthia (not verified) on Thu, 04/26/2012 - 5:24pm

This is a really great article. It effectively summarizes the key issues in hosting Drupal.

Two cloud-based hosting options that will work ok for smaller sites include Rackspace Cloud Sites ($150/mo) http://www.rackspace.com/cloud/cloud_hosting_products/sites/ and Media Temple Grid Service ($49/mo) http://mediatemple.net/webhosting/gs/ .

Rackspace Cloud Sites has documentation on how to configure your site to run well in that environment:
http://www.rackspace.com/knowledge_center/index.php/Install_and_use_Drupal

Grid Service offers a potentially scary one-step installation of Drupal: http://kb.mediatemple.net/questions/1703/

However, your site running on a cloud environment like this will never be as speedy or as optimized as running it on a platform configured with memchached or varnish, technologies to help improve Drupal performance. If your site is small and serves under 2K visitors a month, this probably doesn't matter too much.

Also, with both of these cloud hosting options, expect more downtime than you'd have on a dedicated server.

by Jain Wong (not verified) on Fri, 04/27/2012 - 9:01am

Great article. Very helpful. Drupal.org has a page where they list some companies that advertise with them to provide hosting:
http://drupal.org/hosting/enterprise

by Pete Kim (not verified) on Thu, 05/03/2012 - 8:51am

This is a *really* useful article.

Backup is a real problem for shared hosting or virtual hosting. The Lullabot folks posted an article on how you can use rsync, ssh, sudo, cron and a backup server to automate backups to a remote server. Granted, it's kind of technical, and you'd have to know what you were doing, but it can be an option for a savvy IT manager:
http://www.lullabot.com/articles/simple-off-site-backups-with-rsync-ssh-...

Post new comment