Den Raspberry Pi als Webserver nutzen

Der Einplatinencomputer Raspberry Pi lässt sich In kurzer Zeit so konfigurieren, dass Sie einen Raspberry-Pi-Webserver Ihr Eigen nennen. Auch wenn dessen Leistung geringer ausfällt als bei kommerziell angebotenen Varianten – ein privater Webserver auf dem Raspberry Pi erweist sich in einigen Bereichen als nützlich: Etwa wenn man seine eigene Website in einer Testumgebung 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 kostenloses LAMP-Software-Paket Ihren eigenen Webserver auf dem kleinen Rechner einrichten.

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 Performance als herkömmliche Webserver, die Sie über einen Internetdienstanbieter mieten. Für das Hosten komplexerer Internetangebote (wie beispielsweise Onlineshops oder Websites mit vielen dynamischen Inhalten) ist der Raspberry Pi genauso wenig geeignet wie für Webauftritte, die ein hohes Besucheraufkommen verzeichnen. Die oftmals zu geringe Bandbreite des eigenen Internetanschlusses steht der Verwendung des Raspberry Pis als vollwertigen Server ebenfalls im Weg.

Trotzdem gibt es diverse Einsatzgebiete für einen Webserver, der per Raspberry Pi betrieben wird: Man kann ihn als Homeserver mit Internetanbindung oder beispielsweise für ein Firmennetzwerk nutzen. Auf ihm lassen sich Internetauftritte im Onlinebetrieb testen oder eine kleine Website mit geringen Besucherzahlen komplett selbst hosten. Weiterhin können Sie hierüber eine eigene Cloud betreiben oder Programme für die Hausautomation (Steuerung von Licht, Heizung etc.) einrichten.

Ein weiterer Vorteil sind die niedrigen laufenden Kosten eines Raspberry-Pi-Webservers: Er benötigt allein einen Internetanschluss sowie Strom. Letzteres überschreitet in aller Regel nicht die 5-Watt-Marke, wodurch auch der Dauerbetrieb des Webservers preislich kaum ins Gewicht fällt. Zudem sind die einmaligen Anschaffungskosten der benötigten Komponenten überschaubar.

Voraussetzungen für einen Raspberry-Pi-Webserver

Der im Anschluss vorgestellte Webserver stellt eine von vielen Varianten dar, um den Raspberry Pi als Webserver aufzusetzen. Dafür benötigen Sie neben dem kleinen Computer noch Folgendes:

  • SD-Karte, auf dem das Betriebssystem Raspbian eingerichtet ist
  • Internetanbindung – etwa über ein Netzwerkkabel (empfohlen) oder über WLAN
  • Stromversorgung per Micro-USB-Kabel

Da ein Webserver „headless“ (ohne Bildschirm und Eingabegeräte) funktioniert und dies die energiesparendste Variante darstellt, richten Sie idealerweise noch einen Fernzugriff auf den Server per SSH ein: Mithilfe eines SSH-Clients (wie PuTTY, WinSCP) für Windows oder OpenSSH für Unix-Betriebssysteme) können Sie den Webserver bequem über einen Computer, ein Smartphone oder andere Geräte einrichten und Änderungen an ihm vornehmen. Wenn Sie sich für die Administration via SSH entschieden haben, geben Sie in Ihrem SSH-Client die IPv4-Adresse Ihres Raspberry Pis an, um beide miteinander zu verknüpfen. Falls Sie die IP-Adresse Ihres Raspberry Pis nicht wissen, können Sie diese im Terminal mit dem Befehl hostname -I (oder alternativ mit ifconfig) aufrufen. Sollten Sie den Raspberry Pi headless nutzen, finden Sie dessen Adresse über Ihren Router heraus, indem Sie den Router in Ihrem Webbrowser 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 Anwendungen verwenden, die ebenfalls vermehrt Speicherplatz benötigen, sollten Sie die Speicherkapazität erweitern. Dies ist beim Raspberry Pi ganz einfach via USB-Speicherstick oder externer Festplatte möglich.

Einen Server permanent unter derselben IP-Adresse erreichbar machen

Server müssen nicht nur ständig online sein, damit die Nutzer zu jeder Zeit zugreifen können, sondern auch durchgehend unter der gleichen IP-Adresse erreichbar. In der Regel verfügt der Internetanschluss eines Heimservers jedoch nur über eine dynamische IP-Adresse. Diese wechselt also regelmäßig (meist nach 24 Stunden) und verhindert so, dass der Server stets unter derselben IP-Adresse erreichbar ist. Eine statische IP-Adresse würde hier helfen, wird aber nicht von jedem Internetdienstanbieter (und wenn, nur mit monatlichen Mehrkosten) angeboten.

Es gibt jedoch noch andere Möglichkeiten, um einen Server unter der gleichen Adresse zu hosten; etwa über dynamisches DNS (DDNS). Es gibt sowohl kostenpflichtige als auch gebührenfreie DDNS-Dienste. Hier registrieren Sie einen Domain-Namen und verknüpfen diesen mit einem Computer oder Router. Über eine Software wird dem Domain-Namen immer automatisch die aktuelle IP-Adresse Ihres Internetzugangs zugewiesen, wodurch der Server kontinuierlich unter demselben Namen online zugänglich bleibt.

Eine weitere Option steht Ihnen zur Verfügung, wenn Sie einen Fritz!Box-Router besitzen und über diesen ins Internet gehen – auf der Herstellerseite des Routers finden Sie viele Informationen dazu, wie Sie dynamisches DNS auf dem Router einrichten.

Raspberry-Pi-Webserver mit LAMP aufsetzen

Über das folgende Tutorial richten Sie mit einem sogenannten LAMP-Stack einen Webserver auf Ihrem Raspberry Pi ein. LAMP ist das Akronym für ein Programmpaket, das aus folgenden Teilen besteht: ein Linux-Betriebssystem (in diesem Tutorial: das bereits auf dem Gerät vorhandene Raspbian), ein Apache-Webserver, eine MySQL-Datenbank und die Skriptsprache PHP. Zusätzlich zum LAMP-Paket wird außerdem phpMyAdmin installiert.

Melden Sie sich zunächst in der Eingabe-Konsole (Terminal) auf Ihrem Raspberry Pi an. Bevor Sie mit der Einrichtung des LAMP-Software-Pakets anfangen, sollten Sie zunächst mit diesen beiden Befehlen alle schon installierten Pakete aktualisieren:

sudo apt-get update
sudo apt-get upgrade

Nun beginnen Sie mit der Einrichtung der einzelnen LAMP-Bestandteile. Das Tutorial leitet Sie dabei etappenweise an, um die einzelnen Zwischenschritte hervorzuheben und zu verdeutlichen. Dabei werden einige wichtige Zusammenhänge erklärt sowie Testläufe aufgezeigt, mit denen Sie die Funktionstüchtigkeit der jeweiligen Installation überprüfen.

Apache einrichten

Die Installation 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-Komponenten des Raspberry-Pi-Webservers. Für den Apache 2 geben Sie im Terminal einfach folgendes Kommando ein:

sudo apt-get install apache2 

Um zu überprüfen, ob die Installation erfolgreich war, rufen Sie die IP-Adresse des Raspberry Pis in der URL-Leiste Ihres Browsers auf. Wenn Apache 2 korrekt eingerichtet wurde, erscheint nun im Browser eine voreingestellte Seite, die „It works!“ verkündigt. Diese HTML-Seite befindet sich unter Raspbian Jessie in dem Verzeichnis /var/www/html/index.html; auf der älteren Wheezy-Version von Raspbian wird diese hingegen unter /var/www/index.html abgelegt. In dem Verzeichnis können Sie die Seite bearbeiten und beliebig viele weitere Webseiten anlegen:

sudo nano /var/www/index.html

bzw.

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

Wenn Sie Veränderungen vorgenommen haben, sollten Sie diese nach dem erneuten Laden der Seite im Browser sehen können.

PHP einrichten

Damit der Webserver nicht nur HTML-, CSS- und JavaScript-Dateien, sondern auch PHP verarbeiten kann, installieren 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 Ergänzungen 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 entsprechende Seite erscheinen. Geschieht dies, ist auch PHP auf Ihrem Raspberry Pi vollständig eingerichtet.

MySQL einrichten

Mit MySQL legen Sie die Datenbank des Webservers an. Über das Kommando:

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

installieren Sie alles Nötige hierfür. Nach einem Moment werden Sie aufgefordert, das Root-Passwort für MySQL festzulegen. Ist dies geschehen und die Einrichtung der Datenbank beendet, schließen Sie die Installation mit einem Neustart von entweder MySQL (Kommando: sudo /etc/init.d/mysql restart) oder des Raspberry Pis (Kommando: sudo reboot) endgültig ab.

phpMyAdmin einrichten

Für die Administration von MySQL bietet sich die Nutzung von phpMyAdmin an. Mithilfe dieser freien Software verwalten Sie die Datenbank ganz einfach über eine grafische Benutzeroberfläche im Browser. Für die Installation führen Sie diesen Befehl aus:

sudo apt-get install phpmyadmin

In dem daraufhin erscheinenden Bildschirm wählen Sie den Apache 2 als Webserver aus. Im Folgenden werden Sie gefragt, ob die phpMyAdmin-Verwaltungsdatenbank installiert werden soll – was Sie bejahen. Daraufhin bestimmen Sie noch ein Passwort für phpMyAdmin (es kann dasselbe wie das MySQL-Passwort sein) und die Installation ist fertiggestellt.

Als Letztes müssen Sie noch das frisch installierte phpMyAdmin mit dem Apache Webserver verbinden. Dies gelingt mit folgendem Kommando, worüber Sie die Konfigurationsdatei apache2.conf mit dem Nano-Editor editieren können:

sudo nano /etc/apache2/apache2.conf

Jetzt gehen Sie mit dem Cursor ans Ende der Konfigurationsdatei (Sie können hierfür auch einfach die Tastenkombination „Strg“ + „V“ wiederholt drücken) und schreiben hier eine neue Zeile in die Datei:

Include /etc/phpmyadmin/apache.conf

Nun speichern Sie die Änderungen über das Tastenkürzel „Strg“ + „O“ und schließen die Konfigurationsdatei 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 vollständig eingerichtet, sondern dessen Datenbank auch über phpMyAdmin im Webbrowser administrierbar. Hierfür tragen Sie einfach in der URL-Leiste die Raspberry-Pi-IP-Adresse sowie anschließend /phpmyadmin ein (192.168.X.X/phpmyadmin) und melden sich auf der phpMyAdmin-Seite mit dem Benutzernamenroot“ und Ihrem schon vorher festgelegten MySQL-Passwort an. Sobald Sie eingeloggt sind, können Sie in phpMyAdmin Datensätze auflisten, Datenbanken und Tabellen anlegen oder löschen und einige weitere Funktionen nutzen.

Einsatzfelder des Raspberry-Pi-Webservers

Ihr Webserver ist nun grundsätzlich konfiguriert und einsatzfähig. Sie können beispielsweise 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 Verzeichnis /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 übertragen diese danach über eine SFTP-Client-Software auf den Webserver. Dies gelingt mit Programmen wie FileZilla, WinSCP, PuTTY oder OpenSSH.

Einstellungen des Apache-Webservers können Sie mit der Konfigurationsdatei .htaccess vornehmen. Hierüber erstellen Sie beispielsweise eine individuelle 404-Fehlerseite für Ihre Website oder eine Weiterleitung zu einer anderen Domain. Die Nutzung des Raspberry Pis als Webserver erlaubt Ihnen, in einfachen Schritten sowohl das Erstellen von Webseiten als auch die Administration eines Webservers zu lernen und auszuprobieren.

Neben dem Website-Hosting bietet sich der Webserver allerdings auch für viele weitere Vorhaben an. So ist es möglich, den Webserver des Raspberry Pis als privaten Datei- und Medienserver zu nutzen. Sie können auf ihm auch mit der freien Software ownCloud eine private Cloud einrichten und betreiben. Das Filehosting-Programm erlaubt Ihnen u. a., Dateien in der Cloud abzulegen, aufzurufen und zu synchronisieren. 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 persönliches Vorhaben zu realisieren.

Sicherheit des Webservers

Unbedingt achten sollten Sie auf die Webserver-Sicherheit. Vor allem wenn ein Server permanent mit dem Internet verbunden ist, wird dieser sehr wahrscheinlich früher oder später angegriffen. Deshalb ist es erforderlich, dass Sie Ihren Webserver stets mit den neuesten Updates versorgen und sich beim Webhosting nicht übernehmen. Vor allem sensible Daten sollten Sie erst dann über einen Webserver hosten, wenn Sie sich sicher sind, was Sie hierbei beachten müssen.