Introduzione

Gli host virtuali vengono utilizzati per eseguire più di un dominio su un singolo indirizzo IP. Questo è particolarmente utile per le persone che hanno bisogno di eseguire diversi siti su un unico server.

Se il vostro intento è installare Apache Virtual Hosts su di un server in remoto continuate a leggere, altrimenti se volete installare Apache Virtual Hosts sul vostro computer locale 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 il primo parametro:
ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

Prerequisiti

È necessario che Apache sia già installato e in esecuzione sul server. Altrimenti, puoi scaricarlo ed installarlo con questo comando:
sudo pacman -S apache

Creare nuove directory

Il primo passo nella creazione di un host virtuale è quello di creare una directory in cui inserire le informazioni del nuovo sito web.

Creiamo due host virtuali, da terminale:
sudo mkdir /srv/http/test1.com
sudo mkdir /srv/http/test2.com

Dovrai utilizzare un vero dominio o un indirizzo IP per verificare che un host virtuale funzioni. In questo tutorial utilizzeremo test1.com e test2.com come esempio.

Creare una pagina di esempio

All'interno della directory degli host, dobbiamo creare una pagina di esempio che verrà visualizzata quando visiteremo il sito.
sudo nano /srv/http/test1.com/index.html

Incolliamo il seguente testo per visualizzare il risultato online:

<html>
  <head>
    <title>test1.com</title>
  </head>
  <body>
    <h1>Pagina di esempio: test1</h1>
  </body>
</html>

Salva ed esci

Ripeti gli stessi passaggi per creare una pagina per il secondo dominio, sostituendo in dominio2 dove appropriato.
sudo nano /srv/http/test2.com/index.html

Incolliamo il seguente testo per visualizzare il risultato online:

<html>
  <head>
    <title>test2.com</title>
  </head>
  <body>
    <h1>Pagina di esempio: test2</h1>
  </body>
</html>

Salva ed esci

Configurare gli host virtuali

Assicuriamoci che gli host virtuali siano abilitati sul nostro server. Apriamo il seguente file di apache:
sudo nano /etc/httpd/conf/httpd.conf

Controlliamo che questa riga non sia commentata:

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Salva ed esci

Per accedere al file host virtuale all'interno della cartella apache apriamo il seguente file.
sudo nano /etc/httpd/conf/extra/httpd-vhosts.conf

La tua configurazione dovrebbe risultare simile a questa:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/srv/http/test1.com"
    ServerName test1.com
    ServerAlias www.test1.com
    ErrorLog "/var/log/httpd/test1.com-error_log"
    CustomLog "/var/log/httpd/test1.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/srv/http/test2.com"
    ServerName test2.com
    ErrorLog "/var/log/httpd/test2.com-error_log"
    CustomLog "/var/log/httpd/test2.com-access_log" common
</VirtualHost>

Le sezioni più importanti da configurare sono Document Root, ServerName.

Document Root fa riferimento alla directory che contiene i file del server. Nel caso di questo tutorial, indica il percorso del file che abbiamo creato nel primo passaggio. L'host virtuale non funzionerà senza una root dei documenti.
Il ServerName è il nome di dominio del sito. È qui che è possibile specificare quale sito deve essere servito dalla root del documento. Se si desidera includere un www prima del nome del server, è possibile includerlo in una riga "ServerAlias" in ServerName.
Dopo aver personalizzato l'host virtuale, salvare e uscire dal file.

Assicuriamoci di non aver commesso errori nel file, da terminale:
apachectl configtest

Riavviare Apache

Prima di riavviare Apache per rendere effettive le modifiche, dobbiamo inserire il nome del dominio nel file hosts. Se si utilizzano domini pienamente qualificati, inserire il nome del dominio dopo l'indirizzo IP.

Aprire il seguente file:
sudo nano /etc/hosts

127.0.0.1       test1.com
127.0.0.1       test2.com

Se non si utilizza un dominio completo, posizionare il nome trovato nel file /etc/hostname alla fine della riga corretta. Apache non si riavvierà senza questa aggiunta:

127.0.0.1       localhost.localdomain   localhost myvps

Dopo aver salvato il file, riavvia apache:
sudo systemctl restart httpd

Host locali (Opzionale)

Se si utilizzano nomi di dominio registrati per gli host virtuali o l'indirizzo IP del server, è possibile saltare questo passaggio, non è necessario impostare host locali. I tuoi host virtuali dovrebbero funzionare correttamente. Tuttavia, se vuoi provare i tuoi host virtuali senza doverti collegare a un vero nome di dominio, puoi configurarli sul tuo computer.

Aprire il seguente file
sudo nano /etc/hosts

Aggiungere il nome dei domini in questo modo:

# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost

#Virtual Hosts 
12.34.56.789   test1.com
12.33.44.555   test2.com

Consiglio successivamente di cancellare questi indirizzi dal file host per evitare qualsiasi problema.

Conclusione

Una volta che hai finito di configurare il tuo host virtuale, puoi vedere come appare online. Digita il nome del tuo server nel browser (ad es. test1.com).

La configurazione di Apache Virtual Hosts su Archlinux è terminata.