Configurare i Virtual Hosts

Apache2

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