Apache è diviso in unità che possono essere personalizzate e configurate individualmente. Queste sezioni sono chiamate host virtuali.
Gli host virtuali consentono all'amministratore di utilizzare un server per ospitare molti domini utilizzando un singolo IP. Ciò è utile per chiunque desideri ospitare più di un sito Web sullo stesso VPS, senza indicare che lo stesso server ospita anche altri siti. Questo processo può essere ripetuto senza limiti, a seconda del carico che il server può gestire.
Per superare questi passaggi, devi disporre di:
- Un utente non root.
- Apache installato.
- Imposta i tuoi nomi di dominio in modo che puntino al tuo VPS.
La mia configurazione renderà host virtuali per test1.com
e test2.com
. Dovresti sostituirli con i tuoi domini.
Crea le directory
La radice del documento verrà impostata su singole directory nella /var/www
cartella. Crea una directory qui per entrambi gli host virtuali, in questo modo:
sudo mkdir /var/www/test1
sudo mkdir /var/www/test2
permessi
Le directory che hai creato sono di proprietà dell'utente root. Devi modificare la proprietà affinché l'utente normale possa modificare i file. $USER
è l'utente a cui sei attualmente connesso.
sudo chown -R $USER:$USER /var/www/test1
sudo chown -R $USER:$USER /var/www/test2
È inoltre necessario modificare le autorizzazioni per la directory Web generale e tutti i file e le cartelle al suo interno.
sudo chmod -R 755 /var/www
Crea pagine per ogni host virtuale
Crea una index.html
pagina per ogni sito.
nano /var/www/test1/index.html
In questo file HTML, puoi inserire contenuti semplici solo per indicare che la tua configurazione funziona. Ad esempio, il mio file è simile al seguente.
<html>
<head>
<title>test1</title>
</head>
<body>
<h1>test1.com virtual host !</h1>
</body>
</html>
Salva e chiudi il file al termine.
Ora copia questo file sul secondo sito.
cp /var/www/test1/index.html /var/www/test2/index.html
È quindi possibile aprirlo e modificarlo.
nano /var/www/test2/index.html
<html>
<head>
<title>test2</title>
</head>
<body>
<h1>test2.com virtual host !</h1>
</body>
</html>
Salva e chiudi questo file al termine.
Crea file host virtuali
I file host virtuali specificano la configurazione dei nostri host virtuali e determinano il modo in cui il server Web Apache risponderà alle diverse richieste del dominio.
Apache viene fornito con un file host virtuale predefinito, 000-default.conf
. Copia questo file e modificalo per il primo dominio.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test1.conf
sudo nano /etc/apache2/sites-available/test1.conf
Il file apparirà così (senza commenti):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
</VirtualHost>
Modificare la ServerAdmin
direttiva sull'e-mail attraverso la quale l'amministratore del sito può ricevere e-mail. Quindi, è necessario aggiungere tre direttive:
- ServerName: dominio di base per questo host virtuale.
- ServerAlias: definisce altri nomi che devono corrispondere al nome di base, come www.
- DocumentRoot: la posizione della radice del documento per questo dominio.
Il file host virtuale dovrebbe essere simile al seguente.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test1.com
ServerAlias www.test1.com
DocumentRoot /var/www/test1
</VirtualHost>
Salva e chiudi il file.
Puoi fare lo stesso con il secondo dominio.
sudo cp /etc/apache2/sites-available/test1.conf /etc/apache2/sites-available/test2.conf
sudo nano /etc/apache2/sites-available/test2.conf
Ora devi modificarlo per fare riferimento al tuo secondo dominio.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test2.com
ServerAlias www.test2.com
DocumentRoot /var/www/test2
</VirtualHost>
Salva e chiudi il file al termine.
Abilita i file dell'host virtuale
Lo a2ensite
strumento può essere utilizzato per abilitare ciascuno dei nostri siti in questo modo:
sudo a2ensite test1.conf
sudo a2ensite test2.conf
Al termine, è necessario riavviare Apache per rendere effettive le modifiche:
sudo service apache2 restart
Se ricevi questo messaggio:
*Restarting web server apache2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set >the 'ServerName' directive globally to suppress this message
... non preoccuparti, ciò non influisce sui nostri siti.
Passaggi finali
Ora che hai configurato i tuoi host virtuali, puoi provarli andando ai domini che hai configurato nel tuo browser web:
- http://test1.com
- http://test2.com
Se entrambi questi siti funzionano, hai configurato correttamente due host virtuali sullo stesso server.