PC-Active vroeg lezers om hun eigen Raspberry Pi-project met ons te delen. Eef Goes pakte de handschoen op en laat ons zien hoe je op de populaire Pi je eigen WordPress-site bouwt.
Eef Goes
In deze workshop gaan we een werkende website maken op de Raspberry Pi-computer. We installeren daartoe een zogenoemde LAMP-server met daarin WordPress. WordPress is een zeer toegankelijke open source-toepassing, waarmee je relatief eenvoudig een functionele en goed ogende website kunt bouwen. Niet voor niets is het inmiddels het meest gebruikte contentmanagementsysteem (CMS) ter wereld.
LAMP staat voor Linux-Apache-MySQL-PHP, maar laat je zeker niet afschrikken door deze termen. De installatie doen we op een Raspberry Pi Zero W, de allerkleinste versie van de Raspberry-familie. We gebruiken de W-versie, omdat deze wifi aan boord heeft. Met alleen de Zero-uitvoering heb je nog weer een usb-wifi nodig. Het is aannemelijk dat deze installatie ook werkt op de overige Raspberries-versies 2 tot en met 4. De gehele operatie neemt ongeveer drie uur in beslag, voornamelijk voor het downloaden van het Raspbian-besturingssysteem en de updates daarop.
Je website op een Pi In deze workshop wordt beschreven hoe je een eigen Wordpress-site bouwt op een Raspberry Pi. Bedenk wel dat de Raspberry Pi een beperkte capaciteit heeft. De Pi is daarmee niet geschikt voor websites met tientallen of meer hits per seconde. Maar als privésite - als je als ZZP’er werkt of een klein bedrijf hebt - kan zo’n website zeker voldoen. En dat met heel weinig hardware-kosten: voor onder de € 40,- ben je klaar. De kosten voor het hosten van je website komen daar natuurlijk nog bij. Je website is gemaakt in WordPress. Je kunt nu als beheerder inloggen op de site en deze uitbreiden met nieuwe pagina’s, berichten, plugins, thema’s enzovoorts. Dat valt buiten de scope van deze workshop, maar op wordpress.nl en verder op internet vind je duizelingwekkend veel informatie die je verder kan helpen. Veel plezier met je website! |
Op het boodschappenlijstje staan, naast de Raspberry Pi Zero W (circa € 10,-), de volgende zaken: een geschikte voeding (€ 7,-), een paar adapterkabeltjes, een usb-hub voor het toetsenbord en de muis, een FAT32-geformatteerde micro-sd-kaart van minimaal 32 GB en een monitor. Heb je geen geschikte monitor (met HDMI-poort), dan zou je ook je tv kunnen gebruiken, die waarschijnlijk wel een HDMI-aansluiting heeft. Heb je een VGA-monitor, dan ben je veroordeeld tot de aanschaf van een VGA-HDMI-adapter.
Raspberry Pi-installatie
Ga in de browser op je computer naar raspberrypi.org, dan naar Downloads en selecteer NOOBS. Download vervolgens de NOOBS Lite-installatiesoftware. Hiermee kun je via het netwerk straks Raspbian installeren. Nadat je de ZIP-folder hebt gedownload, pak je deze uit op de micro-sd-kaart in de usb-drive. De micro-sd-kaart is nu gereed voor installatie op de Pi en het werk op de computer is voorlopig even gedaan.
Tijdens de installatie zijn er een paar dingen die je moet onthouden. Print deze pagina en noteer hierop jouw ingevoerde waarden.
Print deze tabeop A4, op pcactive.nl/downloads |
We gaan nu verder op de Pi. Sluit de usb-hub voor het toetsenbord en de muis aan, daarna de monitor en de voeding - nog NIET in de wandcontactdoos! Stop de micro-sd-kaart in de Pi en hang nu de voeding aan de stroomvoorziening. De bestanden worden gekopieerd en NOOBS wordt gestart. NOOBS wil via wifi verbinding maken met het netwerk. Wanneer je het venster met deze mededeling sluit, zie je een lijst met gevonden wifinetwerken. Selecteer jouw netwerknaam (SSID), vul het wachtwoord in en sluit af met OK. Onderin het volgende scherm kun je de taal selecteren en de indeling van je toetsenbord. Ik heb gekozen voor Nederlands en een US-toetsenbord.
NOOBS wil nu weten welk besturingssysteem moet worden geïnstalleerd. Kies voor Raspbian Full (RECOMMENDED), klik op Installeer en bevestig je keuze. Raspbian wordt nu gedownload en geïnstalleerd op de Pi. Ga rustig even wat anders doen en kom over een uurtje weer terug. Tijdens de installatie zie je diverse info-schermen totdat de framboos zich laat zien, gevolgd door het welkomstscherm van de Raspberry Pi-desktop. Links onderin zie je dat verschillende onderdelen worden geladen en gestart.
Kies bij de installatie van het besturingssysteem voor Raspbian Full |
LAMP-server installeren
De volgende stap is het installeren van de Apache-webserver, de MySQL-databaseserver en de PHP-preprocessor. Dit doen we allemaal in een zogenoemd Terminalvenster. Je start dit door linksboven op het icoon voor LXTerminal te klikken. Er opent een nieuw venster met de tekst ‘pi@raspberrypi:~ $’. Dit is de prompt van Raspbian om je uit te nodigen een commando in te toetsen. Achter het $-teken voeren we de commando’s in. Bedenk daarbij dat Raspbian hoofdlettergevoelig is. Toets daarom de getoonde commando’s letterlijk in!
We beginnen met het installeren van de Apache webserver. Toets in:
sudo apt-get install apache2 –y
Met sudo wordt het commando uitgevoerd als ‘superuser’, te vergelijken met de administratorrechten in Windows. Als de prompt weer terugkomt, is Apache geïnstalleerd. Je kunt testen of de Apache-webserver actief is door op je computer in je webbrowser naar het eerder door jou genoteerde IP-adres van je Pi te gaan. In mijn geval was dat http://192.168.2.202. Als alles goed is, krijg je onderstaand scherm als bevestiging.
De bevestiging dat je de Apache-webserver correct hebt geïnstalleerd |
Tijd voor het installeren van de PHP-prepocessor. Toets in:
sudo apt-get install php –y
Als de prompt weer te zien is, is de installatie gedaan. Apache moet nog wel even weten dat PHP is geïnstalleerd en gebruikt kan worden. Toets in:
sudo service apache2 restart
Volgende in de rij is de MySQL-server. Toets in:
sudo apt-get install mariadb-server-10.3 php-mysql –y
Ook hier zie je verder weinig van. Als de prompt weer te zien is, is de installatie gedaan.
Tijd voor wat huishoudelijk werk als voorbereiding op de installatie van WordPress. In de map /var/www/html staat het bestand index.html. Dat willen we bewaren onder een andere naam. Ik heb een kopie gemaakt en vervolgens het origineel verwijderd. Toets in:
cd /var/www/html
sudo cp index.html index-bewaar.html
sudo rm index.html
ls -al
Je ziet dat in de map nu alleen nog het bestand index-bewaar.html aanwezig is.
|
Installatie WordPress
Nu gaan we WordPress downloaden en installeren. Toets in:
sudo wget http://wordpress.org/latest.tar.gz
sudo tar xzf latest.tar.gzsudo mv wordpress/* .
sudo rm –rf wordpress latest.tar.gz
tree -L 1
Hiermee wordt het zojuist geladen gecomprimeerde bestand latest.tar.gz uitgepakt, wordt de inhoud van de directory wordpress gekopieerd naar /var/www/html en wordt de directory wordpress verwijderd. Je ziet de inhoud van /var/www/html, met daarin onze bewaarde index-bewaar.html, 17 WordPress-bestanden en 3 WordPress-directories (mappen).
We gaan verder met huishoudelijke zaken voor MySQL. Eerst moeten we ervoor zorgen dat Apache de eigenaar wordt van directory /var/www/html Toets in:
sudo chown –R www-data: .
Daarna gaan we wat security-zaken regelen in MySQL. Toets in:
sudo mysql_secure_installation
Om dit te kunnen doen, moeten we het wachtwoord van de standaardgebruiker ‘root’ opgeven. Deze is de eerste keer nog leeg (none). Druk daarom op de Enter-toets. MySQL vraagt je nu om een wachtwoord voor ‘root’ te kiezen. Toets Y en Enter. Voer tweemaal het door jou gekozen wachtwoord in en noteer dit! Let op: de ingevoerde wachtwoorden worden niet getoond. Ik heb gekozen voor ‘Pcactive00#’. Je krijgt een viertal vragen die je alle met Y en Enter beantwoordt. Nadat je dit allemaal gedaan hebt, krijg je een bedankje van MariaDB en zijn we klaar voor de volgende stap: we starten MySQL. Toets in:
sudo mysql –uroot –p
Voer het genoteerde wachtwoord voor gebruiker ‘root’ in (Pcactive00#). Je bent nu in de MariaDB-monitor. Als eerste maken we een database met de naam ‘wordpress’. Toets in:
create database wordpress;
Let even op het wachtwoord achter IDENTIFIED BY. Dit is jouw gekozen wachtwoord voor gebruiker ‘root’. Toets in:
GRANT ALL PRIVILEGES ON wordpress.* TO ‘root’@’localhost’ IDENTIFIED BY ’Pcactive00#’;
We sluiten de MariaDB monitor. Toets in:
FLUSH PRIVILEGES;
quit
Een website maken
Nu we een complete LAMP-server hebben geïnstalleerd en geconfigureerd, kunnen we als laatste stap een WordPress-website gaan maken. Voor het gemak gebruik je hiervoor je computer. De browser in Raspbian is namelijk nogal traag. Ga in je browser naar het IP-adres dat je aan het begin hebt genoteerd, in mijn geval http://192.168.2.202. Hiermee maak je connectie met de Apache-webserver op je Pi. Deze ziet dat er een website-installatie gedaan moet worden, omdat er een aantal onderdelen ontbreken. Er verschijnt als eerste een scherm waarop je de taal van je website kunt kiezen. Ik heb gekozen voor Nederlands.
De laatste instellingen voodat WordPress je website initialiseert |
Bij Databasenaam vul je in: ‘wordpress’, bij Gebruikersnaam ‘root ‘, bij wachtwoord ‘Pcactive00#’, bij Hostnaam ‘localhost’ en de Tabelprefix laat je ongewijzigd (wp_ is dan de prefix van de tabellen die WordPress gaat maken voor deze website). Druk op Verzenden en vervolgens op De installatie uitvoeren.
WordPress initialiseert je website, heet je welkom en heeft nog wat extra informatie nodig. Bij Sitetitel vul je de naam van je website in (bijvoorbeeld ‘WP-site op Raspberry Pi’ of de naam van je bedrijf). Kies een Gebruikersnaam van de WordPress system-administrator (hier ‘beheer’) en een Wachtwoord (hier: ‘Pcactive00#’), Bij Je e-mailadres vul je het e-mailadres in waarnaar WordPress berichten stuurt over deze website. Noteer deze gegevens. Druk vervolgens op WordPress installeren.
Controleer in het Dashboard of je WordPress-instellingen juist zijn |
WordPress is nu geïnstalleerd. Om in te loggen op je website, geef je de gekozen gebruikersnaam en het wachtwoord van de system-administrator op. Voor Gebruikersnaam had ik ‘beheer’ gekozen en heb ik de inhoud van het vakje Wachtwoord even leesbaar gemaakt.
Als je met succes bent ingelogd, kom je in het dashboard van je WordPress-website. Ga dan nog even naar Instelling en Algemeen om te controleren dat de instellingen juist zijn. Wijzig de waarden (LOCALHOST) anders naar het IP-adres van je Pi. WordPress-adres (URL) ‘http://192.168.2.202’. Bij Siteadres (URL) komt hetzelfde: ‘http://192.168.2.202’. Klik onderaan het scherm op Wijzigingen opslaan. Als allerlaatste actie log je uit bij WordPress. Rechtsboven zie je je gebruikersnaam (beheer). Selecteer Uitloggen. Je komt op het inlogscherm. Kies de optie ‘Terug naar <Titel van je website>’.
Gefeliciteerd, je hebt nu een werkende website in WordPress op je Raspberry Pi!
Een werkende website! |
Openbare website
Je hebt nu je eigen website op je Raspberry Pi. Maar die hangt wel alleen nog in je wifi-thuisnetwerk. Zou het niet mooi zijn als ook anderen jouw website kunnen bezoeken? Dat kan, maar hangt af van wie je provider is en mogelijk of je gebruikmaakt van een hostingpakket.
Ik zit zelf bij KPN en heb daardoor thuis een Experiabox V10. Verder heb ik een account bij Yourhosting, waar ik het domein eefgoes.nl heb geregistreerd. Een soortgelijk iets zal er vast ook bestaan voor bijvoorbeeld Ziggo, Strato en dergelijke. In mijn Experiabox (http://192.168.2.254) heb ik bij Instellingen en Poort forwarding – IPv4 twee toevoegingen gemaakt. Eerst heb ik bij Application Configuration de Raspberry Pi toegevoegd en daarna bij Poort forwarding – IPv4 hiernaartoe verwezen. Je kunt nu bij je website komen door in de browser jouw IP-adres te gebruiken http://86.88.xxx.xxx
Vervolgens heb ik bij Yourhosting het subdomein wppi.eefgoes.nl gemaakt. Dit laat ik via domeinnaambeheer doorwijzen naar mijn KPN IP-adres. De hele wereld kan nu via de browser mijn website http://wppi.eefgoes.nl bezoeken.