WordPress installeren en beheren met WP-CLI, WPScan en ondersteunende tools
WordPress installeren en beheren met WP-CLI, WPScan en ondersteunende tools
Dit artikel legt uit hoe u WordPress 6.7 installeert via WP-CLI 2.11, beveiligt met WPScan en ondersteunt met tools als Poedit, Pinegrow en ThiefMD. Het is bedoeld voor ontwikkelaars en systeembeheerders die WordPress in een productieomgeving draaien.
Vereisten
- Een server met PHP 8.1 of hoger en MySQL 8.0 of MariaDB 10.5 - WP-CLI 2.11 of hoger — controleer met `wp --version` - SSH-toegang tot de server - Een domein dat naar de server wijst - WPScan 3.8.22 of hoger (optioneel, voor beveiligingsscans) - Poedit 3.4, Pinegrow 6.5 of ThiefMD 0.3 (optioneel, afhankelijk van uw workflow)
Stappen
1. Download WordPress met WP-CLI
Navigeer naar de webroot en download de nieuwste WordPress-kernbestanden:
cd /var/www/html
wp core download --version=6.7 --locale=nl_NLDeze opdracht haalt WordPress 6.7 op met Nederlandse taalbestanden. Zonder `--locale` krijgt u de standaard Engelse versie.
2. Maak het configuratiebestand aan
Genereer `wp-config.php` met databasegegevens:
wp config create --dbname=wordpress_db --dbuser=wp_user --dbpass=sterkWachtwoord --dbhost=localhost --dbprefix=wp_ --locale=nl_NLWP-CLI vult het bestand automatisch in met de juiste salts en keys. Bewaar de databasegegevens veilig.
3. Voer de installatie uit
Installeer WordPress met de sitegegevens:
wp core install --url=https://jouwdomein.nl --title="Mijn Site" --admin_user=admin --admin_password=sterkAdminWachtwoord --admin_email=admin@jouwdomein.nlDeze stap maakt de databasetabellen aan en stelt het admin-account in. Gebruik een sterk wachtwoord — zwakke admin-wachtwoorden zijn de belangrijkste toegangsweg voor aanvallers.
4. Installeer en activeer plugins
Voeg de plugins toe die u nodig hebt:
wp plugin install wordpress-seo --activate
wp plugin install woocommerce --activate
wp plugin install wordfence --activate
wp plugin install contact-form-7 --activateMet `wp plugin install` kunt u elke plugin uit de WordPress-repository installeren. De `--activate` vlag activeert de plugin direct na installatie.
5. Configureer permalinks
Stel de SEO-vriendelijke URL-structuur in:
wp rewrite structure '/%postname%/' --hard
wp rewrite flushDe eerste opdracht stelt de permalink-structuur in, de tweede herschrijft de rewrite rules. Dit voorkomt 404-fouten op losse artikels en pagina's.
6. Scan de site op kwetsbaarheden met WPScan
Voer een beveiligingsscan uit:
wpscan --url https://jouwdomein.nl --api-token=JOUW_WPSCAN_API_TOKEN
Zonder API-token werkt WPScan beperkt. De gratis token krijgt u door een account aan te maken op wpscan.com. De scan controleert op verouderde plugins, kwetsbare thema's en zwakke wachtwoorden.
7. Scan onopvallend met stealth-modus
Voor productiesites is een opvallende scan riskant. Gebruik de stealth-optie:
wpscan --url https://jouwdomein.nl --stealthy --api-token=JOUW_WPSCAN_API_TOKEN
De `--stealthy` vlag combineert willekeurige user agents en passieve detectie. Dit maakt de scan minder zichtbaar in serverlogs van de doelwebsite.
8. Stel een onderhoudsschema in
Automatiseer updates en scans met cron:
crontab -e
Voeg deze regels toe:
0 3 <em> </em> * wp core update --path=/var/www/html
0 4 <em> </em> 0 wpscan --url https://jouwdomein.nl --stealthy --api-token=JOUW_WPSCAN_API_TOKEN >> /var/log/wpscan.logDe eerste regel draait dagelijks om 03:00 een WordPress-update. De tweede scant wekelijks op zondag om 04:00. Het logboek staat in `/var/log/wpscan.log`.
Verificatie
Controleer of de installatie werkt:
wp core check-update
wp plugin list --status=active
wpscan --url https://jouwdomein.nl --api-token=JOUW_WPSCAN_API_TOKEN --format=cliDe eerste opdracht toont of WordPress up-to-date is. De tweede lijst actieve plugins. De derde bevestigt dat de beveiligingsscan draait.
Bezoek daarna `https://jouwdomein.nl/wp-admin` en log in met het admin-account dat u in stap 3 hebt aangemaakt.
Veelgestelde problemen
1. "Error establishing a database connection"
Oorzaak: verkeerde databasegegevens in `wp-config.php`. Los dit op:
wp config set DB_PASSWORD 'nieuwWachtwoord'
Controleer daarna of de database zelf bereikbaar is:
mysql -u wp_user -p -h localhost wordpress_db
2. WPScan geeft "API token required"
Oorzaak: u gebruikt WPScan zonder token. Maak een gratis account aan op wpscan.com en plak de token in de opdracht. Zonder token scant WPScan alleen op een beperkte set kwetsbaarheden.
3. Permalinks geven 404-fouten na installatie
Oorzaak: de Apache- of Nginx-configuratie staat het herschrijven van URL's niet toe. Voor Apache:
a2enmod rewrite
systemctl restart apache2Voor Nginx voegt u dit toe aan het serverblok:
location / {
try_files $uri $uri/ /index.php?$args;
}Vertalingen met Poedit
Voor meertalige WordPress-sites gebruikt u Poedit 3.4 om PO-bestanden te bewerken. PO-bestanden bevatten de vertalingen van thema's en plugins. Poedit leest de brontekst uit PHP-bestanden, toont de vertalingen in een lijst en schrijft de vertalingen terug naar MO-bestanden die WordPress leest. Het programma ondersteunt ook XLIFF, het uitwisselingsformaat voor vertaalprogramma's. Poedit is ontwikkeld door Václav Slavík en valt onder de MIT-licentie — u mag het vrij gebruiken en distribueren, ook in commerciële projecten, zolang u de oorspronkelijke auteursvermelding behoudt.
Visuele ontwikkeling met Pinegrow
Pinegrow 6.5 is een visuele editor voor HTML, CSS, SASS en frameworks zoals Bootstrap 5 en Tailwind CSS. U sleept elementen op het canvas, bewerkt eigenschappen in het zijpaneel en werkt rechtstreeks met standaard webbestanden. Het resultaat exporteert u als thema voor WordPress. Pinegrow schrijft geen eigen bestandsformaat — u werkt met dezelfde bestanden die u later op de server plaatst.
Markdown-publicaties met ThiefMD
Voor auteurs die in Markdown schrijven, is ThiefMD 0.3 een optie. De tool organiseert lange teksten zoals boeken en scripts en exporteert naar ePub, PDF, HTML en Office-documenten. ThiefMD publiceert rechtstreeks naar WordPress via de REST API. U hoeft de WordPress-editor niet te openen — u schrijft lokaal en publiceert met één opdracht.
Licenties en juridische aspecten
WordPress valt onder de GNU General Public License (GPL) versie 2 of nieuwer. Deze licentie geeft iedereen het recht om de broncode te gebruiken, aan te passen en te verspreiden. De voorwaarde is dat aangepaste versies ook onder dezelfde GPL-licentie worden uitgebracht. Dit geldt ook voor thema's en plugins die u zelf ontwikkelt en verspreidt — ze moeten GPL-compatibel zijn. Dat betekent niet dat u uw werk gratis weg moet geven, maar de code moet wel onder GPL beschikbaar blijven voor anderen.
Deze licentievoorwaarden bepalen ook hoe u tools zoals Poedit, Pinegrow en ThiefMD inzet. Poedit is MIT-gelicenseerd en vrij te gebruiken. Pinegrow is commerciële software met een betaalde licentie. ThiefMD valt onder de GPL-licentie. Controleer altijd de licentievoorwaarden van de tools die u in uw workflow opneemt — een verkeerde aanname over licenties kan juridische problemen opleveren.
Beveiligingsaanbevelingen voor productie
Een WordPress-site in productie vraagt om meer dan alleen een scan. Verander de databaseprefix van `wp_` naar iets willekeurigs:
wp config set table_prefix 'x9k2m_'
Verwijder de admin-gebruiker en maak een nieuwe gebruiker met een unieke naam:
wp user create redactie redactie@jouwdomein.nl --role=administrator --user_pass=sterkWachtwoord
wp user delete 1 --reassign=2Beperk het aantal loginpogingen:
wp plugin install limit-login-attempts-reloaded --activate
Deze plugin blokkeert IP-adressen na een instelbaar aantal mislukte logins. Combineer dit met een firewall op serverniveau voor een gelaagde verdediging.
De vraag is niet of uw WordPress-site wordt aangevallen, maar wanneer — en of u de tools hebt geïnstalleerd om de aanval te detecteren voordat het te laat is.