Apache Virtual Hosts ti consente di ospitare più siti Web su un unico server. Apache dividerà le sue funzionalità e componenti in singole unità in modo che possiamo personalizzare in modo indipendente.
Qui a LinuxAPT, come parte dei nostri servizi di gestione del server, aiutiamo regolarmente i nostri clienti a eseguire query relative agli host virtuali Apache.
In questo contesto, esamineremo come configurare gli host virtuali Apache su un server Ubuntu 18.04.
Come creare host virtuali su Ubuntu?
Con gli host virtuali, possiamo specificare una radice del documento del sito Web separata, criteri di sicurezza, utilizzare certificati SSL diversi e molto altro.
Prima di procedere con questa procedura, dobbiamo assicurarci che siano soddisfatti i seguenti requisiti:
- Un server Ubuntu 18.04 con un utente non root con privilegi sudo.
- Apache dovrebbe essere installato e configurato, come menzionato in Come installare Apache su Ubuntu 18.04 Server.
- Un nome di dominio dovrebbe puntare all'indirizzo IP del tuo server.
1. Crea la struttura della directory
All'inizio, dobbiamo creare una directory in cui memorizzeremo i file del sito Web di un dominio e forniremo la risposta ai visitatori del sito Web.
In genere, si chiamava DocumentRoot.
io. È possibile impostare la radice del documento in qualsiasi posizione, ma è consigliabile impostare la struttura della directory.
Quindi memorizzeremo tutto su /var/www:
/var/www/
├── example1.com
│ └── public_html
├── linuxapt.com
│ └── public_html
Fondamentalmente, creeremo una directory separata all'interno della directory /var/www per ogni dominio che vogliamo ospitare sul nostro server.
ii. All'interno di queste directory, creeremo una directory public_html che memorizzerà i file del sito Web del dominio:
$ sudo mkdir -p /var/www/example.com/public_html
Creare un file index.html all'interno della directory principale del documento di dominio a scopo di test. Per impostazione predefinita, questa pagina verrà visualizzata quando i visitatori visitano il tuo sito web.
iii. Per creare un nuovo file index.html utilizzando il tuo editor di testo preferito, digita:
$ sudo nano /var/www/example.com/public_html/index.html
iv. Successivamente, aggiungi le righe seguenti:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome!!</title>
</head>
<body>
<h1>Great! example.com set up completed!</h1>
</body>
</html>
Tutti i comandi vengono eseguiti come utente sudo e i file e le directory appena creati sono di proprietà dell'utente root.
Quindi dobbiamo cambiare la proprietà delle directory principali dei documenti per evitare problemi di autorizzazione per il nostro utente normale.
Pertanto, l'utente normale può modificare i file nelle nostre directory web senza problemi:
$ sudo chown -R www-data: /var/www/example.com
2. Crea file host virtuali
I file di configurazione di Apache Virtual Hosts verranno archiviati nella directory /etc/apache2/sites-available e possiamo abilitarlo creando collegamenti simbolici alla directory /etc/apache2/sites-enabled.
Crea un nuovo file utilizzando l'editor di testo che preferisci digitando :
$ sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
- Nomeserver:dovrebbe essere il tuo nome di dominio e corrispondere alla configurazione dell'host virtuale.
- ServerAlias:tutti gli altri domini o sottodomini che dovrebbero corrispondere anche a questo host virtuale, in genere il sottodominio www.
- DocumentRoot:Percorso della directory host virtuale da cui Apache servirà i file di dominio.
- Opzioni:questa direttiva controlla quali funzionalità del server sono disponibili in una directory specifica.
- -Indici:impedirà gli elenchi di directory.
- SeguiSymLinks:Apache seguirà i collegamenti simbolici se questa opzione è abilitata.
- AllowOverride:specifica quali direttive dichiarate nel file .htaccess possono sovrascrivere le direttive di configurazione.
- ErrorLog, CustomLog:specifica la posizione dei file di registro.
Puoi assegnare qualsiasi nome al tuo file di configurazione, ma si consiglia di assegnare un nome file uguale al nome di dominio.
Ora creeremo un collegamento simbolico nella directory /etc/apache2/sites-enabled per abilitare il sito Web appena creato.
Per impostazione predefinita nei sistemi Ubuntu è presente uno script di supporto per creare collegamenti simbolici. Per creare utilizzando lo script di supporto a2ensite eseguire il seguente comando:
$ sudo a2ensite example.com
Puoi anche creare link simbolici manualmente per tipo:
$ sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
Una volta creato, controlla gli errori di sintassi utilizzando:
$ sudo apachectl configtest
Mostrerà sotto l'output se non ci sono errori:
Output
Syntax OK
Dovresti riavviare il servizio apache2 per ottenere l'effetto delle modifiche con il comando seguente:
$ sudo systemctl restart apache2
Infine, puoi verificare aprendo il tuo http://example.com sul tuo browser web e dovrebbe mostrarti come segue:
Great! example.com set up completed!