Cosa sono i virtual hosts e a cosa servono

Un virtualhost è intanto un servizio che offre apache e che serve ad ospitare più siti nello stesso server specificando più indirizzi ip (Come spiegheremo in seguito) o utilizzando lo stesso ip. Ad ogni sito corrisponderà una determinata cartella, che potrà anche corrispondere a quella di un'altro virtualhost (cosa estremamentre inutile, ma fattibbile)

DEVO AVER INSTALLATO QUALCOS'ALTRO OLTRE AD APACHE?
No, basta modificare ed aggiungere poche cose nel file httpd.conf di apache per utilizzare i virtualhost.

COME APRO UN DETERMINATO SITO DAL MIO BROWSER?
Esattamente come con localhost o l'indirizzo ip 127.0.0.1.
Esistono due tipi di virtualhost: gli IP-Based Virtual Hosts e d i Name-Based Virtual Hosts. Qui spiegherò come utilizzare i Name-Based Virtual Hosts, perchè più comodi

COME CONFIGURO IL FILE HTTPD.CONF DI APACHE???

Intanto bisogna decommentare alcune stringhe relative all'uso di "mod_vhost_alias" perciò queste due stringhe:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so e
#AddModule mod_vhost_alias.c
diventeranno
LoadModule vhost_alias_module modules/mod_vhost_alias.so
e
AddModule mod_vhost_alias.c
ok?
Ora passiamo alla creazione vera e propria dei virtualhosts...
Alla fine del file HTTPD.CONF c'è la parte relativa ai virtual host. Per crearne uno dovremo sovrascrivere, o modificare quella parte, così:

# Impostazioni per il virtualhost di ...
#----------------------------------------------------------------------
# get the server name from the Host: header
UseCanonicalName Off
#
# this log format can be split per-virtual-host based on the first field
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
#
Port 80
#questo si può cambiare ma noi utilizzaremo per adesso
#127.0.0.2
NameVirtualHost 127.0.0.2

ServerName www.mioserver.it # Nome del Server
ServerAdmin administrator.email@mioserver.it # Email dell'admin
DocumentRoot c:/Virtualhosts/miohost/ # Path del virtualhost
ErrorLog c:/Virtualhosts/error.php # Codice opzionale
TransferLog c:/virtualhosts/transfer.php # Codice opzionale


OPPURE

NameVirtualHost *


ServerName pippo
DocumentRoot C:/Programmi/Apache~1/Apache/htdocs/reggiocalabriaonline.com/


così abbiamo creato il nostro virtualhost con ip 127.0.0.2.
Se cambiate l'ip del virtualhost a * esso sarà l'unico host visualizzabile, qualunque ip mettete nel browser ok?
Naturalmente dobbiamo modificare le stringhe relative alle path dei file e delle cartelle a seconda delle nostre esigenze... Le perte commentate come codice opzionale si possono tranquillamente eliminare oppure li lasciate e li modificate sempre secondo le vostre esigenze...
Il nostro VirtualHost ora è funzionante! Basta riavviare apache e vedrete!!!
Come faccio a dargli un nome tipo localhost???
Intanto ringrazio a Gnegno per avermelo detto, ed infatti questa operazione si può effettuare modificando il file Hosts, presente nella directory %windir%/system32/drivers/etc/ di windows
oppure nella dir etc di linux.
Appena aprirete questo file troverete già un host registrato: è localhost, che apache ha installato attribuendogli l'ip 127.0.0.1 .
Per aggiungere un host, dovremo intento scrivere l'ip del nostro virtualhost, ed in seguito (non bisogna scriverli attaccati, ma separati da una tabulazione o da uno spazio), il nome che gli vogliamo dare. Se poi si vuole dare un commento si può fare in stile C mettendo un #. Così gli aggiungeremo

# Host configurato da ... il gg/mm/aaaa ore hh/mm
127.0.0.2 paterhost
# /Host

oppure

127.0.0.2 miohost # Il mio primo virtual host!!!

Naturalmente i commenti sono personalizzabili a proprio piacimento...
Riavviate apache e vediamo se funziona... provate a scrivere nel vostro browser http://miohost/ e vediamo se vi appare il vostro virtual host!
Se si, vuol dire che siete sati bravi a seguire le mie indicazioni, se nò, postate che vedremo insieme di risolvere il problema!
PS: Ricordatevi che dovete creare le cartelle corrispondenti al virtualhost e metterci dentro un file php di prova con, per esempio, il seguente contenuto:



Bisogna creare i name server nel file hosts di windows
cioè:

127.0.0.1 server
127.0.0.1 pippo
127.0.0.1 pincopallino
ecc...

Se apache è su un server di una rete LAN, nel file hosts di windows devo mettere l'indirizzo della scheda del server anzichè 127.0.0.1

Nessun commento:

Posta un commento