Seven Drupal Hosting Considerations
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.
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.