Ceci est une ancienne révision du document !
Drupal
multisites
Pour une install multisites, cf http://drupal.org/node/43816
En résumé, utiliser l'arbo suivante :
# les modules pour tous les sites, penser à faire un update sur chaque site # (s'ils sont sur des db séparées) en cas d'upgrade d'un module. drupal_base/sites/all/modules drupal_base/sites/all/themes # idem pour les themes drupal_base/sites/site1.tld/settings.php drupal_base/sites/site1.tld/modules # modules pour ce site seulement drupal_base/sites/site2.tld/settings.php drupal_base/sites/site3.tld/settings.php # on peut aussi avoir différents sites sur le même host (www.example.com/site1 et www.example.com/site2) avec drupal_base/sites/example.com.site1/settings.php # dans ce cas, renseigner $base_url drupal_base/sites/example.com.site2/settings.php
Et configurer apache avec autant de vhosts que nécessaire, pointant tous sur drupal_base
Pour partager certaines tables, mais pas toutes, il faut utiliser la même db et jongler avec des suffixes différents, cf http://drupal.org/node/22267
On peut choisir un préfixe par défaut différent pour chacun des sites, en précisant un suffixe commun pour certaines tables (users par exemple), ou préciser un suffixe commun par défaut et un différent pour certaines tables seulement…
Pour avoir juste un thème différent, mettre la même base avec les mêmes préfixes et ajouter juste dans le settings.php
$conf = array( 'theme_default' => 'le_theme_voulu', );
À la fin du settings, on peut ajouter un include commun à tous, pour mettre par exemple
# offline pour tous $conf['site_offline'] = 's:1:"1";'; # online pour tous $conf['site_offline'] = 's:1:"0";';
mais on peut avoir la même chose en ajoutant dans chaque settings.php un
# offline # $conf['site_offline'] = 's:1:"1";';
que l'on active/désactive avec
# mettre offline sed -i -e '/$conf['site_offline']/ s/.*/$conf['site_offline'] = 's:1:"1";';/' /path/2/drupal_base/*/settings.php # mettre online (ou laisser l'admin gérer via son interface, site par site) sed -i -e '/$conf['site_offline']/ s/.*/# $conf['site_offline'] = 's:1:"1";';/' /path/2/drupal_base/*/settings.php