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 Ubuntu 18.04 LTS.
Installare Apache
È possibile installare Apache utilizzando il repository ufficiale di Ubuntu con apt.
Aggiornare la lista dei pacchetti:
sudo apt update
Installare Apache:
sudo apt install apache2
Se utilizzate il Firewall di Ubuntu (Ufw) è necessario abilitare Apache:
sudo ufw allow 'Apache Full'
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 Ubuntu 18.04 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
Conclusione
L'installazione e la configurazione di Apache utilizzando i Virtual Hosts su Ubuntu 18.04 LTS è terminata.