Apache
ESC

- Snel overzicht
  - Komt u in aanmerking?
  - Wat kost een mantelzorgwoning?
- Zoek uw gemeente
  - Drenthe
    - Aa en Hunze
    - Assen
  - Flevoland
  - Friesland
  - Gelderland
  - Groningen
  - Limburg
  - Noord-Brabant
  - Noord-Holland
  - Overijssel
  - Utrecht
  - Zuid-Holland
- Vergunning & wetgeving
  - NGINX
    - NextCloud (NGINX)
  - Docker
    - NextCloud (Docker)
  - Apache
    - NextCloud (Apache)
    - WordPress
- Voor bewoners
  - NGINX
    - NextCloud (NGINX)
  - Docker
    - NextCloud (Docker)
  - Apache
    - NextCloud (Apache)
    - WordPress
- Voor mantelzorgers
  - NGINX
    - NextCloud (NGINX)
  - Docker
    - NextCloud (Docker)
  - Apache
    - NextCloud (Apache)
    - WordPress

# Apache
Alle informatie over onze producten zijn publiek toegankelijk op deze kennisbank
Author: StartIT
Keywords: StartIT,Kennisbank,FAQ,Wiki

Informatie

De instructies in dit artikel zijn uitsluitend voor de webserver, niet de site generator.

## 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.

    ssh gebruiker@server

2. Gebruik het `apt` commando om het systeem te updaten.

    sudo apt update && sudo apt upgrade

## Apache

### Installatie

Installeer Apache met het `apt` commando.

    sudo apt install apache2

### Configuratie

Informatie

Verander in de code voorbeeld naar jouw domeinnaam, zonder `https://` of `www` tenzij letterlijk aangegeven zoals voorbeeld.nl

1. Zorg dat Apache altijd start met de server.

    sudo systemctl enable --now apache2

2. Maak een nieuwe site configuratie op basis van de standaard instellingen.

    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/voorbeeld.nl.conf

3. Pas de inhoud met het programma `nano`.

    sudo nano /etc/apache2/sites-available/voorbeeld.nl.conf

    <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>

Tip

Je kan plakken in de terminal met CTRL + SHIFT + V

4. Activeer de configuratie met het `a2ensite` commando.

    sudo a2ensite voorbeeld.nl.conf

5. Controleer werking en herlaad Apache.

    sudo apache2ctl configtest
    sudo systemctl reload apache2

## CertBot

### Installatie

Installeer CertBot met het `apt` commando.

    sudo apt install certbot python3-certbot-apache

### Configuratie

Genereer en implementeer een geldig certificaat met het volgende commando.

    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.

Tip

Wil je liever je configuratie testen voordat je een certificaat ophaalt, gebruik dan de parameter `--dry-run`.

    sudo certbot --apache --dry-run

## Website activeren

1. Maak een index.html bestand. En geef deze een vorm van vulling, zoals voorbeeld hieronder.

    sudo mkdir -p /var/www/voorbeeld.nl/public
    sudo nano /var/www/voorbeeld.nl/public/index.html

    <html>
      <body>
        <h1>Hallo wereld</h1>
      </body>
    </html>

2. Wijs de omgeving toe aan de `www-data` gebruiker en groep, stel schrijfrechten in.

    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.

Deze website gebruikt uitsluitend noodzakelijke cookies en vervallen 2 dagen na laatste bezoek.