Al giorno d'oggi, è molto comune che un solo server contenga più di un sito Internet.
Utilizzando Apache o altri server web, è possibile configurare sulla stessa macchina una serie di "virtual hosts" separati, ciascuno con il proprio nome di dominio e la propria cartella di files. Tale configurazione può essere impostata manualmente oppure con strumenti di amministrazione quali Webmin.
Finché si tratta di gestire poche decine di siti statici, questo metodo può apparire praticabile: ma cosa succede quando il numero di siti cresce? Spesso si desidera riutilizzare uno stesso codice applicativo ed una stessa struttura della base dati per più di un sito, e si finisce quindi per crearne miriadi di duplicati sul server, uno per ogni sito: al momento in cui viene pubblicato un aggiornamento di sicurezza importante, diventa difficile se non impossibile installarlo su tutte le copie, ed è molto facile perdere il controllo della situazione.
Wedgefish è stato concepito fin dall'inizio per gestire, con un'unica base di codice ed un unico database, un numero virtualmente illimitato di siti web su di un'unica installazione.
È possibile definire un sito principale, detto "portale", dal quale è possibile controllare un gruppo di siti e crearne di nuovi. Più portali possono essere definiti sulla stessa piattaforma, e tutti sono amministrati da un "superportale" principale.
Questo apre la strada a tutta una serie di interessanti scenari applicativi, quali a titolo di esempio:
- Application Service Providers con centinaia o migliaia di piccoli clienti, i quali desiderano poter mantenere e modificare autonomamente i loro siti a fronte di un ridotto canone mensile o annuale
- portali di blog o siti personali gratuiti, basati sulla pubblicità, dove sono gli utenti stessi a creare e gestire il loro sito
- piattaforme organizzative e decisionali per gli enti e le amministrazioni locali, ove le stesse funzionalità devono essere offerte per i vari Comuni, mantenendo separati i dati
- piattaforme di commercio elettronico ove è possibile ricercare, da un unico portale principale, tutti i prodotti venduti da una rete di sottositi, in base a vari criteri (prezzo, dimensioni, colore, misura...)
- piattaforme collaborative ove gli utenti possono creare il loro profilo, pubblicarlo su un microsito e creare una rete di relazioni con altri utenti
Ogni sito può avere il proprio nome di dominio (con vari alias). Per ciascuno di questi è anche possibile "forzare" un determinato prefisso che verrà aggiunto trasparentemente a tutti gli URL digitati: diventa quindi possibile avere domini che puntano direttamente alla versione in una determinata lingua del sito, oppure alla sezione di amministrazione(1).
In alternativa, in mancanza di domini associati, il sito verrà reso visibile in una sottocartella virtuale del portale principale, con un indirizzo del tipo:
http://www.wedgefish.org/webs/mywebsite/
È possibile definire nella configurazione globale un prefisso differente da "webs".
Come configurare il sistema affinché Wedgefish gestisca più nomi di dominio
Wedgefish è in grado di sostituire completamente la gestione dei virtual hosts del vostro server web.
Configurando più domini come alias di un'installazione di Wedgefish, è possibile fare in modo che tutte le richieste a tali domini vengano gestite dallo stesso codice, utilizzando lo stesso WODBMS. A seconda del dominio richiesto, verrà servito dalla piattaforma il sito corrispondente.
Diventa quindi possibile, con taluni fornitori di servizi di hosting che consentono di gestire un solo sito con un nome di dominio e molti alias, visualizzare a tutti gli effetti più siti differenti.
Su server di cui si ha il controllo della configurazione, è consigliabile definire un virtual host di default che verrà utilizzato per tutte le richieste che non è possibile associare ad un nome di dominio definito sulla macchina.
In questo modo sarà possibile, una volta registrato un nuovo nome di dominio e configurato il DNS per associarlo all'indirizzo IP del server web, assegnarlo direttamente ad un sito utilizzando l'interfaccia web di Wedgefish, senza bisogno di configurare Apache Web Server, risparmiando tempo ed evitando di dover dare accesso alla sua configurazione.
Su Apache Web Server questo può essere fatto rinominando il file che gestisce il virtual host di Wedgefish come "000-default", oppure creando un link simbolico ad esso, con lo stesso nome, digitando ad esempio da terminale:
sudo rm /etc/apache2/sites-enabled/000-default
sudo ln -s /etc/apache2/sites-available/wedgefish /etc/apache2/sites-enabled/000-default
(l'esempio riportato sopra vale per le distribuzioni basate su Debian, come ad esempio Ubuntu)
L'architettura multisito di Wedgefish rende inoltre possibile eseguire la piattaforma anche in modalità standalone, senza dover dipendere minimamente dalla presenza di Apache Web Server e del mod_rewrite per risolvere le richieste ai nomi di dominio e associarle ai relativi siti.
(1) nella versione attuale di Wedgefish, è possibile solamente associare un determinato nome di dominio ad una lingua del sito. Nelle prossime versioni, sarà possibile associare il dominio a qualunque cartella del sito, e anche forzare un redirect automatico qualora si desideri mostrare al browser l'URL originale della pagina.



