Una delle operazioni più comuni su Apache2 e quella di ospitare più siti web in un singolo server. Devo dire che tra le tante distribuzioni utilizzate mi risulta molto più semplice con gli strumenti aggiuntivi che il pacchetto Debian fornisce.
Ci sono diversi modi di configurare Apache per ospitare più siti, che vanno dal più semplice al più complesso. Qui stiamo solo andando a usare le basi con l’uso delle direttive NameVirtualHost. In questo post vediamo come condividere lo stesso IP per più siti/domini.
Ad esempio, se disponiamo di un server Apache sull’indirizzo IP 192.168.1.1 e vogliamo ospitare tre siti cloudzone.com, cloudzone.net e cloudzone.org dobbiamo fare in modo che questi nomi risolvano l’indirizzo IP del server.
Dal momento che ospitiamo più siti web sullo stesso host dobbiamo creare le opportune directory document root, cgi-bin, logs per ogni sito/dominio.
Creiamo le directory con i comandi:
Per cloudzone.com
mkdir /home/www
mkdir /home/www/www.cloudzone.com
mkdir /home/www/www.cloudzone.com/htdocs
mkdir /home/www/www.cloudzone.com/cgi-bin
mkdir /home/www/www.cloudzone.com/logs
Per cloudzone.net
mkdir /home/www/www.cloudzone.net
mkdir /home/www/www.cloudzone.net/htdocs
mkdir /home/www/www.cloudzone.net/logs
mkdir /home/www/www.cloudzone.net/cgi-bin
Per cloudzone.org
mkdir /home/www/www.cloudzone.org
mkdir /home/www/www.cloudzone.org/htdocs
mkdir /home/www/www.cloudzone.org/logs
mkdir /home/www/www.cloudzone.org/cgi-bin
Adesso creiamo il file di configurazione host per ogni sito/dominio
nano /etc/apache2/sites-available/www.cloudzone.com
e inseriamo il contenuto:
# cloudzone.com (/etc/apache2/sites-available/www.cloudzone.com)
<VirtualHost *>
ServerAdmin webmaster@cloudzone.com
ServerName www.cloudzone.com
ServerAlias cloudzone.com
# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /home/www/www.cloudzone.com/htdocs/
# CGI Directory
ScriptAlias /cgi-bin/ /home/www/www.cloudzone.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Logfiles
ErrorLog /home/www/www.cloudzone.com/logs/error.log
CustomLog /home/www/www.cloudzone.com/logs/access.log combined
</VirtualHost>
Questa operazione va fatta altre due volte sostituende la voce cloudzone.com la prima con cloudzone.net e la seconda con cloudzone.org.
Fatto questo dobbiamo abilitare i siti eseguendo i comani:
a2ensite www.cloudzone.com
a2ensite www.cloudzone.net
a2ensite www.cloudzone.org
Abbiamo finito basta solo riavviare il servizio Apache e il tutto è pronto:
/etc/init.d/apache2 reload