Boost Drupal performance on Windows Server IIS. Besides WinCache on IIS, you can improve Drupal’s performance by installing the Drupal BOOST module. For this module to work you need to disable Drupal’s own caching mechanism, and you need access to the server variable CONTENT_TYPE in URL Rewrite. Here is how…
Check with your hosting provider whether this server variable can be added.
Boost provides static page caching for Drupal enabling a very significant performance and scalability boost for sites that receive mostly anonymous traffic. For shared hosting this is your best option in terms of improving performance.
Using a static page cache like BOOST will greatly improve and boost Drupal performance.
You can set up Drupal as you normally would. An installation guide for Drupal:
- Point your browser to http://drupal.org/download and download Drupal (currently 7.21)
- Unzip the archive on your harddrive
- Upload the unzipped files to your webspace
- (if necessary) set write permissions on your webspace so you can set up Drupal
The first step asks you to select an installation profile. I chose Standard. Click Save and continue.
I’m using the default, built-in English language.
Select your database type, and fill out your database information: database name, database username, database password and database host and table prefix under advanced options. Then click Save and continue.
Drupal 7.21 is being installed.
Fill out your Site information, username password, e-mail address:
Dont forget to keep Check for updates automatically and Receive e-mail notifications checked! It’ll make things so much easier when updates are available.
Jeuj! Drupal 7.21 is installed!
Add CONTENT_TYPE server variable with IIS Manager
We need to add the CONTENT_TYPE server variable to URL Rewrite or we can’t improve Drupal’s performance, so this is our next step.
If you are an user with administrator privileges, you can add the
CONTENT_TYPE server variable to IIS URL Rewrite using the IIS Manager tool. Log on to your server with IIS Manager and click through to the website. Open up the URL Module (double click).
Click View Server Variables… under Manage Server Variables in the Actions pane:
Type CONTENT_TYPE in the window:
and click OK. Now recycle your application pool:
appcmd recycle apppool AppPool_name
The server variable
CONTENT_TYPE is now available to URL Rewrite.
Drupal 7 BOOST module installation
To improve Drupal performance we install a Drupal module such as BOOST. Point your mouse to the Modules menu-item in the top of your screen. Then click Install new module:
I assume you are way ahead of me on this one, and you’ve already looked up the full URL of the BOOST module (which is http://ftp.drupal.org/files/projects/boost-7.x-1.0-beta2.zip at this time of writing). Fill out this URL under Install from a URL. Then click Install.
Success! The module is installed. Now click Enable newly installed modules
We’re back at the modules overview page and we see Boost and Boost Crawler installed.
Because Boost Crawler requires an additional module, called Httprl (HTTP Parallel Request & Threading Library), we need to install that one too. Go back to Install new module and fill out the URL http://ftp.drupal.org/files/projects/httprl-7.x-1.10.zip to install Httprl.
All required modules are installed an can now be enabled. Check their check-boxes and click Save configuration.
Drupal 7 Boost module configuration
Our final step is to configure the Drupal Boost module.
Point your mouse to the Configuration menu-item in the top of your screen. Then click Performance under Development:
Verify all caching is disabled
Now head to Configuration > System > Boost to configure boost
and click Save configuration.
In your site’s settings.php file (
sites/default/settings.php), add to following configuration for WinCache:
// Register the new cache backend $conf['cache_backends'] = 'sites/all/modules/wincachedrupal/drupal_win_cache.inc'; // If you have more than one cache Backend at the same time, use this: $conf['cache_backends'] = 'sites/all/modules/memcache/memcache.inc'; $conf['cache_backends'] = 'sites/all/modules/wincachedrupal/drupal_win_cache.inc'; // Tell Drupal what cache types this cache backend // should be used with. Wincache should used for non // persistent cache storage with low size requirements. // This is a proposal for caches to run in Wincache. $conf['cache_class_cache'] = 'DrupalWinCache'; $conf['cache_class_cache_bootstrap'] = 'DrupalWinCache'; $conf['cache_class_cache_menu'] = 'DrupalWinCache'; $conf['cache_class_cache_variable'] = 'DrupalWinCache'; $conf['cache_class_cache_locale'] = 'DrupalWinCache'; $conf['cache_class_cache_i18n'] = 'DrupalWinCache'; $conf['cache_class_cache_metatag'] = 'DrupalWinCache'; $conf['cache_class_cache_field'] = 'DrupalWinCache'; $conf['cache_class_cache_libraries'] = 'DrupalWinCache'; $conf['cache_class_cache_rules'] = 'DrupalWinCache'; $conf['cache_class_cache_advagg_aggregates'] = 'DrupalWinCache'; $conf['cache_class_cache_advagg_info'] = 'DrupalWinCache'; $conf['cache_class_cache_views'] = 'DrupalWinCache'; // If you have a small site then just set wincache as the default backend // and forget about memcache. $conf['cache_default_class'] = 'DrupalWinCache'; // There are a few caches that must always go // to persistent storage. # Keep forms in persistent storage. $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; # I don't see any point in keeping the module update information in Memcached. $conf['cache_class_cache_update'] = 'DrupalDatabaseCache';
Now enjoy your really fast performing Drupal website! See PHP with WinCache on IIS for a guide on installing WinCache and PHP on IIS.
(my apologies for the image quality)