Quando si acquista uno spazio web per poter pubblicare il proprio sito internet si ci affida a delle aziende che si occupano di hosting (dall’inglese to host, ospitare). Il servizio, di solito, non ha costi molto elevati in quanto su uno stesso server (Windows o Linux che sia) vengono ospitati diversi siti web.
Questa tecnica consente di risparmiare IP pubblici e allo stesso tempo risorse hardware: al server viene assegnato un IP pubblico, e i DNS (es. www.alfa.it, www.beta.it, www.gamma.it) puntano allo stesso IP pubblico.
Il server, a seconda della provenienza della richiesta, la reindirizza su un sito web piuttosto che un altro.
Oggi spiego come configurare Apache in modo tale da poter ospitare molteplici siti web sullo stesso server.
Requisiti:
- server fisico/virtuale Linux Centos 6.5
- server web Apache2
Procedura
Per ciascun sito che si vuole ospitare si può procedere nel seguente modo
cd /var/www
mkdir www.alfa.it
cd www.alfa.it
mkdir www
mkdir cgi-bin
In “/var/www/” creare una cartella “root” nella quale si salva un file “index.html” contente il nome host del server
mkdir /var/www/root
index.html
<html>
<head>
<title>web01</title>
</head>
<body>
<h1>web01</h1>
</body>
</html>
Per poter abilitare i Virtual Hosts è necessario editare il file relativo alla configurazione di Apache; tale file “httpd.conf” si trova in “/etc/httpd/conf/”.
vi /etc/httpd/conf/httpd.conf
All’interno del file devono essere presenti le seguenti righe (non commentate):
- DocumentRoot “/var/www/root/
- DirectoryIndex index.html index.htm
- Listen 80
Nota bene: settando la DocumentRoot di default con “/var/www/root/” impediamo che dal broswer, digitando l’IP pubblico/privato del server, sia possibile visualizzare le directory relative agli altri siti web.
Cercare la sezione relativa ai Virtual Hosts; assicurarsi che la riga “NameVirtualHost *:80” non sia commentata.
Per ciascun sito web da ospitare bisgona inserire la seguente configurazione:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/alfa.it/www
ServerName www.alfa.it
ServerAlias alfa.it
ErrorLog /var/log/apache/alfa.it-error_log
CustomLog /var/log/apache/alfa.it-access_log
</VirtualHost>
ServerAdmin indica la mail dell’amministratore del sito web
DocumentRoot indica il path del sito web
ServerName indica il DNS con il quale si accede al sito web
ServerAlias indica il DNS senza il “www”
ErrorLog indica il percorso nel quale saranno presenti i log di errore del sito in oggetto
CustomLog indica il percorso nel quale saranno presenti i log del sito in oggetto
Riavviare il server di Apache: service httpd restart
Se si vuole risolvere il DNS ww.alfa.it dal server web stesso si può aggiungere una riga al file hosts in “/etc/”
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
#Virtual Hosts
127.0.0.1 www.alfa.it