Proposed architecture for the BCIM Virtual Machine

Sun 10th August, 2008.


We want Drupal to support a bunch of BCIM websites; not just our main Faculty website, but also stand-alone microsites for the various research centres etc. within BCIM. We could in theory have a Virtual Machine (VM) for each, but it would be more efficient to have just one VM supporting a multisite Drupal architecture. I've been reading up and experimenting with Drupal multisites over the last couple of days. After a couple of false starts, I finally managed to set up a simple multisite installation within my personal domain (mebush.net). I haven't been able to find a single reference on Drupal multisites that sets out clearly what is required, but here are a bunch of web pages that I've found helpful:

http://klargodut.com/node/13

http://drupal.org/node/53705

http://drupal.org/node/235765

http://stephenondrupal.blogspot.com/2007/10/how-to-correctly-set-up-drupal.html

http://groups.drupal.org/node/11494

http://drupal.org/node/32566

http://srhaber.com/blog/2006/12/06/drupal-multisite-setup-with-sub-directories-on-single-domain/

http://drupal.org/node/107347

http://drupal.org/node/278987

http://community.contractwebdevelopment.com/drupal-multisite-configurations-hosts


It seems that using a separate database for each site is more straightforward than having the sites use one shared database; the latter is better if the sites must share some content and/or userids, which I don't think we require. Multisites can be set up to use a shared or partially-shared database, but that’s relatively hard to do apparently, and there’s no point as far as I can see. It would be better for us to have a separate MySQL database for each site. 


We’re aiming for URLs like this:

http://bcim.lsbu.ac.uk/

http://bcim.lsbu.ac.uk/icr/

http://bcim.lsbu.ac.uk/cibs/

http://bcim.lsbu.ac.uk/nbs/


To be a Drupal multisite, each site must be driven by the same Drupal installation. The main advantage would be that when we add contributed modules, or when the time comes to upgrade, we would only need to do this once. An alternative would be to have the same URLs as above but a separate Drupal installation in each. I think this would be a reasonable alternative, since Drupal itself takes up less than 5MB (before adding any contributed modules). An advantage of doing it this way would be that if we tried something new and it turned out badly then it would only screw up one site. Furthermore, it seems relatively easy to switch transparently later on to a multisite setup: http://klargodut.com/node/13


On balance, I think it would be best to go for a true multisite setup from the start since this seems to be a tried and trusted approach. I hope we'll be able to make it work, and that I won't regret this decision later on!