Skip to main content

Installazione di Drupal Multisite

Posted in

Drupal offre in maniera abbastanza immediata la possibilità di gestire installazioni di tipo multisito. Questa funzionalità permette di creare più siti, condividendo lo stesso core e magari lo stesso DB.

Uno dei vantaggi di questo tipo di installazione è quello di poter far condividere alcune tabelle tra le varie instanze. In questo esempio vederemo come fare un installazione, condividendo le tabelle relative alle informazioni degli utenti registrati. Questa soluzione permetterà di effettuare la gestione degli utenti dal pannello di controllo di uno qualsiasi dei nostri siti e allo stesso tempo, gli utenti potranno autenticarsi con le stess credenziali su tutti i siti.

In questa guida, considereremo già presenti sul server:

  • Webserver Apache 2
  • Mysql 5.0.x
  • Php 5.x

Nel nostro esempio, configureremo l'installazione per creare due siti: sito1.com e sito2.com

1) Scarichiamo l'ultima versione di Drupal dal sito http://www.drupal.org e scompattiamola nella documentRoot del webserver (es. /home/web/drupal)

2) Entriamo nella directory sites/ dentro la cartella di Drupal  (es. /home/web/drupal/sites).

3) Creiamo qui le directory relative ai siti che vogliamo gestire:

# mkdir sito1.com && mkdir sito2.com

4) Copiamo il file di configurazione default.settings.php  presente in drupal/sites/default

# cp default/default.settings.php sito1.com/settings.php

# cp default/default.settings.php sito2.com/settings.php

5) Modifichiamo il file sito1.com/settings.php

Alla riga 92 mettiamo i dati relativi al nostro DB:

$db_url = 'mysql://username:password@localhost/databasename';

Alla riga 93 indicheremo quali saranno le tabelle condivise tra i siti e quali quelle specifiche, in questo modo:

$db_prefix = array(
'default'   => 'sito1_',
'users'     => 'shared_',
'sessions'  => 'shared_',
'role'      => 'shared_',
'authmap'   => 'shared_',
'sequences' => 'shared_',
'profile_fields' => 'shared_',
'profile_values' => 'shared_',
'users_roles' => 'shared_',
);

6) Salviamo le modifiche e installiamo il primo sito, posizionandoci sull'url: http://sito1.com/install.php

7) Terminata l'installazione, procediamo con la modifica della configurazione per il sito2.com. Modifichiamo il file sito2.com/settings.php

Alla riga 92 mettiamo i dati relativi al nostro DB:

$db_url = 'mysql://username:password@localhost/databasename';

Alla riga 93 indicheremo quali saranno le tabelle condivise tra i siti e quali quelle specifiche, in questo modo:

$db_prefix = array(
'default'   => 'sito2_',
);

8) Salviamo le modifiche e installiamo il primo sito, posizionandoci sull'url: http://sito2.com/install.php

9) Terminata l'installazione, modifichiamo nuovamente il file sito2.com/settings.php

Alla riga 93 indicheremo quali saranno le tabelle condivise tra i siti e quali quelle specifiche, in questo modo:

$db_prefix = array(
'default'   => 'sito2_',
'users'     => 'shared_',
'sessions'  => 'shared_',
'role'      => 'shared_',
'authmap'   => 'shared_',
'sequences' => 'shared_',
'profile_fields' => 'shared_',
'profile_values' => 'shared_',
'users_roles' => 'shared_',
);

Seguendo questi passi dovremmo essere riusciti a creare due siti che condividono gli stessi utenti, partendo da un unica istanza del core di Drupal.

Questo tipo di configurazione può anche essere utile presso quei provider che non permettono di creare più siti o pi database all'interno dello stesso piano di hosting.


Riferimenti

Installing virtual hosts for Drupal sites and subsites

Setup of /sites directory for multi-site

Multi-Site, Single Codebase, Shared Database, Shared Sign-on 5.x