Condividi su Facebook
Apache e virtual host
Scritto da: Monska il 07/09/2009 alle 19:04
Tag: Internet, Informatica, Apache.Visto 1212 volte.


Apache

In questa guida verrà spiegato come configurare il Web Server Apache per l'utilizzo del virtual host.
Il Virtual Hosting è una tecnica che permette la gestione dei domini basandosi sul loro nome simbolico e non sul loro indirizzo IP. Tramite la configurazione di questo servizio, un web server, avente un unico IP pubblico, sarà in grado di ospitare differenti siti web.

ATTENZIONE: questo tutorial è riferito ad Apache.

Vediamo allora come configurare Apache in modo tale che il servizio utilizzi il Virtual Host.

Per prima cosa dobbiamo conoscere qual'è la DocumentRoot del nostro web server in modo da creare dentro ad essa la cartella contenente i nostri siti.
Per farlo dobbiamo analizzare il file httpd.conf o apache2.conf in base alla distribuzione (su windows la procedura è analoga, basterà aprire il file contenuto nella cartella di installazione con il blocco note).
Su fedora possiamo dare il seguente comando:

Code:

cat /etc/httpd/conf/httpd.conf | grep DocumentRoot

su debian invece

Code:
cat /etc/apache2/apache2.conf | grep DocumentRoot

il cui risultato dovrebbe essere una cosa del tipo

Code:
DocumentRoot "/var/www/html"

Abbiamo quindi individuato che il WebServer utilizza come / (Root Directory) la cartella /var/www/html; quindi puntando il nostro browser sull'indirizzo del web server la prima pagina che si vedrà sarà l'index di tale cartella.
All'interno di tale cartella creiamo altre cartelle con il nome del dominio che vogliamo adottare.
Nel caso di linux possiamo dare il seguente comando:

Code:

mkdir /var/www/html/<dominio>

Una volta creata la cartella dobbiamo impostare il web server ad andare a modificare la sua DocumentRoot nel caso in cui il nome simbolico richiesto sia quello specifico del nostro dominio.
Per esempio, se volessimo gestire il dominio www.esempio.it dovremo creare la cartella /var/www/html/esempio.it e configurare apache in modo che alla richiesta di www.esempio.it la DocumentRoot di tale richiesta sia /var/www/html/esempio.it e non quella generale (/var/www/html).
Per farlo dobbiamo editare il file /etc/httpd/conf/httpd.conf o /etc/apache2/apache2.conf in base alla distribuzione, aggiungendo nella sezione VirtualHost (generalmente alla fine del file) le seguenti linee di codice:

Code:

<VirtualHost *:80>
   ServerName esempio.it
   DocumentRoot /var/www/html/esempio.it
</VirtualHost>

Nel caso non fossimo ancora in possesso del DNS, ma dobbiamo testare il funzionamento, su linux si possono definire degli host statici inserendoli nel file /etc/hosts.
Nel nostro caso andremo ad inserire in fondo al file le seguenti righe:

Code:
127.0.0.1   esempio.it
127.0.0.1   www.esempio.it

In questo caso stiamo utilizzando un web server sul computer locale, in caso di un web server remoto andrà sostituito l'IP 127.0.0.1 con quello del web server remoto.

Puntando ora il browser sull'indirizzo www.esempio.it la pagina che comparirà sarà l'index contenuto nella cartella /var/www/html/esempio.it.

Per ora abbiamo configurato un solo Virtual Host. Se volessimo ampliare i domini da gestire, quindi aggiungerne degli altri non basterà aggiungere un altro campo VirtualHost.
Per aggiungere ulteriori domini, per esempio se volessimo gestire anche il dominio esempio2.it, dopo aver creato la cartella di tale dominio, la parte di VirtualHost del file di configurazione andrebbe modificata come segue:

Code:

NameVirtualHost *:80

<VirtualHost *:80>
   ServerName esempio.it
   DocumentRoot /var/www/html/esempio.it
</VirtualHost>

<VirtualHost *:80>
   ServerName esempio2.it
   DocumentRoot /var/www/html/esempio2.it
</VirtualHost>

ATTENZIONE: ricordiamo che, in caso di domini gestiti da persone differenti, o comunque per una maggiore sicurezza, è altamente consigliabile applicare ai VirtualHost buone politiche di sicurezza per l'utilizzo della propria unica cartella.

Buona configurazione.


08/09/2009 - 08:24:31NeRON dice:
ottimo ;)
19/07/2011 - 02:40:55MaZkIkvjPoIpUSs dice:
Ya learn something new evreyady. It's true I guess!

Aggiungi un commento:
Nick:
captchaInserire il codice: