WordPress
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

# WordPress

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.

Informatie

Deze handleiding gaat uit van een Debian server met een basis Apache installatie zoals beschreven in het bovenliggende artikel Apache.

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

    ssh gebruiker@server

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

    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.

    sudo apt install php libapache2-mod-php php-mysql php-xml php-gd php-curl php-mbstring php-zip

2. Installeer MariaDB server.

    sudo apt install mariadb-server

3. Beveilig de MariaDB installatie (optioneel, maar aanbevolen).

    sudo mysql_secure_installation

4. Maak een database en gebruiker voor WordPress.

    sudo mysql

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

    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.

    cd /tmp
    curl -O https://wordpress.org/latest.tar.gz
    tar xzf latest.tar.gz

2. Maak de doelmap aan en kopieer de bestanden.

    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.

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

    sudo nano /var/www/voorbeeld.nl/public/wp-config.php

Vul bij de databasegegevens:

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

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.

5. Stel de juiste eigenaar en rechten in.

    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

Informatie

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

1. Open de bestaande site-configuratie voor jouw domein.

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

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

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

    sudo a2enmod rewrite
    sudo systemctl reload apache2

4. Controleer de Apache configuratie en herlaad de service.

    sudo apache2ctl configtest
    sudo systemctl reload apache2

### CertBot voor Apache

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

    sudo apt install certbot python3-certbot-apache

Vraag een certificaat aan voor jouw domein.

    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.

Tip

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

    sudo certbot --apache --dry-run

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

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