---
title: "WordPress"
date: 2025-11-09
weight: 3
feedback: true
draft: false
---

WordPress is een veelgebruikte applicatie voor het bouwen van websites en blogs. In deze handleiding installeren we WordPress op een Debian server, uitgaand van het feit dat er al een werkende webserver aanwezig is met Apache.

{{< notice "info" "Informatie" >}}
Deze handleiding gaat uit van een Debian server met een basis Apache installatie zoals beschreven in het bovenliggende artikel **Apache**.
{{< /notice >}}

## Benodigdheden
- Een server met een Debian Linux installatie
- Een domeinnaam
- DNS ingesteld naar het IP-adres van de server
- Een werkende webserver (Apache) die verzoeken voor jouw domein verwerkt
- 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
```

## PHP en database installeren
WordPress heeft PHP en een database nodig. In dit voorbeeld gebruiken we MariaDB als database.

1. Installeer PHP en de benodigde modules.
```bash
sudo apt install php libapache2-mod-php php-mysql php-xml php-gd php-curl php-mbstring php-zip
```

2. Installeer MariaDB server.
```bash
sudo apt install mariadb-server
```

3. Beveilig de MariaDB installatie (optioneel, maar aanbevolen).
```bash
sudo mysql_secure_installation
```

4. Maak een database en gebruiker voor WordPress.
```bash
sudo mysql
```

Voer daarna in de MariaDB prompt de volgende opdrachten uit (pas wachtwoord en namen aan):

```sql
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'sterk-wachtwoord';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```

## WordPress bestanden voorbereiden
We plaatsen WordPress in `/var/www/voorbeeld.nl/public`, zodat dit overeenkomt met de standaard webroot uit andere artikelen.

1. Download en pak WordPress uit.
```bash
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
```

2. Maak de doelmap aan en kopieer de bestanden.
```bash
sudo mkdir -p /var/www/voorbeeld.nl/public
sudo cp -r /tmp/wordpress/* /var/www/voorbeeld.nl/public/
```

3. Maak een kopie van het configuratiebestand.
```bash
cd /var/www/voorbeeld.nl/public
sudo cp wp-config-sample.php wp-config.php
```

4. Pas de database-instellingen aan in `wp-config.php`.
```bash
sudo nano /var/www/voorbeeld.nl/public/wp-config.php
```

Vul bij de databasegegevens:

```php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'sterk-wachtwoord' );
define( 'DB_HOST', 'localhost' );
```

{{< notice "info" "Tip" >}}
Genereer de unieke beveiligingssleutels via de officiële WordPress salt generator en plak deze in `wp-config.php` in plaats van de standaard waardes.
{{< /notice >}}

5. Stel de juiste eigenaar en rechten in.
```bash
sudo chown -R www-data:www-data /var/www/voorbeeld.nl
sudo find /var/www/voorbeeld.nl -type d -exec chmod 750 {} \;
sudo find /var/www/voorbeeld.nl -type f -exec chmod 640 {} \;
```

### Apache configuratie

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

1. Open de bestaande site-configuratie voor jouw domein.
```bash
sudo nano /etc/apache2/sites-available/voorbeeld.nl.conf
```

2. Zorg ervoor dat de configuratie er ongeveer als volgt uitziet:

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

3. Zorg dat de benodigde modules voor WordPress actief zijn.
```bash
sudo a2enmod rewrite
sudo systemctl reload apache2
```

4. Controleer de Apache configuratie en herlaad de service.
```bash
sudo apache2ctl configtest
sudo systemctl reload apache2
```

### CertBot voor Apache

Installeer CertBot met de Apache plugin (als dit nog niet eerder gedaan is).

```bash
sudo apt install certbot python3-certbot-apache
```

Vraag een certificaat aan voor jouw domein.
```bash
sudo certbot --apache
```

Volg de stappen op met logische antwoorden, zoals het opgeven van jouw e-mailadres, de 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 >}}

## WordPress installatie afronden

1. Open de browser en ga naar jouw domein, bijvoorbeeld:
   - `http://voorbeeld.nl` of
   - `https://voorbeeld.nl` (na het instellen van letsencrypt)

2. Volg de stappen van de WordPress installatie:
   - Kies de taal
   - Vul de sitetitel in
   - Maak een beheerdersaccount aan
   - Bevestig en log in op het WordPress dashboard

Je WordPress site is nu actief en bereikbaar via het door jou ingestelde domein als je Apache als webserver gebruikt.