Running multiple related sites from a single CMS installation (Drupal multisite, or a similar Joomla approach) can reduce maintenance overhead compared to entirely separate installations. This guide covers the setup considerations.
What Multi-Site Installation Provides
Rather than maintaining entirely separate CMS installations (separate codebases, separate update processes) for related sites, a multi-site setup shares the core codebase while maintaining separate databases/content per site — reduces update/maintenance overhead for genuinely related sites.
When Multi-Site Makes Sense
Appropriate for genuinely related sites sharing similar functionality needs (a company's sites for different regions/brands, for example) — less appropriate if the sites have fundamentally different feature/module requirements, since multi-site shares the same codebase across all sites.
Drupal Multisite Setup
sites/
default/
site-two.yourdomain.com/
settings.php
site-three.yourdomain.com/
settings.php
Each site gets its own settings.php with its own database configuration, while sharing the core Drupal codebase and installed modules.
Configuring Web Server for Drupal Multisite
server {
server_name site-two.yourdomain.com;
root /var/www/drupal;
# standard Drupal Nginx config
}
server {
server_name site-three.yourdomain.com;
root /var/www/drupal;
# same root, Drupal detects the correct site by hostname
}
Drupal automatically selects the correct site configuration based on the requesting hostname, matched against your sites/ directory structure.
Each Site Needs Its Own Database
CREATE DATABASE site_two_db;
CREATE DATABASE site_three_db;
Content is genuinely separate per site — multisite shares code/modules, not content/data, unless you deliberately implement cross-site content sharing through additional configuration.
Managing Shared Module Updates Across Sites
drush -l site-two.yourdomain.com updb
drush -l site-three.yourdomain.com updb
When updating shared modules, run database updates separately for each site (using Drush's -l flag to target a specific site), since each site's database needs its own update process even though the code is shared.
Considering Alternatives: Separate Installations with Shared Infrastructure
Rather than true multisite, some organizations prefer entirely separate CMS installations that simply share the same VPS infrastructure — more isolation between sites (a bug/issue in one site's configuration doesn't risk others) at the cost of more individual maintenance overhead; weigh this trade-off for your specific situation.
Backup Considerations for Multisite
See How to Back Up and Restore a Drupal/Joomla Site — ensure your backup process explicitly covers every individual site's database, not just the shared codebase; a backup that misses a site's specific database provides false confidence.
Security Considerations
A vulnerability in the shared codebase potentially affects all sites simultaneously — the shared-code nature of multisite means patching promptly (see How to Audit Installed Packages for Known Vulnerabilities) protects all sites at once, but also means all sites share this common risk exposure.
Common Errors
Wrong site's content appears for a given domain — verify your sites/ directory naming exactly matches the requesting hostname, and check web server configuration for correct server_name/document root mapping per site.
Continue Reading
- How to Install Drupal on a VPS
- How to Back Up and Restore a Drupal/Joomla Site
- How to Audit Installed Packages for Known Vulnerabilities
Browse more articles in CMS Platforms Beyond WordPress.