Come costruire e gestire un multisito con Drupal 7

Ritratto di Vanni

Un webmaster deve spendere parte del suo tempo per ogni sito web che amministra. Chi ha la gestione e manutenzione di un sito creato con Drupal deve tenerlo costantemente aggiornato,  in quanto molto spesso escono aggiornamenti per i moduli e i temi, senza contare le nuove release del core. Tenere curato questo aspetto è essenziale per la sicurezza e il buon funzionamento del sito.  Il “problema” si pone quando un solo webmaster amministra decine di siti e se per esempio esce una nuova versione del modulo “Views” dovrà aggiornare tale modulo in tutti i siti che lo usano, spendendo così una gran quantità di tempo.  Per ovviare a tale problematica, Drupal 7 ci dà la possibilità di costruire un multisito (multisite), dove con una solainstallazione” possiamo amministrare diversi siti indipendenti l’uno dall’altro.

Con questo sistema possiamo creare siti con diversi domini, oppure dei sottodomini o ancora delle sottocartelle.  Per poter fare questo, però, si deve avere accesso ai files di configurazione del server di hosting; in questo pagina, descriverò come poter creare un multisito su un computer locale, usando come server la piattaforma Xampp e sistema operativo Windows 8, ma la procedura è grossomodo la stessa per qualsiasi server.

PERCHE’ INSTALLARE UNA PIATTAFORMA MULTI-SITE

Come accennavo precedentemente, il pregio del multisito sta nell’abbattere i tempi di manutenzione dei vari siti, in quanto:

  • È presente un’unica installazione di Drupal 7, quindi se si deve aggiornare il core basta aggiornare la directory principale e automaticamente tutti i domini derivanti saranno aggiornati
  • Possiamo utilizzare lo stesso modulo e lo stesso tema in diversi siti, quindi basta un aggiornamento per tutti domini
  • Possiamo personalizzare ogni sito derivato con dei moduli e dei temi dedicati solo a lui

COME CREARE UN MULTISITO IN UN SERVER XAMPP E CON SISTEMA OPERATIVO WINDOWS 8

Per qualsiasi chiarimento ed approfondimento rimando alla guida ufficiale.

  • Creare un nuovo database per ogni sito che vogliamo costruire (in linea teorica si potrebbe anche condividere lo stesso database, ci sono delle tecniche apposite, ma è fortemente sconsigliato)
  • Decomprimere la cartella di Drupal 7 nella cartella htdocs di Xampp
  • Entrare nella cartella di Drupal e successivamente nella cartella “sites
  • In questa cartella si deve creare una nuova sub-directory per ogni dominio che vogliamo creare e a cui daremo il nome del sito (nel mio esempio ho costruito un sito chiamato “sperimentiamo.com” quindi il percorso era htdocs/drupal/sites/sperimentiamo.com)

Si può chiamare il sito come si vuole e si può aggiungere l’estensione .com/.it/.net ecc…

Non si deve usare il www all’inizio.

Chi vuole creare un sottodominio deve rinominare la cartella: nome_sottodominio.nome_sito.com

Chi vuole creare una sottocartella deve rinominare la directory:  nome_sito.com.nome_sottocartella (questa scelta è un po’ più complicata rispetto alle altre, rimando alla guida ufficiale sottocartella)

  • Copiare il file default.settings.php (lo si trova in drupal/sites/default) in ogni sub-directory che abbiamo creato e rinominarlo settings.php, modificare al suo interno le credenziali per accedere al database che avevamo creato per quel sito
  •  Aprire con un editor di testo il file “httpd-vhosts.conf” (che troviamo in C:xampp/apache/conf/extra) e aggiungere questa dicitura per ogni nuovo sito da creare:
<VirtualHost *:80>

    DocumentRoot "C:/xampp/htdocs/cartella_drupal/"

    ServerName nome_del_sito

</VirtualHost>

Io ho creato 2 siti all’interno della cartella sito-esperimenti, ecco le mie stringhe:

<VirtualHost *:80>

    DocumentRoot "C:/xampp/htdocs/sito-esperimenti/"

    ServerName esperimenti1

</VirtualHost>

<VirtualHost *:80>

    DocumentRoot "C:/xampp/htdocs/sito-esperimenti/"

    ServerName sperimentiamo.com

</VirtualHost>

Volendo si possono anche decommentare e modificare le stringhe di esempio che sono già scritte nel file:

##<VirtualHost *:80>

    ##ServerAdmin [email protected]

    ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"

    ##ServerName dummy-host.example.com

    ##ServerAlias www.dummy-host.example.com

    ##ErrorLog "logs/dummy-host.example.com-error.log"

    ##CustomLog "logs/dummy-host.example.com-access.log" common

##<VirtualHost>


##<VirtualHost *:80>

    ##ServerAdmin [email protected]

    ##DocumentRoot "C:/xampp/htdocs/dummy-host2.example.com"

    ##ServerName dummy-host2.example.com

    ##ErrorLog "logs/dummy-host2.example.com-error.log"

    ##CustomLog "logs/dummy-host2.example.com-access.log" common

##<VirtualHost>
  • Aprire con un editor di testo il file “hosts” (che troviamo in C:windows/system32/drivers/etc) e aggiungere queste stringhe:
127.0.0.1    nome_del_sito.com

Nel mio esempio ho inserito le stringhe:

127.0.0.1    esperimenti1

127.0.0.1    sperimentiamo.com
  • Ora lanciare nel browser per ogni nuovo sito l’Url:

http:// nome_del_sito.com/install.php

si avvierà cosi l’installazione dei nuovi siti nei database (seguire la classica procedura)

pagina di installazione del primo sito su una piattaforma multisito

  • Finita l’installazione di ogni sito avremmo dei siti perfettamente distinti e funzionanti
  • Sito 1 homepage del primo sito installato
  • Sito 2 homepage del secondo sito installato
  • Come si può vedere, se si necessita di un aggiornamento
  • notifica di drupal per l'aggiornamento della nuova release del core
  • Con una sola operazione di aggiornamento entrambi i siti risulteranno apposto
  • Sito 1 notifica di aggiornamento effettuato al primo sito
  • Sito 2 notifica di aggiornamento effettuato al secondo sito
  • I moduli comuni a tutti i siti si devono inserire nella cartella drupal/sites/all/modules
  • Mentre se vogliamo personalizzare un solo sito (in questo esempio ad uno dei 2 siti ho attivato il tema  “mayo”)
  • personalizzazione di uno dei due siti con un tema dedicato
  • Nella sub-directory di quel sito creare una cartella modules e una themes in cui inserire moduli e temi specifici
  • directory con relative cartelle per il funzionamento dei nuovi siti

Commenti

Multisito in Remoto

Salve, ma se volessi creare un multisito in remoto con sottocartella e non sottodominio?(Aruba non permette di creare sottodomini se non a pagamento)

 

Grazie.

Ciao Crescenzo,

Ciao Crescenzo,

devo realizzare un multisito e letto la tua guida. E' chiara ed esaustiva ma sicuramente sbaglio qualcosa, in quanto nell'esecuzione non si comporta come da te descritto

Premetto che sto facendo le prove in locale con XAMPP.  Ho seguito le tue indicazioni ma mi sa che sbaglio qualcosa

Ho scaricato drupal 8 in locale nella cartella c:\xampp\htdocs\Prova

 

In Prova\sites ho creato due cartelle

Prova1  e  Prova2. In entrambe queste cartelle ho copiato il file default.settings.php rinominandolo in settings.php

In entrambi questi file ho inserito le caratteristiche del dataBase precedentemente creato (dataBase Prova1 e DataBase Prova2

 

Proseguo aprendo il file C:\xampp\apache\conf\extra\httpd-vhosts.conf, decommento le linee e inserisco questi dati:

<VirtualHost *:80>

    DocumentRoot "C:/xampp/htdocs/Prova"

    ServerName Prova

</VirtualHost>

 

<VirtualHost *:80>

    DocumentRoot "C:/xampp/htdocs/Prova"

    ServerName Prova1

</VirtualHost>

 

<VirtualHost *:80>

    DocumentRoot "C:/xampp/htdocs/Prova"

    ServerName Prova2

</VirtualHost>

 

 

Successivamente ho aperto il file C:\Windows\System32\drivers\etc\hosts e scritte le righe successive

# localhost name resolution is handled within DNS itself.

127.0.0.1       Prova

127.0.0.1       Prova1

127.0.0.1       Prova2

 

La guida prosegue indicando di scrivere nel browser  http:// nome_del_sito.com/install.php

Per me dovrebbe essere http://Prova1/install.php  e poi  http://Prova2/install.php  per l'installazione del secondo

 

Ho lanciato l'installazione di prova1 con http://Prova1/install.php  e sono riuscito ad effettuare l'installazione.

Quando lancio i lcomando http://Prova2/install.php per l'installazione di Prova2 mi ritorna un msgg  che mi avvisa che Drupal è già installato. Da quel che posso capire le cartelle prova1 e prova2 con i rispettivi parametri di accessso al database non li tiene proprio presenti

 

Preciso che il dataBase Prova non l'ho creato e aprendo il file settings.php presente nella cartella sites/defaul, mi riporta i dati dell'accesso del dataBase prova1.

Sicuramente è oer questo che mi dice che l'installazione è stat già effettuata.

Forse devo eliminare in host il VHOST prova?

 

Ritratto di Vanni

Salve Crescenzo,

Salve, probabilmente con Drupal 8 sono cambiate le procudure per installare un multisito, in questo articolo mi riferisco specificamente a Drupal 7.

Non saprei darti dei consigli utili riguardo a Drupal 8 perche' non lo sto seguendo in quanto ora lavoro con altre tecnologie.

Ho trovato questo link dove puoi dare un'occhiata per un multisito con Drupal 8: https://www.drupal.org/docs/8/multisite

Aggiungi un commento

Filtered HTML

  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Elementi HTML permessi: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Comment

  • Elementi HTML permessi: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Plain text

  • Nessun tag HTML consentito.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Linee e paragrafi vanno a capo automaticamente.
Per tutelare la vostra privacy suggerisco l'uso di un nickname o lasciare anonimo...
CAPTCHA
Questa domanda e' per testare se sei un visitatore persona e non un software che genera spam
2 + 17 =
Risolvi la semplice domanda di matematica e inserisci il risultato. Es. se e' 1 + 3 inserisci 4.