Introduzione

Il server Apache HTTP è il server web più utilizzato al mondo. Fornisce molte funzioni potenti, tra cui moduli caricabili dinamicamente.

In questo tutorial spiegheremo come installare un server Web Apache su una VPS con Debian 9 Stretch.

Installare Apache

È possibile installare Apache utilizzando il repository ufficiale di Debian con apt.

Aggiornare la lista dei pacchetti:
sudo apt update

Installare Apache:
sudo apt install apache2

Apache dovrebbe essere attivo ed in funzione. Per verificare il suo stato:
sudo systemctl status apache2

A questo punto il server è pronto con le configurazioni di default.

Basta collegarsi al proprio indirizzo IP pubblico oppure in localhost:

http://vostro_dominio_o_ip

http://localhost

Configurare un Virtual Host

Quando si utilizza il server Web Apache, è possibile utilizzare host virtuali per ospitare più domini, quindi più siti web su un singolo server. Configureremo un dominio chiamato esempio.com, ma dovresti utilizzare un dominio esistente.

Apache su Debian 9 ha un blocco server abilitato di default che è configurato per servire i documenti dalla directory /var/www/html correttamente funzionante per un singolo sito. Se si ospitano più siti conviene, invece di modificare /var/www/html, creare una struttura di directory all'interno di /var/www lasciando /var/www/html come directory predefinita da servire se una richiesta client non corrisponde a qualsiasi altro sito configurato come virtual host.

Creare la directory per esempio.com, usando il flag -p per creare tutte le directory necessarie:
sudo mkdir -p /var/www/esempio.com/html

Assegnare l'utente corrente come proprietario della nuova directory:
sudo chown -R $USER:$USER /var/www/esempio.com/html

Assicurarsi che i permessi siano corretti:
sudo chmod -R 755 /var/www/esempio.com

Creare il file index.html per il nostro sito:
nano /var/www/esempio.com/html/index.html

Incollare il seguente testo all'interno del file index.html:

<html>
    <head>
        <title>Ciao da esempio.com!</title>
    </head>
    <body>
        <h1>Esempio.com</h1>
    </body>
</html>

Salvare e chiudere il file

Creare un nuovo file di configurazione per il virtual host di esempio.com, senza andare quindi a modificare quello di default:
sudo nano /etc/apache2/sites-available/esempio.com.conf

Incollare le seguenti righe di codice, facendo attenzione a modificare i valori per il vostro dominio, in questo caso esempio.com:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName esempio.com
    ServerAlias www.esempio.com
    DocumentRoot /var/www/esempio.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Salvare e chiudere il file.

Abilitare il nuovo sito:
sudo a2ensite esempio.com.conf

Disabilitare il file di configurazione di default:
sudo a2dissite 000-default.conf

Verificare se i dati inseriti nei file sono corrette:
sudo apache2ctl configtest

Dovresti vedere una risposta simile a questa:

Syntax OK

Riavviare Apache:
sudo systemctl restart apache2

Adesso è possibile collegarsi al virtual host appena creato collegandosi al proprio dominio:

http://esempio.com

Aggiungere un altro Virtual Host (Opzionale)

Se si vuole aggiungere un'altro sito con un dominio diverso, quindi creare un altro host virtuale, basta semplicemente ripetere i passaggi già spiegati precedentemente:

sudo mkdir -p /var/www/esempio2.com/html

sudo chown -R $USER:$USER /var/www/esempio2.com/html

sudo chmod -R 755 /var/www/esempio2.com

nano /var/www/esempio2.com/html/index.html

Incollare le seguenti righe di codice:

<html>
    <head>
        <title>Ciao da esempio2.com!</title>
    </head>
    <body>
        <h1>Esempio2.com</h1>
    </body>
</html>

sudo nano /etc/apache2/sites-available/esempio2.com.conf

Incollare le seguenti righe di codice facendo attenzione a modificare i valori con il vostro secondo dominio:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName esempio2.com
    ServerAlias www.esempio2.com
    DocumentRoot /var/www/esempio2.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

sudo a2ensite esempio2.com.conf

sudo apache2ctl configtest

sudo systemctl restart apache2

Il vostro secondo dominio è attivo.

Adesso è possibile collegarsi al virtual host appena creato collegandosi al proprio dominio:

http://esempio2.com

Comandi utili per gestire Apache

Per fermare i processi di Apache quindi per mettere offline il web server:
sudo systemctl stop apache2

Per avviare Apache:
sudo systemctl start apache2

Per riavviare Apache
sudo systemctl restart apache2

Per disabilitare l'avvio automatico di Apache dopo il riavvio del server (VPS):
sudo systemctl disable apache2

Per abilitare l'avvio automatico di Apache dopo il riavvio del server (VPS):
sudo systemctl enable apache2

L'installazione e la configurazione di Apache utilizzando i Virtual Hosts su Debian 9 Stretch è terminata.