Created on 03 Jan 2013 ;    Modified on 21 Jan 2013 ;    Translationenglish

Drupal multisito - Installare un nuovo sito

Premessa

Drupal permette di installare più siti WEB utilizzando una sola istanza del suo codice. Questa capacità  è stata introdotta nel nucleo del sistema sin dalla versione 6 (al momento in cui scrivo questa nota, la versione stabile di Drupal è la 7).

Questo articolo sintetizza i passi necessari ad installare un ulteriore sito WEB in un server Drupal multisito già  funzionante. Ed è derivato dalla procedura esposta nella relativa documentazione di Drupal.

Parto dal presupposto che:

Gli esempi si basano su questi parametri:

Come si nota, preferisco avere due file di configurazione di Apache nella directory /etc/httpd/conf/. Il file httpd.conf contiene i parametri di base per la configurazione di Apache. Mentre il file httpd-hosts.conf continene la configurazione dei siti che sono configurati come virtual host. Il file httpd-hosts.conf viene incluso nel file httpd.conf tramite una direttiva di inclusione, ad esempio aggiungendo la linea che segue:

Include "/etc/httpd/conf/httpd-vhosts.conf"

Anche in questo caso, se intendi utilizzare alcuni degli esempi che seguono alla tua installazione di Drupal, fai attenzione ad utilizzare in modo coerente le tue directory d'installazione.

Logica

I passi da effetture sono i seguenti:

Procedura

Creare la directory del sito

Nel server fare login come root e creare la directory in cui ospitare i contenuti del sito. Ad esempio:

root@host ~# cd /webroot/drupal/sites/
root@host sites# mkdir esempio.com
root@host sites# cp default/settings.php esempio.com/settings.php
root@host sites# chown -R apache:apache esempio.com/
Configurare l'host virtuale per il sito

Fare un backup del file file /etc/httpd/conf/httpd-hosts.conf 1, ad esempio:

[root@host sites]# cd /etc/httpd/conf
[root@host conf]# cp httpd-vhosts.conf httpd-vhosts-121228.conf

Dopo di che modificare httpd-hosts.conf utilizzando un editor di testo aggiungendo la sezione:

<VirtualHost xx.yy.zz.ttt:80>
  DocumentRoot "/webroot/drupal"
  ServerName www.esempio.com
  CustomLog "logs/www.esempio.com.access.log" combined
  ErrorLog  "logs/www.esempio.com.error.log"
  <Directory "/webroot/drupal">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

Quindi riavviare il servizio:

[root@host sites]# service httpd restart
Interruzione di httpd:                                     [  OK  ]
Avvio di httpd:                                            [  OK  ]
(opzionale) Inserire nel file hosts l'indirizzo del server

Questa attività è necessaria se il nuovo sito ancora non è stato aggiunto ad un DNS pubblico, ma lo si deve comunque consultare (si veda il successivo passo: eseguire http://www.esempio.com/install.php).

Se si utilizza un PC Windows, con il sistema operativo installato in c:\windows\ , sarà necessario modificare il file c:\windows\system32\drivers\etc\hosts aggiungendo la riga:

xx.yy.zz.ttt    www.esempio.com
Creare la base dati per il sito e l'utenza che la utilizza

Ora dobbiamo creare il DB utilizzato dal nuovo sito, e l'utenza con cui Drupal si collega per utilizzare il DB in questione. Per creare il DB utilizziamo il programma mysqladmin, presentandoci come amministratori MySQL:

[root@host sites]# mysqladmin -u root -p create esempio_db
Enter password:

Dopo di che creiamo l'utente utilizzando il programma mysql, sempre presentandoci come amministratori MySQL:

[root@host sites]# mysql -u root -p
Enter password:
Welcome to ...
mysql> create user 'esempio_usr'@'%' identified by 'esempio_pwd';
mysql> grant select, insert, update, delete, create, drop, index, alter, create temporary tables, lock tables on esempio_db.* to 'esempio_usr'@'%' identified by 'esempio_pwd';
mysql> create user 'esempio_usr'@'localhost' identified by 'esempio_pwd';
mysql> grant select, insert, update, delete, create, drop, index, alter, create temporary tables, lock tables on esempio_db.* to 'esempio_usr'@'localhost' identified by 'esempio_pwd';
mysql> exit

Come si vede abbiamo configurato l'utente esempio_usr per poter lavorare sia in collegamento remoto, da qualunque indirizzo IP (@'%'), sia localmente al server (@'localhost').

Eseguire http://www.esempio.com/install.php

Da un web browser vai all'indirizzo http://www.esempio.com/install.php e rispondi alle richieste del sistema. Il programma install.php va utilizzato una sola volta, e, in base alle risposte, modifica opportunamente il file di configurazione del nuovo sito Drupal.

Tra l'altro questo programma effettua anche la creazione di un account per l'amministrazione del sito, chiedendo nome, password e email che si vogliono utilizzare. Queste credenziali è il caso di conservarle con cura. Se le scorderemo, per poter amministrare il sito dovremo sudare ...

Riferimenti



  1. Ricorda: questo file viene incluso in /etc/httpd/conf/httpd.conf con la direttiva:

    Include "/etc/httpd/conf/httpd-vhosts.conf"