Created on 03 Jan 2013 ; Modified on 21 Jan 2013 ; Translation: english
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:
cd
al file system della tua distribuzione;httpd
;Gli esempi si basano su questi parametri:
xx.yy.zz.ttt
;80
;/webroot/drupal
;/webroot/drupal/sites/
;/webroot/drupal/sites/esempio.com
;/etc/httpd/conf/httpd.conf
;/etc/httpd/conf/httpd-hosts.conf
;root
;esempio_db
;esempio_usr
;esempio_pwd
.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.
I passi da effetture sono i seguenti:
settings.php
http://sito/install.php
; questo modificherà il settings.php
inserendo i valori necessari al funzionamento del nuovo 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/
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 ]
hosts
l'indirizzo del serverQuesta 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
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'
).
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 ...
Ricorda: questo file viene incluso in /etc/httpd/conf/httpd.conf
con la direttiva:
Include "/etc/httpd/conf/httpd-vhosts.conf" ↩