- De leerlingen kunnen verbinding maken met een VPS via SSH en een webserver opzetten
- De leerlingen kunnen bestanden overzetten naar een server via SFTP
- De leerlingen kunnen een website hosten en testen via HTTP en IP-adres
- Dit lespakket maakt gebruik van de leerstof die jullie gezien hebben in het sleutelboek Computernetwerken 3.0 en de cursus Linux (Yves Van Hal).
Cheat sheets kan je terugvinden op de pagina Cheat sheets
Overzicht: stappenplan voor het hosten van een website zonder domein en zonder certificaat
Je vindt hieronder een overzicht van de te volgen stappen voor het hosten van een website zonder domein en zonder certificaat. In de beschrijving van de meeste stappen herken je begrippen die we de voorbije maanden geleerd hebben.
| Stap | Beschrijving |
|---|---|
| 1 | Een paswoord manager installeren |
| 2 | SSH-client op onze eigen laptop installeren en configureren |
| 3 | Een SSH key registreren |
| 4 | Een account aanmaken bij een cloud-provider |
| 5 | Een firewall configureren |
| 6 | Een VPS (virtual private server) huren |
| 7 | Verbinden met de server via SSH en de server configureren als webserver |
| 8 | De firewall configuratie aanpassen voor http |
| 9 | SFTP client op onze eigen laptop installeren en configureren |
| 10 | HTML-bestanden overzetten naar de webserver |
| 11 | De website testen via http en het ip-adres |
Stap 7 & 8: Verbinden met de server via SSH en de server configureren als webserver
1: IP-adres van je server opzoeken
- Ga naar het Hetzner dashboard
- Klik op
Serversin het linker menu - Klik op je server (bijv.
ldr-webserver-1) - Noteer het publieke IP-adres dat wordt weergegeven
2: Verbinding maken via SSH
- Open Terminal op je laptop
- Typ:
ssh root@<IP-adres>(vervang<IP-adres>met het IP-adres van je server) - Druk op Enter
- Bij de eerste verbinding wordt je gevraagd of je de sleutel wilt toevoegen. Typ
yesen druk op Enter - Je bent nu verbonden met je server
Wat is een package manager?
Een package manager is een hulpprogramma dat softwarepakketten voor je beheert. Het maakt installatie, update en verwijdering van software eenvoudig. In plaats van handmatig bestanden te zoeken en installeren, typ je eenvoudig één commando.
Package managers in Linux:
- apt (Ubuntu, Debian)
- yum (RedHat, CentOS)
Waarom updates uitvoeren?
- Veiligheidsupdates: Beveiligingsgaten worden regelmatig ontdekt en gefixt. Updates sluiten deze gaten.
- Stabiliteit: Bugfixes verbeteren stabiliteit en betrouwbaarheid van software.
- Nieuwe functies: Updates brengen soms verbeteringen en optimalisaties.
Hoe werkt apt?
apt = Advanced Package Tool
Aan de server zijn repositories gekoppeld (online catalogi met software). apt update haalt de nieuwste cataloguslijsten op en bekijkt welke versies beschikbaar zijn.
Stappen:
-
Catalogus vernieuwen:
apt update- Haalt de lijst van beschikbare pakketten en versies op van de repositories
- Noodzakelijk voordat je upgrades of installaties uitvoert
-
Upgradeable pakketten zien:
apt list --upgradable- Toont alle geïnstalleerde pakketten waarvoor een nieuwere versie beschikbaar is
- Handig om te controleren wat er kan worden bijgewerkt
-
Pakketten upgraden:
apt upgrade- Werkt alle pakketten bij naar hun nieuwste veilige versie
- Gebruikt
-yflag om automatisch ja te zeggen op vragen
3: Server bijwerken
- Typ:
apt update - Druk op Enter
- Wacht tot het proces voltooid is
- Typ:
apt list --upgradable - Druk op Enter
- Bekijk welke pakketten kunnen worden bijgewerkt
- Typ:
apt upgrade -y - Druk op Enter
- Wacht tot alle updates voltooid zijn
4: Webserver (Apache) installeren
- Typ:
apt install apache2 -y - Druk op Enter
- Wacht tot de installatie voltooid is
Wat is systemctl?
systemctl is een hulpprogramma in Linux voor het beheren van services (achtergrondprogramma's). Het stelt je in staat om services te starten, stoppen, herstarten en in te stellen voor automatisch starten bij boot.
Veelgebruikte commando's:
| Commando | Uitleg |
|---|---|
systemctl start <service> |
Start een service |
systemctl stop <service> |
Stopt een service |
systemctl restart <service> |
Herstart een service |
systemctl enable <service> |
Service start automatisch bij boot |
systemctl disable <service> |
Service start niet meer automatisch bij boot |
systemctl status <service> |
Toont de huidige status van een service |
Voor Apache:
systemctl start apache2- Start de webserversystemctl enable apache2- Zorg dat Apache automatisch opstart na een serverrestartsystemctl status apache2- Controleer of Apache draait
Oefening: Apache status controleren
Laten we nu oefenen met systemctl om beter te begrijpen hoe je een service beheert.
Stap 1: Status controleren
- Typ:
systemctl status apache2 - Druk op Enter
Je ziet nu iets als:
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-01-15 10:23:45 UTC; 2min 30s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 1234 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 1235 (apache2)
Tasks: 55
Memory: 45.2M
CPU: 250ms
CGroup: /system.slice/apache2.service
Wat betekent dit?
Active: active (running)→ Apache draait momenteelEnabled→ Apache start automatisch op bij rebootMain PID: 1235→ Het proces ID van ApacheMemory: 45.2M→ Geheugen dat Apache gebruikt
Stap 2: Website testen in je browser
- Open je browser en ga naar:
http://<jouw-IP-adres>(vervang met je server IP) - Je ziet nu de standaard Apache pagina
Lukt dit niet? Waaraan ligt dit denk je? Denk aan stap 5. Wat moet je wijzigen?
Stap 3: Service disablen
- Typ:
systemctl disable apache2 - Druk op Enter
- Typ:
systemctl status apache2 - Let op:
Loadedzegt nudisabledin plaats vanenabled. De service draait nog wel!
Stap 4: Service stoppen
- Typ:
systemctl stop apache2 - Druk op Enter
- Typ:
systemctl status apache2 - Nu staat
Active: inactive (dead)→ Apache draait niet meer - Je browser geeft nu een foutmelding als je het IP-adres bezoekt
Stap 5: Service opnieuw starten
- Typ:
systemctl start apache2 - Druk op Enter
- Je website werkt weer in je browser
5: Webserver starten
- Typ:
systemctl start apache2 - Druk op Enter
- Typ:
systemctl enable apache2(zodat Apache automatisch start bij server reboot) - Druk op Enter
6: Webserver map voorbereidden
- Typ:
mkdir -p /var/www/html/mysite - Druk op Enter
- Je webbestanden zullen hier later via SFTP geplaatst worden
7: SSH-verbinding beëindigen
- Typ:
exit - Druk op Enter
Je server is nu geconfigureerd met een werkende webserver en klaar voor het ontvangen van webbestanden.
Stap 9: SFTP client op onze eigen laptop installeren en configureren
1: FileZilla installeren
- Ga naar https://filezilla-project.org/
- Klik op
Download FileZilla Client - Kies de juiste versie voor je besturingssysteem (Windows)
- Download en voer het installatiebestand uit
- Volg de installatiestappen en accepteer de voorwaarden
- FileZilla is nu geïnstalleerd
2: SFTP-verbinding configureren
- Open FileZilla
- Ga naar
File→Site Manager(of druk opCtrl+S) - Klik op
New Siteen geef deze een naam volgens de conventie (bijv.ldr-webserver-1) - Vul de verbindingsgegevens in:
- Protocol: SFTP - SSH File Transfer Protocol
- Host: Voer het publieke IP-adres van je server in
- Port: 22 (standaard SSH/SFTP poort)
- Logon Type: Key file
- User: root
- Key file: Klik op
Browseen selecteer je privésleutel (id_ed25519) uitC:\Users\<jouw_gebruikersnaam>\.ssh\
- Klik op
Connect
3: Mappen verkennen
- Aan de linkerkant zie je de mappen op je laptop
- Aan de rechterkant zie je de mappen op je server
- Navigeer op de server naar
/var/www/html/mysite - Dit is de map waar je webbestanden moeten komen
Op basis van je huidige setup zou de website bereikbaar zijn op:
http://<jouw-server-IP-adres>/mysite/index.html
Bijvoorbeeld: http://1.2.3.4/mysite/index.html
Opmerking: Dit werkt alleen als:
- De firewall HTTP-verkeer (poort 80) toelaat
- Apache correct is geconfigureerd
- Je bestand in
/var/www/html/mysitestaat
Je kunt dit testen door in je browser naar dit adres te navigeren.
Stap 10: HTML-bestanden overzetten naar de webserver
1: Webbestanden voorbereidden op je laptop
- Maak op je laptop een map aan met je HTML-bestanden (bijv.
mijn-website) - Zorg ervoor dat je minstens een
index.htmlbestand hebt - Plaats alle benodigde bestanden (HTML, CSS, JavaScript, afbeeldingen) in deze map
2: Bestanden uploaden via SFTP
- Open FileZilla
- Verbind met je server via de eerder geconfigureerde site (
ldr-webserver-1) - Navigeer aan de linkerkant naar de map met je webbestanden
- Navigeer aan de rechterkant naar
/var/www/html/mysite - Sleep je bestanden van links naar rechts (of selecteer en klik
Upload) - Wacht tot alle bestanden zijn geüpload
Stap 11: De website testen via HTTP en het IP-adres
1: Website in browser openen
- Open je webbrowser
- Typ in de adresbalk:
http://<jouw-server-IP-adres>/mysite/ - Druk op Enter
- Je website zou nu zichtbaar moeten zijn
2: Troubleshooten als het niet werkt
- Controleer of Apache draait:
systemctl status apache2 - Controleer of je bestanden in de juiste map staan:
ls -la /var/www/html/mysite/ - Controleer de firewall instellingen in Hetzner Cloud Console
- Controleer permissies:
chmod -R 755 /var/www/html/mysite/ - Bekijk Apache error logs:
tail -f /var/log/apache2/error.log
3: Browser cache wissen indien nodig
- Druk op
Ctrl+Shift+Delete(Windows) ofCmd+Shift+Delete(Mac) - Wis cache en koekjes
- Herlaad de pagina
Je website is nu live op het internet en bereikbaar via het IP-adres van je server!
- Verbinding maken met een VPS via SSH, server bijwerken, Apache webserver installeren en configureren met systemctl
- Bestandsoverzet naar server via SFTP met FileZilla door SSH-sleutel authenticatie
- Website hosten en testen via HTTP met IP-adres door webbestanden in /var/www/html/mysite te plaatsen en firewall poort 80 in te stellen

