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
