---
title: "Apache"
date: 2025-11-08
weight: 3
feedback: true
draft: false
---

{{< notice "info" "Informatie">}}
De instructies in dit artikel zijn uitsluitend voor de webserver, niet de site generator.
{{< /notice >}}

## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Rechten als `su` of `sudo` om opdrachten als root uit te voeren.

## Voorbereiding
Zorg dat het systeem up-to-date is voordat je begint met installeren. 
1. Log in met SSH.
```bash
ssh gebruiker@server
```
2. Gebruik het `apt` commando om het systeem te updaten.
```bash
sudo apt update && sudo apt upgrade
```

## Apache
### Installatie
Installeer Apache met het `apt` commando.
```bash
sudo apt install apache2
```

### Configuratie
{{< notice "info" "Informatie" >}}
Verander in de code **voorbeeld** naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals **voorbeeld.nl**
{{< /notice >}}

1. Zorg dat Apache altijd start met de server.
```bash
sudo systemctl enable --now apache2
```
2. Maak een nieuwe site configuratie op basis van de standaard instellingen.
```bash
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/voorbeeld.nl.conf
```
3. Pas de inhoud met het programma `nano`.
```bash
sudo nano /etc/apache2/sites-available/voorbeeld.nl.conf
```
```apache
<VirtualHost *:80>
    ServerName voorbeeld.nl
    ServerAlias www.voorbeeld.nl

    DocumentRoot /var/www/voorbeeld.nl/public

    <Directory /var/www/voorbeeld.nl/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/voorbeeld.nl-error.log
    CustomLog ${APACHE_LOG_DIR}/voorbeeld.nl-access.log combined
</VirtualHost>
```
{{< notice "info" "Tip" >}}
Je kan plakken in de terminal met CTRL + SHIFT + V
{{< /notice >}}
4. Activeer de configuratie met het `a2ensite` commando.
```bash
sudo a2ensite voorbeeld.nl.conf
```
5. Controleer werking en herlaad Apache.
```bash
sudo apache2ctl configtest
sudo systemctl reload apache2
```

## CertBot
### Installatie
Installeer CertBot met het `apt` commando.
```bash
sudo apt install certbot python3-certbot-apache
```

### Configuratie
Genereer en implementeer een geldig certificaat met het volgende commando.
```bash
sudo certbot --apache
```
Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres, selectie welke sites certificering moeten krijgen en of je HTTP automatisch naar HTTPS wilt laten doorsturen.
{{< notice "info" "Tip" >}}
Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.
```bash
sudo certbot --apache --dry-run
```
{{< /notice >}}

## Website activeren
1. Maak een index.html bestand. En geef deze een vorm van vulling, zoals voorbeeld hieronder.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo nano /var/www/voorbeeld.nl/public/index.html
```
```html
<html>
  <body>
    <h1>Hallo wereld</h1>
  </body>
</html>
```
2. Wijs de omgeving toe aan de `www-data` gebruiker en groep, stel schrijfrechten in.
```bash
sudo chown www-data:www-data /var/www/voorbeeld.nl -R
sudo chmod -R g+rwX /var/www/voorbeeld.nl
```
3. Open de browser en ga naar je website toe, je zou nu de inhoud van de index.html moeten kunnen zien via HTTPS, met een geldig letsencrypt certificaat.