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 10.

Se il vostro intento è installare il Apache Virtual Hosts su di un server in remoto continuate a leggere, altrimenti saltate il primo paragrafo "Connessione al Server" e leggere il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno della password per l'autenticazione.
Per connettersi al server come utente root digitare questo comando:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare anche il primo parametro:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.
Siete ora connessi al vostro server.

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 10 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 apache

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 10 è terminata.