Version 9 (modified by Dana, 9 years ago) (diff)


When you say we are using a "central, shared" installation of Drupal, what does that mean?

May First/People Link has one installation of Drupal on each of our shared servers. All sites running Drupal have the option of using this single copy of Drupal. The advantage of this approach is that when a security patch is released for Drupal that fixes a vulnerability, we can apply the patch in one place and everyone who is using our single copy of the Drupal source will immediately benefit from the patch.

Why not use traditional drupal "multi-site"?

Drupal has a method for running more than one web site using the same core Drupal source. It's called "multi-site". Using multi-site, you can place as many directories in your Drupal sites directory as you want, each one named after the domain name of the separate site you want to create.

We do not use this approach for several reasons:

  • It means everyone has to use the same DocumentRoot - you cannot, for example, add your own robots.txt file or decide you want to customize your .htaccess file
  • It prevents you from running your own multi-site installation.
  • It forces you to run Drupal rather than providing you with a web directory to do with what you please (symlink to Drupal or run anything else)

How does the MF/PL approach work?

Our approach uses symlinks instead. It is designed to work with suexec, in which the PHP process running runs with the privileges of the user who owns the file.

Using our approach, every member has their own web directory, which they control. The web directory contains symlinks to all the top level directories in Drupal core (includes, misc, etc.) except for the files and sites directories - these are real directories under the control of the user.

An example web directory listing looks like this:

0 jm@chavez:web$ ls -l
total 28
lrwxrwxrwx 1 mayfirst mayfirst   34 2007-11-17 04:14 cron.php -> /usr/local/share/drupal-5/cron.php
drwxr-xr-x 4 mayfirst mayfirst 4096 2008-03-11 03:58 files
lrwxrwxrwx 1 mayfirst mayfirst   34 2007-11-17 04:14 includes -> /usr/local/share/drupal-5/includes
lrwxrwxrwx 1 mayfirst mayfirst   35 2007-11-17 04:14 index.php -> /usr/local/share/drupal-5/index.php
lrwxrwxrwx 1 mayfirst mayfirst   37 2007-11-17 04:14 install.php -> /usr/local/share/drupal-5/install.php
lrwxrwxrwx 1 mayfirst mayfirst   30 2007-11-17 04:14 misc -> /usr/local/share/drupal-5/misc
lrwxrwxrwx 1 mayfirst mayfirst   33 2007-11-17 04:14 modules -> /usr/local/share/drupal-5/modules
lrwxrwxrwx 1 mayfirst mayfirst   34 2007-11-17 04:14 profiles -> /usr/local/share/drupal-5/profiles
lrwxrwxrwx 1 mayfirst mayfirst   33 2007-11-17 04:14 scripts -> /usr/local/share/drupal-5/scripts
drwxr-xr-x 3 mayfirst mayfirst 4096 2007-11-17 04:14 sites
lrwxrwxrwx 1 mayfirst mayfirst   32 2007-11-17 04:14 themes -> /usr/local/share/drupal-5/themes
lrwxrwxrwx 1 mayfirst mayfirst   36 2007-11-17 04:14 update.php -> /usr/local/share/drupal-5/update.php
lrwxrwxrwx 1 mayfirst mayfirst   36 2007-11-23 11:16 xmlrpc.php -> /usr/local/share/drupal-5/xmlrpc.php
0 jm@chavez:web$

How do I get a Drupal site like this setup?

Very easy - just set it up via our control panel.