Der Ein­pla­ti­nen­com­pu­ter Raspberry Pi lässt sich In kurzer Zeit so kon­fi­gu­rie­ren, dass Sie einen Raspberry-Pi-Webserver Ihr Eigen nennen. Auch wenn dessen Leistung geringer ausfällt als bei kom­mer­zi­ell an­ge­bo­te­nen Varianten – ein privater Webserver auf dem Raspberry Pi erweist sich in einigen Bereichen als nützlich: Etwa wenn man seine eigene Website in einer Test­um­ge­bung prüfen und hosten will oder Dateien selbst verwaltet und über eine Cloud verfügbar machen möchte. Unser Tutorial verrät Ihnen, wie Sie über ein kos­ten­lo­ses LAMP-Software-Paket Ihren eigenen Webserver auf dem kleinen Rechner ein­rich­ten.

Wozu ist ein Raspberry-Pi-Webserver in der Lage?

Wenn Sie einen Raspberry Pi als Webserver verwenden, sollte Ihnen bewusst sein, dass dessen Hardware limitiert ist. Der Computer verfügt über eine geringere Per­for­mance als her­kömm­li­che Webserver, die Sie über einen In­ter­net­dienst­an­bie­ter mieten. Für das Hosten kom­ple­xe­rer In­ter­net­an­ge­bo­te (wie bei­spiels­wei­se On­line­shops oder Websites mit vielen dy­na­mi­schen Inhalten) ist der Raspberry Pi genauso wenig geeignet wie für Web­auf­trit­te, die ein hohes Be­su­cher­auf­kom­men ver­zeich­nen. Die oftmals zu geringe Band­brei­te des eigenen In­ter­net­an­schlus­ses steht der Ver­wen­dung des Raspberry Pis als voll­wer­ti­gen Server ebenfalls im Weg.

Trotzdem gibt es diverse Ein­satz­ge­bie­te für einen Webserver, der per Raspberry Pi betrieben wird: Man kann ihn als Ho­me­ser­ver mit In­ter­net­an­bin­dung oder bei­spiels­wei­se für ein Fir­men­netz­werk nutzen. Auf ihm lassen sich In­ter­net­auf­trit­te im On­line­be­trieb testen oder eine kleine Website mit geringen Be­su­cher­zah­len komplett selbst hosten. Weiterhin können Sie hierüber eine eigene Cloud betreiben oder Programme für die Haus­au­to­ma­ti­on (Steuerung von Licht, Heizung etc.) ein­rich­ten.

Ein weiterer Vorteil sind die niedrigen laufenden Kosten eines Raspberry-Pi-Web­ser­vers: Er benötigt allein einen In­ter­net­an­schluss sowie Strom. Letzteres über­schrei­tet in aller Regel nicht die 5-Watt-Marke, wodurch auch der Dau­er­be­trieb des Web­ser­vers preislich kaum ins Gewicht fällt. Zudem sind die ein­ma­li­gen An­schaf­fungs­kos­ten der be­nö­tig­ten Kom­po­nen­ten über­schau­bar.

Vor­aus­set­zun­gen für einen Raspberry-Pi-Webserver

Der im Anschluss vor­ge­stell­te Webserver stellt eine von vielen Varianten dar, um den Raspberry Pi als Webserver auf­zu­set­zen. Dafür benötigen Sie neben dem kleinen Computer noch Folgendes:

  • SD-Karte, auf dem das Be­triebs­sys­tem Raspbian ein­ge­rich­tet ist
  • In­ter­net­an­bin­dung – etwa über ein Netz­werk­ka­bel (empfohlen) oder über WLAN
  • Strom­ver­sor­gung per Micro-USB-Kabel

Da ein Webserver „headless“ (ohne Bild­schirm und Ein­ga­be­ge­rä­te) funk­tio­niert und dies die en­er­gie­spa­rends­te Variante darstellt, richten Sie idea­ler­wei­se noch einen Fern­zu­griff auf den Server per SSH ein: Mithilfe eines SSH-Clients (wie PuTTY, WinSCP) für Windows oder OpenSSH für Unix-Be­triebs­sys­te­me) können Sie den Webserver bequem über einen Computer, ein Smart­phone oder andere Geräte ein­rich­ten und Än­de­run­gen an ihm vornehmen. Wenn Sie sich für die Ad­mi­nis­tra­ti­on via SSH ent­schie­den haben, geben Sie in Ihrem SSH-Client die IPv4-Adresse Ihres Raspberry Pis an, um beide mit­ein­an­der zu ver­knüp­fen. Falls Sie die IP-Adresse Ihres Raspberry Pis nicht wissen, können Sie diese im Terminal mit dem Befehl hostname -I (oder al­ter­na­tiv mit ifconfig) aufrufen. Sollten Sie den Raspberry Pi headless nutzen, finden Sie dessen Adresse über Ihren Router heraus, indem Sie den Router in Ihrem Web­brow­ser aufrufen (in der Regel unter 192.168.0.1 oder über fritz.box, wenn Sie eine Fritz!Box besitzen). Möchten Sie den Webserver für eine private Cloud oder andere An­wen­dun­gen verwenden, die ebenfalls vermehrt Spei­cher­platz benötigen, sollten Sie die Spei­cher­ka­pa­zi­tät erweitern. Dies ist beim Raspberry Pi ganz einfach via USB-Spei­cher­stick oder externer Fest­plat­te möglich.

Einen Server permanent unter derselben IP-Adresse er­reich­bar machen

Server müssen nicht nur ständig online sein, damit die Nutzer zu jeder Zeit zugreifen können, sondern auch durch­ge­hend unter der gleichen IP-Adresse er­reich­bar. In der Regel verfügt der In­ter­net­an­schluss eines Heim­ser­vers jedoch nur über eine dy­na­mi­sche IP-Adresse. Diese wechselt also re­gel­mä­ßig (meist nach 24 Stunden) und ver­hin­dert so, dass der Server stets unter derselben IP-Adresse er­reich­bar ist. Eine statische IP-Adresse würde hier helfen, wird aber nicht von jedem In­ter­net­dienst­an­bie­ter (und wenn, nur mit mo­nat­li­chen Mehr­kos­ten) angeboten.

Es gibt jedoch noch andere Mög­lich­kei­ten, um einen Server unter der gleichen Adresse zu hosten; etwa über dy­na­mi­sches DNS (DDNS). Es gibt sowohl kos­ten­pflich­ti­ge als auch ge­büh­ren­freie DDNS-Dienste. Hier re­gis­trie­ren Sie einen Domain-Namen und ver­knüp­fen diesen mit einem Computer oder Router. Über eine Software wird dem Domain-Namen immer au­to­ma­tisch die aktuelle IP-Adresse Ihres In­ter­net­zu­gangs zu­ge­wie­sen, wodurch der Server kon­ti­nu­ier­lich unter demselben Namen online zu­gäng­lich bleibt.

Eine weitere Option steht Ihnen zur Verfügung, wenn Sie einen Fritz!Box-Router besitzen und über diesen ins Internet gehen – auf der Her­stel­ler­sei­te des Routers finden Sie viele In­for­ma­tio­nen dazu, wie Sie dy­na­mi­sches DNS auf dem Router ein­rich­ten.

Raspberry-Pi-Webserver mit LAMP aufsetzen

Über das folgende Tutorial richten Sie mit einem so­ge­nann­ten LAMP-Stack einen Webserver auf Ihrem Raspberry Pi ein. LAMP ist das Akronym für ein Pro­gramm­pa­ket, das aus folgenden Teilen besteht: ein Linux-Be­triebs­sys­tem (in diesem Tutorial: das bereits auf dem Gerät vor­han­de­ne Raspbian), ein Apache-Webserver, eine MySQL-Datenbank und die Skript­spra­che PHP. Zu­sätz­lich zum LAMP-Paket wird außerdem phpMy­Ad­min in­stal­liert. Melden Sie sich zunächst in der Eingabe-Konsole (Terminal) auf Ihrem Raspberry Pi an. Bevor Sie mit der Ein­rich­tung des LAMP-Software-Pakets anfangen, sollten Sie zunächst mit diesen beiden Befehlen alle schon in­stal­lier­ten Pakete ak­tua­li­sie­ren:

sudo apt-get update
sudo apt-get upgrade

Nun beginnen Sie mit der Ein­rich­tung der einzelnen LAMP-Be­stand­tei­le. Das Tutorial leitet Sie dabei etap­pen­wei­se an, um die einzelnen Zwi­schen­schrit­te her­vor­zu­he­ben und zu ver­deut­li­chen. Dabei werden einige wichtige Zu­sam­men­hän­ge erklärt sowie Testläufe auf­ge­zeigt, mit denen Sie die Funk­ti­ons­tüch­tig­keit der je­wei­li­gen In­stal­la­ti­on über­prü­fen.

Apache ein­rich­ten

Die In­stal­la­ti­on des Apache HTTP Servers ist sehr schnell vollzogen. Sie richten diesen mit nur einem einzigen Befehl ein – gleiches gilt im Übrigen auch für die anderen drei LAMP-Kom­po­nen­ten des Raspberry-Pi-Web­ser­vers. Für den Apache 2 geben Sie im Terminal einfach folgendes Kommando ein:

sudo apt-get install apache2

Um zu über­prü­fen, ob die In­stal­la­ti­on er­folg­reich war, rufen Sie die IP-Adresse des Raspberry Pis in der URL-Leiste Ihres Browsers auf. Wenn Apache 2 korrekt ein­ge­rich­tet wurde, erscheint nun im Browser eine vor­ein­ge­stell­te Seite, die „It works!“ ver­kün­digt. Diese HTML-Seite befindet sich unter Raspbian Jessie in dem Ver­zeich­nis /var/www/html/index.html; auf der älteren Wheezy-Version von Raspbian wird diese hingegen unter /var/www/index.html abgelegt. In dem Ver­zeich­nis können Sie die Seite be­ar­bei­ten und beliebig viele weitere Webseiten anlegen:

sudo nano /var/www/index.html

bzw.

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

Wenn Sie Ver­än­de­run­gen vor­ge­nom­men haben, sollten Sie diese nach dem erneuten Laden der Seite im Browser sehen können.

PHP ein­rich­ten

Damit der Webserver nicht nur HTML-, CSS- und Ja­va­Script-Dateien, sondern auch PHP ver­ar­bei­ten kann, in­stal­lie­ren Sie nun PHP5:

sudo apt-get install php5 libapache2-mod-php5

Nun können Sie unter /var/www eine PHP-Datei erzeugen. Testweise legen Sie die Datei phpinfo.php an:

sudo nano phpinfo.php

Im Editor nehmen Sie jetzt noch folgende Er­gän­zun­gen vor:

<?php
phpinfo();
?>

Wenn Sie im Browser Ihre Raspberry-Pi-IP-Adresse gefolgt von /infophp.php aufrufen (192.168.X.X/phpinfo.php), sollte daraufhin die ent­spre­chen­de Seite er­schei­nen. Geschieht dies, ist auch PHP auf Ihrem Raspberry Pi voll­stän­dig ein­ge­rich­tet.

MySQL ein­rich­ten

Mit MySQL legen Sie die Datenbank des Web­ser­vers an. Über das Kommando:

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

in­stal­lie­ren Sie alles Nötige hierfür. Nach einem Moment werden Sie auf­ge­for­dert, das Root-Passwort für MySQL fest­zu­le­gen. Ist dies geschehen und die Ein­rich­tung der Datenbank beendet, schließen Sie die In­stal­la­ti­on mit einem Neustart von entweder MySQL (Kommando: sudo /etc/init.d/mysql restart) oder des Raspberry Pis (Kommando: sudo reboot) endgültig ab.

phpMy­Ad­min ein­rich­ten

Für die Ad­mi­nis­tra­ti­on von MySQL bietet sich die Nutzung von phpMy­Ad­min an. Mithilfe dieser freien Software verwalten Sie die Datenbank ganz einfach über eine grafische Be­nut­zer­ober­flä­che im Browser. Für die In­stal­la­ti­on führen Sie diesen Befehl aus:

sudo apt-get install phpmyadmin

In dem daraufhin er­schei­nen­den Bild­schirm wählen Sie den Apache 2 als Webserver aus. Im Folgenden werden Sie gefragt, ob die phpMy­Ad­min-Ver­wal­tungs­da­ten­bank in­stal­liert werden soll – was Sie bejahen. Daraufhin bestimmen Sie noch ein Passwort für phpMy­Ad­min (es kann dasselbe wie das MySQL-Passwort sein) und die In­stal­la­ti­on ist fer­tig­ge­stellt.

Als Letztes müssen Sie noch das frisch in­stal­lier­te phpMy­Ad­min mit dem Apache Webserver verbinden. Dies gelingt mit folgendem Kommando, worüber Sie die Kon­fi­gu­ra­ti­ons­da­tei apache2.conf mit dem Nano-Editor editieren können:

sudo nano /etc/apache2/apache2.conf

Jetzt gehen Sie mit dem Cursor ans Ende der Kon­fi­gu­ra­ti­ons­da­tei (Sie können hierfür auch einfach die Tas­ten­kom­bi­na­ti­on „Strg“ + „V“ wie­der­holt drücken) und schreiben hier eine neue Zeile in die Datei:

Include /etc/phpmyadmin/apache.conf

Nun speichern Sie die Än­de­run­gen über das Tas­ten­kür­zel „Strg“ + „O“ und schließen die Kon­fi­gu­ra­ti­ons­da­tei mit „Strg“ + „X“. Daraufhin starten Sie den Apache-Webserver über einen weiteren Befehl in der Konsole neu:

/etc/init.d/apache2 restart

Nun ist nicht nur Ihr Webserver voll­stän­dig ein­ge­rich­tet, sondern dessen Datenbank auch über phpMy­Ad­min im Web­brow­ser ad­mi­nis­trier­bar. Hierfür tragen Sie einfach in der URL-Leiste die Raspberry-Pi-IP-Adresse sowie an­schlie­ßend /phpmy­ad­min ein (192.168.X.X/phpmy­ad­min) und melden sich auf der phpMy­Ad­min-Seite mit dem Be­nut­zer­na­menroot“ und Ihrem schon vorher fest­ge­leg­ten MySQL-Passwort an. Sobald Sie ein­ge­loggt sind, können Sie in phpMy­Ad­min Da­ten­sät­ze auflisten, Da­ten­ban­ken und Tabellen anlegen oder löschen und einige weitere Funk­tio­nen nutzen.

Ein­satz­fel­der des Raspberry-Pi-Web­ser­vers

Ihr Webserver ist nun grund­sätz­lich kon­fi­gu­riert und ein­satz­fä­hig. Sie können bei­spiels­wei­se eine Website erstellen und hosten, indem Sie Ihren Webserver mit HTML- und PHP-Seiten bestücken. Die einzelnen Webseiten legen Sie entweder direkt auf dem Raspberry Pi unter dem Ver­zeich­nis /var/www (Raspbian Wheezy) bzw. /var/www/html (Raspbian Jessie) an. Oder Sie fertigen die Seiten an einem externen Rechner mit einem Webeditor Ihrer Wahl an und über­tra­gen diese danach über eine SFTP-Client-Software auf den Webserver. Dies gelingt mit Pro­gram­men wie FileZilla, WinSCP, PuTTY oder OpenSSH.

Ein­stel­lun­gen des Apache-Web­ser­vers können Sie mit der Kon­fi­gu­ra­ti­ons­da­tei .htaccess vornehmen. Hierüber erstellen Sie bei­spiels­wei­se eine in­di­vi­du­el­le 404-Feh­ler­sei­te für Ihre Website oder eine Wei­ter­lei­tung zu einer anderen Domain. Die Nutzung des Raspberry Pis als Webserver erlaubt Ihnen, in einfachen Schritten sowohl das Erstellen von Webseiten als auch die Ad­mi­nis­tra­ti­on eines Web­ser­vers zu lernen und aus­zu­pro­bie­ren.

Neben dem Website-Hosting bietet sich der Webserver al­ler­dings auch für viele weitere Vorhaben an. So ist es möglich, den Webserver des Raspberry Pis als privaten Datei- und Me­di­en­ser­ver zu nutzen. Sie können auf ihm auch mit der freien Software ownCloud eine private Cloud ein­rich­ten und betreiben. Das Fi­le­hos­ting-Programm erlaubt Ihnen u. a., Dateien in der Cloud abzulegen, auf­zu­ru­fen und zu syn­chro­ni­sie­ren. Die Liste der Projekte, die sich mit einem Raspberry-Pi-Webserver umsetzen lassen, ist lang – mit Ihrem eigenen Webserver haben Sie es nun selbst in der Hand, Ihr ganz per­sön­li­ches Vorhaben zu rea­li­sie­ren.

Si­cher­heit des Web­ser­vers

Unbedingt achten sollten Sie auf die Webserver-Si­cher­heit. Vor allem wenn ein Server permanent mit dem Internet verbunden ist, wird dieser sehr wahr­schein­lich früher oder später an­ge­grif­fen. Deshalb ist es er­for­der­lich, dass Sie Ihren Webserver stets mit den neuesten Updates versorgen und sich beim Web­hos­ting nicht über­neh­men. Vor allem sensible Daten sollten Sie erst dann über einen Webserver hosten, wenn Sie sich sicher sind, was Sie hierbei beachten müssen.

Zum Hauptmenü