Apache is momenteel de meest gebruikte webserver ter wereld. Het is open-source software die wordt onderhouden door The Apache Software Foundation. Vanaf september 2020 bedient het naar schatting 36% van al het websiteverkeer ter wereld. Ontwikkelaars zijn er dol op vanwege de snelheid, veiligheid, betrouwbaarheid en robuustheid. Dankzij het aanpassingsgemak kan het aan de behoeften van veel omgevingen voldoen door extensies en modules te installeren.
Apache wordt geleverd met een matchingsysteem dat u kunt gebruiken om meerdere domeinen of sites te hosten met behulp van een enkele Apache-serverinstallatie die op één IP-adres is blootgesteld. De domeinen of sites worden ingesteld in een van de Apache-configuratiebestanden die zijn gedefinieerd als virtuele hosts.
Elk domein heeft één virtuele hostdefinitie met een specifieke map waarnaar het verwijst. Wanneer een gebruiker een domein bezoekt, onderzoekt de server elke overeenkomende virtuele host en selecteert welke moet worden gebruikt om aan het verzoek van de bezoeker te voldoen, afhankelijk van de hostnaam die is ingevoerd. Als er geen overeenkomende hostnaam wordt gevonden, gebruikt de server de eerste gedefinieerde virtuele host in het conf-bestand als fallback. De bezoeker krijgt toegang tot de opgevraagde webpagina zonder te weten dat dezelfde server ook andere sites bedient. Afhankelijk van de bronnen die u op uw server heeft en hoeveel verkeer deze aankan, kunt u zoveel domeinen hosten als u wilt.
In deze handleiding leiden we u door het instellen van virtuele hosts op de Ubuntu 20.04 server.
Eerst en vooral
Om de handleiding te kunnen volgen, moet u beschikken over een installatie van Ubuntu 20.04. U moet ook een niet-rootgebruiker aanmaken en hiermee inloggen.
Voor de stappen in deze handleiding moet u ook Apache hebben geïnstalleerd. Als u dit nog niet heeft gedaan, kunt u dit installeren met de onderstaande opdrachten. U kunt onze LAMP Stack setup – Linux Apache MySQL PHP handleiding volgen voor een meer gedetailleerde installatiegids.
|
1 2 |
sudo apt update sudo apt install apache2 |
U moet gratis of betaalde domeinnamen hebben geregistreerd bij een domeinregistrar van uw keuze. Zorg ervoor dat de domeinen naar uw server verwijzen door de DNS-records te configureren. U kunt echter nog steeds onze configuraties gebruiken om de stappen in deze handleiding te volgen. We gebruiken example.dev og mydomain.com voor deze handleiding. Het staat u vrij deze te vervangen door uw eigen domeinen. Als u besluit de testdomeinen te gebruiken, moeten de hosts-bestanden op Apache worden bewerkt om de domeinen te verwerken. We zullen later in de handleiding bespreken hoe u dit doet.
Stap 1 – De websitemappen instellen
Dit zijn de mappen met de gegevens van de site waartoe uw websitebezoekers toegang zullen hebben. De document root van Apache die toegankelijk is vanaf internet bevindt zich meestal in /var/www. Hier maken we de mappen aan voor de afzonderlijke domeinen die we willen hosten. In elk van de mappen voegen we de map public_html toe om de daadwerkelijke websitebestanden te bevatten. De virtuele host verwijst naar de map public_html. Dit geeft u flexibiliteit, omdat u cruciale websitebestanden buiten de public_html kunt houden en alleen openbare bestanden daarin kunt plaatsen.
Voer vervolgens de onderstaande opdrachten in om de mappen aan te maken. Denk er altijd aan om de testdomeinen te vervangen door uw daadwerkelijke domeinen voor volgende configuraties:
|
1 2 |
sudo mkdir -p /var/www/example.dev/public_html sudo mkdir -p /var/www/mydomain.com/public_html |
Stap 2 – Lees- en schrijfrechten wijzigen
De vorige opdrachten hebben de mappenstructuur gemaakt, maar het eigendom bij de root-gebruiker gelaten. We willen dat onze niet-rootgebruiker volledige lees- en schrijfrechten heeft voor de mappen. We willen ook dat het algemene web leesrechten heeft.
Wijzig eerst het eigendom naar de niet-rootgebruiker door de volgende opdracht in te voeren:
|
1 2 |
sudo chown -R $USER:$USER /var/www/example.dev/public_html sudo chown -R $USER:$USER /var/www/mydomain.com/public_html |
De $USER is een variabele die de inloggegevens van de momenteel ingelogde gebruiker overneemt. De normale gebruiker is nu eigenaar van de public_html. Vervolgens moet u leesrechten verlenen aan het algemene web. De volgende opdracht geeft toestemming voor alle bestanden in de map, zodat de webpagina's correct worden weergegeven:
|
1 |
sudo chmod -R 755 /var/www |
Door de vorige drie opdrachten uit te voeren, kan uw website nu inhoud aanbieden. Bovendien kan uw gebruiker ook inhoud maken die in de specifieke mappen wordt aangeboden. Hier vindt u meer informatie over Ubuntu-rechten.
Stap 3 – Demopagina's maken in de mappen voor elke Virtual Host
Nu de mapstructuur op orde is, is het tijd om te gaan scripten. We maken gebruik van HTML en de nano-teksteditor om enkele basiswebpagina's te maken. Voer de volgende opdracht uit om nano te openen en een index.html-bestand te maken in de map voor het eerste domein:
|
1 |
vim /var/www/example.dev/public_html/index.html |
Plaats in de editor de volgende voorbeeldcode die wordt weergegeven wanneer we het domein bezoeken:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Welkom bij Example.dev!</title> </head> <body> <h1>Succes! De example.dev virtual host is actief!</h1> </body> </html> |
Zodra u de bovenstaande regels hebt geplakt, drukt u op “!wq” om het bestand op te slaan en te sluiten.
Maak de index.html-pagina voor het tweede domein met de nano-editor door de volgende opdracht in te voeren:
|
1 |
vim /var/www/mydomain.com/public_html/index.html |
Plak vervolgens de volgende HTML-code in de editor, sla deze op en sluit af:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Welkom bij Mydomain.com!</title> </head> <body> <h1>Succes! De mydomain.com virtual host is actief!</h1> </body> </html> |
Nu hebt u de pagina's om de twee virtual hosts te testen die we in de volgende stap gaan maken.
Stap 4 – Virtual Host-bestanden maken voor de domeinnamen
Virtual host-bestanden bevatten configuraties voor elke virtual host. Ze bepalen hoe een domeinnaam wordt bediend. Een nieuwe installatie van Apache wordt geleverd met een standaard virtual host-bestand genaamd 000-default.conf dat we kunnen gebruiken en aanpassen aan onze domeinen. Zoals u kunt zien, eindigt het op een .conf-extensie, wat Ubuntu verwacht voor configuratiebestanden.
Apache-configuratiebestanden bevinden zich in de map /etc/apache2/sites-available. Daar slaan we onze virtual host-bestanden op. We kunnen het standaard conf-bestand kopiëren en bewerken waar nodig.
-
Maak het eerste virtual host-bestand voor het domein example.dev
Voer de volgende opdracht uit om example.dev.conf te maken door het standaard conf-bestand te kopiëren:
|
1 |
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.dev.conf |
Open vervolgens het gemaakte bestand met de nano-editor met sudo-privileges met behulp van het volgende commando:
|
1 |
sudo nano /etc/apache2/sites-available/example.dev.conf |
Het standaard conf-bestand ziet eruit zoals de onderstaande schermafbeelding. De opmerkingen zijn bedoeld om u te begeleiden. We kunnen ze verwijderen en alleen het schone bestand met de daadwerkelijke configuratieregels overlaten:

U moet dit bestand aanpassen voor uw domeinnaam en het mappad waar u de websitebestanden hebt opgeslagen. Daarnaast zullen we verschillende richtlijnen in het bestand bijwerken en toevoegen. Het bevat al een ServerAdmin-richtlijn, die het e-mailadres bevat waarop de serverbeheerder e-mails zal ontvangen. Het heeft ook een DocumentRoot-richtlijn, die verwijst naar de map waar u de websitebestanden hebt opgeslagen.
We moeten twee nieuwe richtlijnen toevoegen: ServerName en ServerAlias. ServerName stelt de basisdomeinnaam in. Dit is waar u uw domein invult. ServerAlias definieert andere namen dat Apache moet matchen alsof ze de basisdomeinnaam zijn. Hiermee kunt u hosts zoals www matchen.
Werk het bestand bij zodat het eruitziet zoals hieronder weergegeven:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@example.dev ServerName example.dev ServerAlias www.example.dev DocumentRoot /var/www/example.dev/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Werk daarna uw domeinen en e-mail op de juiste manier bij. Druk daarna op CTRL + O en ENTER om het bestand op te slaan. Om de editor af te sluiten, drukt u op CTRL + X.
-
Maak het eerste virtual host-bestand voor het domein mydomain.com
We kunnen gewoon de virtual host voor het eerste domein kopiëren en deze waar nodig bijwerken voor het tweede domein. Gebruik het volgende commando om het bestand te kopiëren:
|
1 |
sudo cp /etc/apache2/sites-available/example.dev.conf /etc/apache2/sites-available/mydomain.com.conf |
Open het vervolgens in de nano-editor met behulp van het commando:
|
1 |
sudo nano /etc/apache2/sites-available/mydomain.com.conf |
Zoek de richtlijnen en werk ze op de juiste manier bij, zodat het bestand eruitziet zoals hieronder weergegeven:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@mydomain.com ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/mydomain.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Sla het bestand op en sluit de editor af als u klaar bent.
Stap 5 – De Virtual Host-bestanden inschakelen
In stap vier hebben we de virtual host-bestanden gemaakt. Ze zijn echter pas functioneel als u ze inschakelt. Apache heeft een tool genaamd a2ensite die we zullen gebruiken om de virtual hosts in te schakelen.
Voer de volgende twee commando's in om de virtual hosts in te schakelen:
|
1 2 |
sudo a2ensite example.dev.conf sudo a2ensite mydomain.com.conf |
De uitvoer van de bovenstaande commando's is zoals hieronder weergegeven:

Vervolgens moet u het standaardconfiguratiebestand uitschakelen. We gebruiken de Apache-tool a2dissite om sites uit te schakelen. Voer het volgende commando in:
|
1 |
sudo a2dissite 000-default.conf |
Zoals te zien is in de uitvoer, moet u Apache herstarten om de configuraties door te voeren. Gebruik het volgende commando:
|
1 |
sudo systemctl restart apache2 |
Controleer vervolgens de status van Apache met de volgende opdracht:
|
1 |
sudo systemctl status apache2 |
De uitvoer laat zien dat uw server actief is en dat deze de twee websites kan bedienen.

Stap 6 – Lokale hosts aanpassen met voorbeelddomeinen
Als u geen echt domein had geregistreerd maar in plaats daarvan testdomeinen gebruikte, moet u uw lokale hostbestanden bijwerken. Ze moeten het verkeer onderscheppen en naar uw websitedirectory leiden wanneer u naar een van de domeinen navigeert die in de virtual host-bestanden zijn ingesteld. Houd er rekening mee dat dit alleen werkt op uw lokale computer. Als uw lokale computer op een Windows-besturingssysteem draait, volg dan de instructies voor het instellen van hosts via deze link.
Als u een Mac- of Linux-machine gebruikt, bevindt het hosts-bestand zich in de map /etc. We zullen een nano-editor gebruiken om onze testdomeinen te openen en toe te voegen. Zoek eerst het IP-adres van uw VPS door de volgende opdracht in te voeren:
|
1 |
curl -4 icanhazip.com |
Voer de volgende opdracht in om het bestand te openen en bij te werken met het IP-adres van uw server:
|
1 |
sudo nano /etc/hosts |
|
1 2 3 4 |
127.0.0.1 localhost 127.0.1.1 ComputerName your_server_IP example.dev your_server_IP mydomain.com |
Sla vervolgens het bestand op en sluit het. Telkens wanneer u een domeinnaam in uw browser invoert, wordt eerst het hostbestand gecontroleerd. Als de domeinnaam wordt gevonden, wordt het verkeer naar het opgegeven IP-adres geleid. Als deze niet wordt gevonden, wordt het DNS-systeem gebruikt voor wereldwijde omleiding. Voor onze testdomeinen wordt het verkeer naar het opgegeven IP-adres geleid.
Stap 7 – Test uw virtuele hosts
Nu de domeinnamen zijn ingesteld, kunt u testen of ze werken door ze te controleren in de browser/terminal:
|
1 |
curl http://example.dev |
De uitvoer zou er ongeveer zo uit moeten zien:

|
1 |
http://mydomain.com |

Gefeliciteerd! U hebt met succes twee websites geconfigureerd om op één server te draaien.
Conclusie
In deze handleiding hebt u geleerd hoe u uw Apache-server configureert om meer dan één website te bedienen. Als u meer websites wilt toevoegen, kunt u dit doen door de stappen te volgen en virtuele hosts in te stellen. Apache kan zoveel domeinen aan als u wilt, zolang de bronnen van uw server dit aankunnen.
Veel plezier met computeren!
Reacties
Nog geen reacties. Wees de eerste.