Multisite: Directories, Databases, Documents & Settings: Requirements & Best Practices

Events happening in the community are now at Drupal community events on www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

My environment:

*LAMP server
*WHM/cPanel
*root access

========

Common multisite requirements (as I understand them):

  • multiple sites in separate vhosts, from single code base
  • separate databases for each site (I'm not sure exactly on this: maybe each site has it's own database, but there is a shared database for...(as I said, I'm not sure on this one))
  • test-site
  • add to list

My specific requirements: (hopefully these are common enough that there will sufficient cooperation):

  • run many low to medium traffic sites (100s, 1000s - ?: limits?: what variables?)
  • different profiles (and maybe even sub-profiles): multiple sites with profile1, and multiple sites with profile2, and maybe even multiple sites with profile1.1, etc. - all on the same LAMP server.
  • test-sites/development-sites for all profiles, sub-profiles, which I suppose means sub-domains, etc.
  • add to list

========

The way things look currently on my server, and the way I'm currently handling directories, databases, documents and settings: (as you can see, it's not very "multisite")

Directories & Databases:

When I create a new account using the WHM interface (AN ASIDE: I'd be very interested in knowing how to do this w/o the WHM GUI), WHM puts the new account in /home, i.e.: /home/account1, /home/account2, etc., where account1, account2 are the specific URLs (my-site.com, different-site.org, etc.).

I use the ssh client PuTTY to upload the drupal install and create database, user, etc.: see my http://drupal.org/node/130116 for specific details. (please feel free to comment as to how this node should be altered for multisite - when we get that far)

I add the following directories per required Drupal install and basic Drupal best practices:

  1. /home/account1/public_html/files (required)
  2. /home/account1/public_html/sites/all/modules
  3. /home/account1/public_html/sites/all/modules/custom
  4. /home/account1/public_html/sites/all/modules/drupal-contrib
  5. /home/account1/public_html/sites/all/themes
  6. /home/account1/public_html/sites/all/themes/custom
  7. /home/account1/public_html/sites/all/themes/drupal-contrib

Documents & Settings:
Nothing beyond the chmod of settings.php during the standard install

========

Motivation:
Obviously I can't run multiple sites from this directory structure (or can I), and it doesn't even make sense to add the directries "modules" to "all": sites/all/modules/costom, etc., as this is an install for a specific account (not very multisite), and I haven't even got into additional files and settings. As I said, I'm needing help with the directory structure, settings, etc.

Considerations/Issues:

  • The placement of core drupal install(s) w/i the server directory structure
  • The placement of account specific directories
  • Additional directories/files necessary to accomodate multisite configuration, e.g.: sites/all/modules
  • Addition of documents into specific directories e.g.: settings.php into specific directories
  • Changes to documents, e.g.: changes to setting.php, .htaccess, etc.
  • Settings w/i the individual drupal sites
  • Database issues
  • Profile issues
  • http config changes
  • php modules
  • add to list

I'd be happy to reformat, reword according to conventions, or go ahead and improve on the formatting of this wiki yourself. I'd like to make this into a step-by-step instruction manual for setting up a multisite server. I/we could make modification based on different scenarios, e.g., no shell access, PostgreSQL database, IIS web server, etc, etc.

Maybe a "book" would be a better content type for this, but let's start here; I/we can always copy/paste into pages later.

Multisite

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: