Het nut van een Raspberry Pi als webserver

Met de singleboardcomputer Raspberry Pi kun je na een snelle configuratie gebruik maken van een Raspberry Pi webserver. Ook al presteert hij minder dan commercieel aangeboden varianten; een eigen webserver op een Raspberry Pi is in bepaalde gevallen heel nuttig. Zo komt een Raspberry Pi webserver goed van pas als je je eigen website in een testomgeving wilt beheren en hosten of zelf bestanden beheert en wilt delen in de cloud. Onze tutorial legt uit hoe je met een gratis LAMP softwarepakket je eigen webserver inricht op deze kleine computer.


Waarvoor is een Raspberry Pi webserver geschikt?

Wanneer je een Raspberry Pi als webserver gebruikt, dien je je ervan bewust te zijn dat de hardware beperkt is. De computer biedt een minder goede performance dan gebruikelijke webservers die je via een internetprovider huurt. Voor het hosten van complexe websites – zoals online shops of websites met veel dynamische inhoud – is de Raspberry Pi net zomin geschikt als voor websites met hoge bezoekersaantallen. De vaak te kleine bandbreedte van de eigen internetaansluiting verhindert eveneens het gebruik van de Raspberry Pi als volwaardige webserver.

Toch kan een webserver op een Raspberry Pi voor diverse toepassingen worden gebruikt: hij kan worden ingezet als homeserver met internetaansluiting of bijvoorbeeld voor een bedrijfsnetwerk. Je kunt er ook websites mee testen op hun online performance of een kleine website met geringe bezoekersaantallen volledig zelf hosten. Bovendien kun je er een eigen cloud mee beheren of programma’s voor domotica (besturing van licht, verwarming, enz.) mee inrichten.

Nog een voordeel: de lage kosten van een Raspberry Pi webserver. Je hebt er alleen een internetaansluiting en stroom voor nodig. Van het laatste wordt normaal gesproken niet meer dan 5 watt gebruikt, waardoor ook een langdurig gebruik van de webserver geen grote kosten met zich meebrengt. Bovendien is de aanschafprijs van de benodigde onderdelen te overzien.


Vereisten voor een Raspberry Pi webserver

Er bestaan verschillende manieren om de Raspberry Pi als webserver te installeren; hieronder tonen we één methode. Daarvoor heb je naast de kleine computer het volgende nodig:

  • een SD-kaart waar het besturingssysteem Raspbian op is geïnstalleerd
  • een internetaansluiting; hetzij via een netwerkkabel (aanbevolen) of via Wi-Fi
  • voeding door middel van een micro-USB-kabel

Omdat een Raspberry Pi webserver ‘headless’ (zonder beeldscherm en invoerapparaat) werkt, wat één van de redenen is waarom hij zo energiezuinig is, kun je het beste nog een remote access met SSH inrichten op de server. Met behulp van een SSH Client (zoals PuTTY, WinSCP voor Windows of OpenSSH voor Unix-besturingssystemen) kun je de webserver gemakkelijk inrichten en wijzigen via een computer, smartphone of een ander apparaat. Wanneer je kiest voor beheer via SSH, voer je in je SSH Client het IPv4-adres in van je Raspberry Pi, zodat ze met elkaar worden verbonden. Als je het IP-adres van je Raspberry Pi niet weet, kun je dit in de terminal opvragen met het commando hostname –I (of met ifconfig). Wanneer je de Raspberry Pi headless gebruikt, kun je het adres daarvan vinden via je router door de router in je webbrowser op te roepen.

Gebruik je de webserver voor een personal cloud of voor andere doeleinden die meer opslagruimte vereisen, dan moet je de opslagcapaciteit vergroten. Dit kan bij de Raspberry Pi heel eenvoudig met een USB-stick of een externe harde schijf.


Een Raspberry Pi-webserver permanent bereikbaar maken onder hetzelfde IP-adres

Servers moeten niet alleen continu online zijn, zodat de gebruikers te allen tijde toegang hebben, maar ook onafgebroken bereikbaar zijn onder hetzelfde IP-adres. In de regel beschikt de internetaansluiting van een homeserver echter alleen over een dynamisch IP-adres. Dit wisselt dus regelmatig (meestal na 24 uur) en verhindert zo dat de server steeds onder hetzelfde IP-adres bereikbaar is. Een statisch IP-adres zou hier handig zijn, maar wordt niet door elke internetprovider verstrekt (en wanneer dit wel het geval is, dan vaak tegen een maandelijkse meerprijs).

Toch zijn er nog andere mogelijkheden om een server onder hetzelfde adres te hosten, bijvoorbeeld via een dynamische DNS (DDNS). Er bestaan zowel betaalde als gratis DDNS-diensten. Hier kun je een domeinnaam registreren en deze verbinden met een computer of router. Met behulp van een softwareprogramma wordt de domeinnaam altijd automatisch aan het actuele IP-adres toegewezen, waardoor de server onafgebroken onder dezelfde naam online toegankelijk blijft.


Een Raspberry Piwebserver met LAMP opzetten

In de volgende tutorial leggen we uit hoe je met een zogenaamde LAMP-stack een webserver op je Raspberry Pi kunt inrichten. LAMP is het acroniem voor een programmapakket dat uit de volgende onderdelen bestaat: een Linux-besturingssysteem (in deze tutorial: het al op het apparaat geïnstalleerde Raspbian), een Apache-webserver, een MySQL-database en de scripttaal PHP. Naast het LAMP-pakket wordt ook phpMyAdmin geïnstalleerd.

Meld je eerst aan via de terminal op je Raspberry Pi. Voor je begint met de installatie van het LAMP-softwarepakket moet je eerst met de volgende commando’s alle reeds geïnstalleerde pakketten updaten:

sudo apt-get update

sudo apt-get upgrade

Nu begin je met de installatie van de afzonderlijke LAMP-componenten. De tutorial leidt je hier stap voor stap doorheen, door de afzonderlijke tussenstappen toe te lichten en te verduidelijken. Daarbij worden sommige belangrijke verbanden uitgelegd en testprocedures beschreven waarmee je kunt controleren of de betreffende installatie functioneert.


Raspberry Pi webserver: Apache

Apache inrichten

De installatie van de Apache http-server is zo gedaan. Je kunt hem inrichten met slechts één commando. Hetzelfde geldt overigens voor de andere drie LAMP-componenten van de Raspberry Pi-webserver. Voer voor de Apache 2 eenvoudig het volgende commando in:

sudo apt-get install apache2

Om te controleren of de installatie succesvol is, roep je het IP-adres van de Raspberry Pi op in de adresbalk van je browser. Als Apache 2 juist is ingericht, verschijnt nu in de browser een standaardpagina waarop “It works!” staat. Deze HTML-pagina bevindt zich onder Raspbian Jessie in de map /var/www/html/index.html. Op oudere Wheezy-versies van Raspbian is deze echter opgeslagen in /var/www/index.html. In de map kun je de pagina bewerken en net zoveel andere webpagina’s maken als je wilt:

sudo nano /var/www/index.html

of

sudo nano /var/www/html/index.html

Wanneer je veranderingen hebt aangebracht, zou je deze moeten kunnen zien nadat de pagina opnieuw is geladen in de browser.


Raspberry Pi webserver: PHP

PHP inrichten

Om jouw webserver op Raspberry Pi niet alleen HTML-, CSS- en JavaScript-data te kunnen laten verwerken, maar ook PHP, installeer je nu PHP5:

sudo apt-get install php5 libapache2-mod-php5

Nu kun je onder /var/www een PHP-bestand genereren. Als test maak je het bestand phpinfo.php:

sudo nano phpinfo.php

Voeg in de editor nu nog de volgende aanvullingen toe:

<?php
phpinfo();
?>

Als je in de browser het IP-adres van je Raspberry Pi, gevolgd door /phpinfo.php oproept (http://192.168.X.X/phpinfo.php), zou de overeenkomstige pagina moeten verschijnen. Wanneer dit gebeurt, is ook PHP volledig op je Raspberry Pi ingericht.


Raspberry Pi webserver: MySQL

MySQL inrichten

Met MySQL leg je de database van de webserver op Raspberry Pi aan. Met het commando:

sudo apt-get install php5-mysql mysql-server mysql-client

installeer je alles wat hiervoor nodig is. Na een ogenblik wordt je gevraagd om het rootwachtwoord voor MySQL in te stellen. Wanneer dat gebeurd is en de inrichting van de database is beëindigd, sluit je de installatie definitief af met een herstart van MySQL (commando: sudo /etc/init.d/mysql restart), of Raspberry Pi (commando: sudo reboot).


Raspberry Pi webserver: phpMyAdmin

phpMyAdmin inrichten

MySQL kan worden beheerd met phpMyAdmin. Met behulp van deze gratis software kun je de database heel eenvoudig beheren via een grafische gebruikersinterface in de browser. Voor de installatie gebruik je het volgende commando:

sudo apt-get install phpmyadmin

In het scherm dat daarna verschijnt, selecteer je de Apache 2 als webserver. Vervolgens wordt je gevraagd of het phpMyAdmin-databasebeheer moet worden geïnstalleerd, waarop je “ja” antwoordt. Daarna maak je nog een wachtwoord aan voor phpMyAdmin (dat kan hetzelfde zijn als het wachtwoord van MySQL) en de installatie is gereed.

Als laatste stap moet je nog het net geïnstalleerde phpMyAdmin verbinden met de Apache-webserver. Dit kan met het volgende commando, waarmee je het configuratiebestand apache2.conf met de nano-editor kunt bewerken:

sudo nano /etc/apache2/apache2.conf

Nu ga je met de cursor naar het einde van het configuratiebestand (hiervoor kun je ook eenvoudig de toetsencombinatie Ctrl + V herhaaldelijk indrukken) en schrijf je hier een nieuwe regel in het bestand:

Include /etc/phpmyadmin/apache.conf

Nu sla je de veranderingen op via de sneltoetsen Ctrl + O en sla je het configuratiebestand op met Ctrl + X. Daarna start je de Apache-webserver opnieuw op door middel van het volgende commando in de terminal:

/etc/init.d/apache2 restart

Nu is niet alleen je webserver volledig ingericht, maar kun je ook de database ervan via phpMyAdmin in de webbrowser beheren. Hiervoor voer je in het URL-veld eenvoudig het IP-adres van de Raspberry Pi in en aansluitend /phpmyadmin (http://192.168.X.X/phpmyadmin), en meld je je aan op de phpMyAdmin-pagina met de gebruikersnaam “root” en je al eerder opgeslagen MySQL-wachtwoord. Zodra je bent ingelogd, kun je phpMyAdmin-datareeksen noteren, databases en tabellen maken of verwijderen en nog enkele andere functies gebruiken.


Toepassingen van de Raspberry Pi-webserver

Je webserver op Raspberry Pi is nu in principe geconfigureerd en klaar voor gebruik. Je kunt bijvoorbeeld een website maken en hosten door je webserver uit te rusten met HTML- en PHP-pagina’s. De afzonderlijke websites maak je direct op de Raspberry Pi onder de map /var/www (Raspbian Wheezy) of /var/www/html (Raspbian Jessie). Of je maakt de pagina’s op een externe computer met een webeditor naar keuze en verplaatst ze daarna via een SFTP-clientsoftware naar de webserver. Dit kan met programma’s als FileZilla, WinSCP, PuTTY of OpenSSH.

Instellingen van de Apache-webserver kun je invoeren met het configuratiebestand .htaccess. Hiermee maak je bijvoorbeeld een eigen 404-foutmeldingspagina voor je website of een redirect naar een ander domein. Met het gebruik van de Raspberry Pi als webserver heb je de mogelijkheid om in enkele eenvoudige stappen zowel het maken van websites, als het beheer van een webserver te leren en uit te proberen.

Behalve voor websitehosting, kan de webserver ook worden gebruikt voor vele andere zaken. Zo is het mogelijk om de webserver van de Raspberry Pi als privé data- en mediaserver te gebruiken. Je kunt er ook met de gratis software ownCloud een eigen cloud inrichten en beheren. Met het filehosting-programma kun je o.a. data in de cloud opslaan, oproepen en synchroniseren. De lijst van projecten die met een Raspberry Pi-webserver kunnen worden uitgevoerd is lang; met je eigen webserver heb je het heft in eigen handen.


Veiligheid van de Raspberry Pi-webserver

Het is van groot belang om aandacht te besteden aan de beveiliging van je webserver. Vooral als een server onafgebroken met het internet is verbonden, is het heel waarschijnlijk dat er vroeg of laat een aanval komt. Daarom is het noodzakelijk om je webserver steeds van de nieuwste updates te voorzien en ervoor te zorgen dat je bij de webhosting geen risico’s neemt. Vooral gevoelige gegevens moet je pas via een webserver hosten, als je zeker weet waar je op moet letten.

Lees meer over het inrichten van een eigen Raspberry Pi mailserver of vpn server in ons andere artikelen over de Raspberry Pi.