Virtuele host instellen

Apache op Ubuntu 20.04 heeft standaard één serverblok ingeschakeld dat is geconfigureerd om documenten uit de /var/www/htmlmap te serveren. Hoewel dit goed werkt voor een enkele site, kan het onpraktisch worden als u meerdere sites host. In plaats van te wijzigen /var/www/html, maken we een directorystructuur binnen /var/wwwvoor een site met uw_domein, en laten we deze /var/www/htmlop zijn plaats als de standaarddirectory die wordt bediend als een verzoek van een klant niet overeenkomt met andere sites.

Maak de map voor uw_domein als volgt:

sudo mkdir /var/www/your_domain 

Wijs vervolgens het eigendom van de directory toe met de $USERomgevingsvariabele:

sudo chown -R $USER:$USER /var/www/your_domain 

 

Maak vervolgens een voorbeeldpagina index.htmlmet nanoof uw favoriete editor:

sudo nano /var/www/your_domain/index.html 

Voeg binnen de volgende voorbeeld-HTML toe:

Om Apache deze inhoud te laten leveren, is het nodig om een ​​virtueel hostbestand met de juiste richtlijnen te maken. In plaats van het standaard configuratiebestand te wijzigen dat zich /etc/apache2/sites-available/000-default.confdirect op bevindt, laten we een nieuw bestand maken op:/etc/apache2/sites-available/your_domain.conf

sudo nano /etc/apache2/sites-available/your_domain.conf 

Maak het volgende configuratieblok, dat vergelijkbaar is met het standaard, maar bijgewerkt voor onze nieuwe directory en domeinnaam:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName noorderpoort
    ServerAlias www.noorderpoort
    DocumentRoot /var/www/noorderpoort
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Merk op dat we het hebben bijgewerkt DocumentRootnaar onze nieuwe directory en ServerAdminnaar een e-mail waartoe de sitebeheerder van uw_domein toegang heeft. We hebben ook twee richtlijnen toegevoegd: ServerNamedie het basisdomein bepalen dat moet overeenkomen met deze virtuele hostdefinitie, en ServerAlias, die andere namen definieert die moeten overeenkomen alsof ze de basisnaam zijn.

Sla het bestand op en sluit het als u klaar bent.

Laten we het bestand inschakelen met de a2ensitetool:

sudo a2ensite your_domain.conf 

Schakel de standaardsite uit die is gedefinieerd in 000-default.conf:

sudo a2dissite 000-default.conf 

Laten we vervolgens testen op configuratiefouten:

sudo apache2ctl configtest 

U zou de volgende uitvoer moeten ontvangen:

Output

Syntax OK

Start Apache opnieuw om uw wijzigingen door te voeren:

sudo systemctl restart apache2 

Apache zou nu uw domeinnaam moeten bedienen. U kunt dit testen door te navigeren naar, waar u zoiets als dit zou moeten zien:http://IP_van_je_server