Configurare i Virtual Hosts
Apache2 - Configurazione di un Virtual Hosts
Quando si utilizza il server Web Apache, è possibile utilizzare host virtuali (simili ai blocchi server in Nginx) per incapsulare i dettagli di configurazione e ospitare più di un dominio da un singolo server.
Apache su Ubuntu ha un server-block abilitato per impostazione predefinita che è configurato per servire i documenti dalla directory /var/www/html. Sebbene funzioni bene per un singolo sito, può diventare ingombrante se si ospitano più siti.
Invece di modificare /var/www/html, creiamo una struttura di directory all'interno di /var/www per un sito tuo_dominio, lasciando /var/www/html come directory predefinita da servire se una richiesta del client non corrisponde a nessun altro sito.
Creare la directory per nuovosito.it:
$ sudo mkdir /var/www/nuovosito.it
Assegnare la proprietà della directory con la variabile di ambiente $USER:
$sudo chown -R $USER:$USER /var/www/nuovosito.it
Per garantire che le tue autorizzazioni siano corrette e consentire al proprietario di leggere, scrivere ed eseguire i file concedendo solo autorizzazioni di lettura ed esecuzione a gruppi e altri:
$ sudo chmod -R 755 /var/www/nuovosito.it
Per testare il funzionamento del sito creare una pagina index.html di esempio:
$ sudo nano /var/www/nuovosito.it/index.html
Inserire il codice html di esempio e salvare il file
<html>
<head>
<title>Benvenututo su Nuovo Sito !</title>
</head>
<body>
<h1>Tutto OK Il nuovosito.it virtual host funziona !</h1>
</body>
</html>
Affinché Apache possa servire questo contenuto, è necessario creare un file host virtuale con le direttive corrette.
Invece di modificare direttamente il file di configurazione predefinito che si trova in /etc/apache2/sites-available/000-default.conf, creiamone uno nuovo in /etc/apache2/sites-available/nuovosito.it.conf:
$ sudo nano /etc/apache2/sites-available/nuovosito.it.conf
Inserire il seguente blocco di configurazione, che è simile a quello predefinito, ma aggiornato per la nuova directory e nome di dominio:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName nuovosito.it
ServerAlias www.nuovosito.it
DocumentRoot /var/www/nuovosito.it
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Abilitare il file _.conf _con il comando a2ensite:
$ sudo a2ensite nuovosito.it.conf
Disabilitare il sito predefinito definito in 000-default.conf:
$ sudo a2dissite 000-default.conf
Test verifica errori nella configurazione:
$ sudo apache2ctl configtest
Il risultato deve essere Syntax OK
Riavviare Apache per implementare le modifiche:
$ sudo systemctl restart apache2
Verificare il funzionamento aprendo la pagina www.nuovosito.it