WordPress installeren op een Synology NAS

Aangezien mijn blog verhuist is van wordpress.com naar de huidige locatie (eigen domein, eigen ‘server’) en dit toch wat uitzoekwerk was, hierbij een klein overzicht hoe je WordPress werkend kan krijgen op je Synology NAS. DSM (het OS van Synology) ligt in mijn geval op versie 3.1.

De voorbereidingen

En zorg er daarnaast natuurlijk voor dat je een domeinnaam hebt en deze verwijst naar je eigen ip-adres. Tevens kan ik hier niet behandelen hoe je je router instelt, zodat verkeer op poort 80 wordt gerouteerd naar je Synology NAS. Ik ga er vanuit dat je dit al geregeld hebt.

Activeren van de MySQL database en Webservices

Ga naar het Control Panel van je Synology. Kies daar vervolgens voor ‘Web Services’. Kies hier voor ‘Enable WebStation’ en ‘Enable MySQL’

Kies hierna voor Virtual Host. Voeg hier een nieuwe virtual host toe. Daartoe kies je voor Create. Vul een sub-folder in, waar je WordPress straks gaat installeren binnen de webfolder. Vul vervolgens de domeinnaam in van je blog. Protocol en poort staan waarschijnlijk al goed ingevuld. De synology maakt nu in de gesharede map “Web” een extra subfolder aan waar je straks WordPress in kunt installeren.

Installatie PHP Admin en aanmaken van WordPress database

Log in op je Synology. Open het Synology startmenu via de pijl links bovenin en kies daar voor Package Management.

Binnen Package management kies je voor Install en selecteer je de gedownloade package van PHP Admin. Na installeren kies je voor Run. PHP Admin wordt nu gestart.

Klik op de URL van PHP Admin. Je browser opent nu een nieuw scherm en vraagt om een gebruikersnaam en wachtwoord. De eerste keer dat PHP admin start is de gebruikersnaam Root. Het wachtwoord kun je leeg maken. Nu inloggen moet je het wachtwoord aanpassen, zodat iemand die per ongeluk op PHP Admin terecht komt, hier niet in kan loggen. Na het wijzigen van het wachtwoord ga je naar het tabblad rechten (1), bovenin het scherm. Kies hier voor het toevoegen van een nieuwe gebruiker (2)

Maak de gebruiker als volgt aan (3):

  • Gebruikersnaam: Kies een willekeurige gebruikersnaam waarmee WordPress straks verbinding maakt met je database
  • Machine: Kies voor Lokaal – Localhost
  • Wachwoord: Kies het wachtwoord voor het account
  • Database voor gebruiker: Maak een database met dezelfde naam en geef alle rechten hierop

Kies daarna beneden in het scherm voor ‘Start’. De database en de gebruiker worden nu aangemaakt.

WordPress installeren

Maak nu met Windows Verkenner een verbinding met de synology door naar de naam of het ipadres te browsen ( \\ditismijnservernaam ). Hierin zie je nu meerdere shares. Kies de ‘Web’ share. Daarin staat een subdirectory die je via virtual hosts hebt aangemaakt voor WordPress.

Pak het gedownloade installatiebestand van WordPress uit naar deze subdirectory. Let er hierbij op dat je niet de ‘wordpress’ directory uit de zipfile meeneemt. De bestanden van WordPress moeten dus direct in de root van jou subdirectory terecht komen.

Maak nu met je SSH client een verbinding met je Synology. Log in als ‘root’ en gebruik het wachtwoord wat je ook voor je admin account op de GUI van de Synology gebruikt. Controleer de locatie van je WordPress bestanden, dit zou /volume1/web/subdir moeten zijn. We gaan nu op deze subdirectory rechten zetten voor nobody. Dat is het standaard account waarmee apache draait. Door deze rechten te zetten kan apache de bestanden van WordPress aanpassen tijdens de installatie.

Type hiervoor: chown -R nobody:nobody /volume1/web/subdir (geef ownership aan nobody voor alle bestanden)

Na het uitpakken maak je verbinding met de hoofdsite van WordPress ( http://DomeinnaamVanVirtualHost/wp-admin/install.php ) en volg je de wizard. Let hierbij op de volgende zaken:

  • Als eerste wordt gevraagd verbinding te maken met de database. Gebruik de gegevens van de user die je hebt aangemaakt. De database naam is dezelfde als de usernaam binnen MySQL.
  • Gebruik geen wp_ als prefix van de database tabellen. Verander deze, aangezien het een security risk kan zijn om de default waarden aan te houden

  • Gebruik niet ‘admin’ als hoofdaccount van je WordPress. Ook dit is een default waarde en vormt een security issue.

Na installatie zetten we de rechten voor Apache op de WordPress folder wat strakker. We willen immers niet dat vreemden te veel toegang kunnen krijgen. Volgens best practises doe je het volgende:

Maak verbinding via je SSH client en log in als root. Voer hierna in:

  • chmod –R 755 /volume1/web/subdir (beperk rechten op de WordPress directory)
  • chmod 644 /volume1/web/subdir/.htaccess
  • chmod 644 /volume1/web/subdir/wp-admin/index.php

Extra’s voor WordPress installatie

Unzip: Mocht je IPKG geïnstalleerd hebben, installeer dan ‘unzip’ zodat WordPress automatisch plugins voor je kan installeren. Dit is nodig omdat de meeste plugins gezipped zijn, en WordPress deze module nodig heeft om deze te kunnen unzippen. Type hiertoe ‘ipkg install unzip’ in een SSH sessie (login als root)

Mod_expires: Voor WordPress Super Cache is mod_expires nodig. Dit staat standaard geïnstalleerd op de Synology, maar is niet geactiveerd. Dit kun je activeren door het volgende bestand aan te passen: /usr/syno/apache/conf/httpd.conf-user . Voeg daarin de volgende tekst onderin toe:

LoadModule expires_module module/mod_expires.so
<IfModule mod_expires.c>
ExpiresActive on
</IfModule>

Geef daarna het commando: /usr/syno/etc/rc.d/S97apache-user.sh restart . Apache zal nu automatisch de module activeren die WP Super Cache nodig heeft.