Come creare un Virtual Host su Apache XAMPP

Questo articolo descrive come creare un Virtual Host su un web server Apache XAMPP nei sistemi operativi Windows, Linux e iOS.

"Application server, database server, FTP server" Photo by Christina @ wocintechchat.com on Unsplash

immagine dell'autore dell'articolo

Scritto da: Alberto

Una vita nell'informatica, per lavoro e per passione.
agsdix-far fa-calendar-alt
Data pubblicazione: 17 Settembre 2017
Categorie: XAMPP
agsdix-far fa-comments

Questo articolo descrive come creare un Virtual Host su un web server Apache XAMPP nei sistemi operativi Windows, Linux e iOS.

Esistono almeno tre modi per ospitare più siti web sullo stesso web server:

  1. utilizzare un unico nome di dominio (es. localhost) e creare una cartella per ciascun sito: http://localhost/sito1/; http://localhost/sito2/; ecc.
  2. Creare dei sottodomini: http://sito1.localhost/; http://sito2.localhost/; ecc.
  3. Creare uno o più virtual host. Questa soluzione permette di utilizzare nomi di dominio diversi: http://sito1.it/; http://sito2.it/; ecc. In questo modo è possibile creare un sito di prova in locale che abbia lo stesso nome dominio del sito di produzione, con il vantaggio di non dover convertire il nome di dominio nel momento in cui si porta il sito dall’ambiente di sviluppo a quello di produzione.

Le attività da svolgere per creare un virtual host sono pressoché identiche per tutti tre i sistemi operativi:

  • Associare il nome del sito alla directory del web server che ne conterrà le pagine.
  • Associare il nome del sito all’indirizzo IP del web server.

Vediamo le attività di dettaglio per ciascun Sistema Operativo.

Creare un Virtual Host in ambiente Windows

Eseguire le seguenti attività sul computer dov’è installato il web server XAMPP Apache (nell’esempio il nuovo dominio sarà: miosito.it):

  • aprire una finestra di comando (ad esempio premendo contemporaneamente il tasto Start (in basso a sinistra nella tastiera) e il tasto R e poi scrivendo “cmd”, seguito da invio;
  • ottenere l’indirizzo IP del web server con il comando ipconfig (ipotizziamo che l’indirizzo IP sia 192.168.1.9);
  • creare una nuova cartella \logs all’interno c:\xampp;
  • creare una nuova struttura di cartelle \miosito\public_html all’interno di c:\xampp\htdocs;
  • creare un file index.php nella cartella \public_html, inserire il seguente codice quindi salvare il file:
<?php
echo '<h1 style="text-align:center; margin:20px auto;">Hello world!</h1>';
  • aprire in modifica il file C:\xampp\apache\conf\extra\httpd-vhosts.conf ed individuare il testo seguente:
<VirtualHost *:80>     
    ServerName localhost
    DocumentRoot "C:\xampp\htdocs" 
</VirtualHost>
  • Inserire subito sotto al testo (o comunque in coda al testo già presente) le istruzioni per configurare il nuovo virtual host:
<VirtualHost *:80>
    ServerName miosito.it
    DocumentRoot "C:\xampp\htdocs\miosito\public_html"
    ErrorLog     "C:\xampp\logs\miosito-error_log"
    CustomLog    "C:\xampp\logs\miosito-access_log" common
</VirtualHost>

In questo modo abbiamo istruito il web server sulla cartella che conterrà le pagine del nuovo sito e su quali file di log dovrà registrare eventuali messaggi di errore relativi al nuovo sito.

  • Riavviare il web server.

Sul computer che svolge il ruolo di client (dov’è installato il browser):

  • aprire in modifica il file C:\windows\system32\drivers\etc\hosts ed inserire la seguente riga (dove 192.168.1.9 è l’indirizzo IP del web server ottenuto all’inizio della procedura):
192.168.1.9 miosito.it
  • Avviare il browser e nella barra degli indirizzi inserire: http://miosito.it
  • Se tutto è andato a buon fine, verrà visualizzata la scritta Hello World!

Cosa fare se non si riesce ad accedere a http://localhost

Adesso il web server ospita due siti: http://localhost (che ospita il sito di presentazione di XAMPP) e il nuovo http://miosito.it. Se http://localhost restituisce un errore 404 pagina non trovata, verificare che nel file C:\xampp\apache\conf\extra\httpd-vhosts.conf siano effettivamente presenti le seguenti istruzioni:

<VirtualHost *:80>     
    ServerName localhost
    DocumentRoot "C:\xampp\htdocs" 
</VirtualHost>

Se non sono presenti, aggiungerle e riavviare Apache.

Creare un Virtual Host in ambiente Linux

  • Innanzitutto verificare se nel file di configurazione /opt/lampp/etc/httpd.conf del web server è presente una istruzione che includa il file di configurazione degli host virtuali; eventualmente aggiungere l’istruzione:
# Virtual hosts 
Include etc/extra/httpd-vhosts.conf
  • Aprire il file di configurazione /opt/lampp/etc/extra/httpd-vhosts.com e verificare che sia presente la configurazione dell’host predefinito (se nonpresente, inserire le seguenti righe):
# VirtualHost per localhost
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "/opt/lampp/htdocs"
    ServerName localhost
    ErrorLog "logs/localhost-error_log"
    CustomLog "logs/localhost-access_log" common
</VirtualHost>

Inserire le seguenti istruzioni dopo quelle di configurazione dell’host predefinito localhost:

<VirtualHost *:80>
    ServerName miosito.it
    DocumentRoot "/opt/lampp/htdocs/miosito"
    ErrorLog "logs/miosito.it-error_log"
    CustomLog "logs/miosito.it-access_log" common
</VirtualHost>
  • Riavviare il web server
  • Se il computer che svolge il ruolo di client monta anch’esso il sistema operativo Linux, aprire in modifica il file /etc/hosts ed inserire la seguente riga (dove 192.168.1.9 è l’indirizzo IP del web server):
192.168.1.9 miosito.it

Creare un Virtual Host in ambiente iOS

Quanto visto per Windows e Linux è valido anche per il Mac; i file di configurazione da modificare sono:

  • /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf
  • /private/etc/hosts

Appendice: come attivare porte multiple su Apache

Se si ha la necessità di attivare due siti di test su http://localhost e non si vuole ricorrere a sottocartelle (http://localhost/sito1 e http://localhost/sito2), è possibile attivare più porte sul webserver Apache.

Per attivare porte multiple su Apache di devono eseguire alcuni step:

  • Aprire in modifica il file di configurazione httpd.conf (in una istallazione XAMPP si trova nella directory /opt/lamp/etc se in ambiente Unix o nella cartella C:\xampp\apache\conf se in ambiente Windows) ed aggiungere una ulteriore porta, oltre a quella predefina “80”, nella sezione “Listen”:
Listen 80
Listen 8080 // nuova porta 8080
  • Inserire un nuovo virtual host, specificando la nuova porta sia come parametro della dichiarazione <virtualhost> sia nella definizione del Servername:
<VirtualHost *:8080> 
    ServerName localhost:8080 
    ...
</VirtualHost>
  • Riavviare il server Apache.
  • Se si utilizza il Control Panel di XAMPP, verificare dopo il riavvio che la nuova porta compaia nella colonna Port(s) del server Apache.

Ulteriori risorse sulla creazione di Virtual Host

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *