Tutorials

Der eigene Webserver mit dem Raspberry Pi

Raspberry Raspbian OS logo

In diesem Tutorial möchte ich Euch zeigen, wie ihr mit einem Raspberry Pi Modell B einen funktionierenden lokalen Webserver einrichtet und anschließend das CMS Wordpress zum Laufen bekommt. Die Konfiguration ist für Testzwecke oder Arbeiten im lokalen Netz gedacht, nicht für den professionellen Einsatz im Internet. Der Pi eignet sich hervorragend um z.B. Kundenprojekte (Content Management Systeme oder statische Internetseiten) lokal zu bearbeiten und eine Schnittstelle für Betrachtungszwecke zu schaffen. Kapitel 1: Raspbian installieren  wird anhand von MacOSX vorgestellt, alle weiteren Kapitel funktionieren plattformunabhängig also auch mit Windows. Windows Nutzer dürfen/müssen an dieser Stelle nicht aufhören, ich habe dort einen Link mit geeigneten alternativ Software zur Verfügung gestellt. Ab Schritt 3 bewegen sich alle Systeme wieder am gleichen Strang.



Grundausstattung


Den Unterschied zwischen den Spezifikationen des Raspberry Pis findet ihr hier. Es ist wichtig, dass die Version B erstanden wird, da der Unterscheid, vor allem beim RAM, ausschlaggebend ist. Genauso wichtig ist die Wahl der passenden SD Karte - sie wird später Eure Festplatte und umso besser die Leistung, desto schneller ist das System. Die oben verlinkte SD Karte ist in meiner Sicht der Preis/Leistungssieger. Die Unterschiede bei SD-Karten sind enorm, teilweise sind die Zugriffszeiten 3x schneller oder die Schreibgeschwindigkeit nur 1/5 bei einer vergleichbaren Class 10 Karte. Es wurde vorzugsweise auf schnelle Zugriffszeiten, schnelles zufälliges Lesen und Schreiben, schnelles sequentielles Lesen und Schreibenund eine passable Schreibgeschwindigkeitgeachtet.1 Mein Grundsystem2 mit übertaktetem Raspberry3 benötigt 23 Sekunden zum Hochfahren, damit habt ihr einen Vergleichswert bei der Nutzung von anderen Karten.

Raspbian installieren

Damit das Tutorial komplett abgearbeitet werden kann, sind die oben genannten Bauteile nötig. Es gibt zwei Möglichkeiten zum Start, 1.) Mit Tastatur und Bildschirm oder 2.) alles über Remote (SSH) [Terminal]. Ich habe mich für die zweite Variante entschieden, da einfach weniger Verkabelung und Ausrüstung nötig ist.

Schritt 1: SD-Karte vorbereiten

Das Betriebssystem für den Raspberry Pi (Raspbian Wheezy) muss auf eine SD-Karte gespielt werden. Hierfür benötigt ihr die ISO Datei des Betriebssystems Raspbian Wheezy Image und ein paar kleine Helfer (MAC OSX): Pi Filler,Pi Copier und Pi Finder, diese findet ihr unter: http://ivanx.com/raspberrypi/. Für Windows kann der Win32 Image Writer genutzt werden, zu finden unter: https://launchpad.net/win32-image-writer. Ein externes Video hierzu: https://www.youtube.com/watch?v=WCrNIyhPXcs

Schritt 2: Raspbian installieren unter MacOSX

Wie ihr nun vorgehen müsst, seht ihr in den nachfolgenden Videos. Zurücklegen und genießen. (Der Image-Clone-Prozess wird nur für MacOSX im Video gezeigt, im nächsten Kapitel geht es wieder für beide Systeme weiter.)

 

Schritt 2: Raspbian installieren unter Windows

Steckt jetzt die SD-Karte in das Kartenlesegerät, ladet das Programm herunter, installiert es anschließend mit der Standardkonfiguration und startet es. Die minimalistische Oberfläche von Disk Imager lässt kaum Fehlerquellen zu, ihr müsst lediglich auf das Ordner Symbol klicken und die heruntergeladene Raspbian Image Datei laden (In den Screenshots und den Videos wird OpenELEC installiert, nehmt anstelle die Raspbian Image).

Win32 Disk Imager Image Datei öffnen auf Ordner klicken rechts

Falls Euch die Datei nicht angezeigt wird, klickt neben dem Dateinamen auf die Dateiformate und wählt *.*4, hiermit werden euch alle Dateitypen angezeigt.

Alle Dateitypen anzeigen falls die OpenELEC Image Datei nicht sichtbar ist

Alle Dateitypen anzeigen Erklärung - Alle Dateitypen anzeigen falls die OpenELEC Image Datei nicht sichtbar ist

Wählt die Image Datei aus und klickt auf öffnen. Neben dem Pfad der Image Datei müsst ihr noch den "Device", sprich das Speichermedium für den Clone Vorgang wählen. Passt hier sehr gut darauf auf, dass ihr den richtigen Laufwerksbuchstaben, und zwar den der Speicherkarte wählt. Seid hier doppelt vorsichtig! Eine Warnung taucht auf, die in etwa dem entspricht, was ich einen Satz vorher geschrieben habe. Bestätigt den Vorgang und wartet ab, bis der Vorgang beendet ist. Voilà! Raspbian ist nun bootfähig auf der Speicherkarte und wartet darauf, in den Raspberry gesteckt zu werden. Falls euch Schritte unklar sind oder zu kompliziert, ein kleines Video zeigt die einzelnen Schritte nochmals genau. Nochmals der Hinweis, dass das Video die Installation von OpenELEC zeigt und nicht von Raspbian. Überspringt das Herunterladen der Image Datei und nehmt Eure geladene Raspbian Image.

Video: Download OpenELEC sowie Download und Installation Win32 Disk Imager unter Windows 8.1:

Video: Clone Vorgang von OpenELEC auf SD-Karte mit Win32 Disk Imager:

Sobald der Transfer der Daten auf die SD-Karte abgeschlossen ist, könnt Ihr die SD-Karte in den Raspberry stecken. Fahrt den Raspberry mit angeschlossenem Monitor und Tastatur hoch. Die Standard Nutzerdaten beim ersten Login heißen: User: pi Passwort: raspberry (falls das Passwort falsch ist, raspberrz oder raspberrx schreiben, wegen falschem Tastaturlayout).

Schritt 3: Raspberry Pi konfigurieren

Mit dem Befehl: sudo raspi-config könnt ihr den Burschen genauer unter die Lupe nehmen und an ein paar interessanten Schrauben drehen! Das Video zeigt Euch wie. Im Video sieht man leider nicht welche Tasten ich drücke - also kurz was getan werden muss: Grundsätzlich navigiert ihr mit den Pfeiltasten der Tastatur, aus- oder abwählen mit der Leertaste und zu einem Navigationselement springen (OK oder Finish) funktioniert mit der Tab-Taste.

Schritt 4: Raspbian updaten und upgraden

Ein Reboot macht vieles Gut - bevor wir fortfahren einmal das System neu starten. Hierzu folgenden Befehl in die Konsole hacken:

sudo reboot

Wartet nun etwa 1 Minute und logt Euch über die Konsole über SSH ein. Der Befehl hierfür lautet: ssh pi@ip-adresse-des-pis. Wenn ihr die IP nicht mehr wisst, benutzt das Tool: Pi Finder, damit bekommt Ihr die IP heraus. Alternativ könnt ihr die IP auch direkt am Pi über die Tastatureingabe herausfinden. Gebt dazu ifconfig in die Console ein und lest die IP ab. Wir benötigen nun die Befehle:

sudo apt-get update
sudo apt-get dist-upgrade

Aber was machen diese Befehle eigentlich? Hierzu die Übersicht herannehmen: Übersichtsliste der Linuxbefehle von apt-get

apt-get Linuxbefehle - Übersichtsliste der Linuxbefehle von apt-get

Das Video zeigt Euch wie ihr die Befehle in die Konsole bekommt.

Ein kleiner Tipp noch, wollt Ihr die Dateistruktur des Linux Systems ohne FTP Programm einsehen, könnt Ihr den Midnight Commander (mc) installieren:

sudo apt-get install mc

Starten könnt ihr das Programm mit dem einfachen zwei Buchstaben: mc

Webserver installieren

Einleitung

Im vorherigen Tutorial habt Ihr gesehen, wie Raspbian installiert und konfiguriert wird. Hier folgt erstmal ein kleiner Einschub, da wir nun darauf achten, dass das gesamte Tutorial plattformunabhängig genutzt werden kann. Unter MAC OSX ist die Steuerung des Pi's über das Terminal schnell gemacht - die Windowsianer müssen sich leider erstmal einen kleinen Helfer holen, denn Windows hat mit der UNIX Shell nichts am Hut. Wieso aber der MAC? Macintosh entstand aus Linux und ist sogar (noch) UNIX zertifiziert. So weg vom Exkurs - ab zum Workshop. Damit die nachfolgenden Schritte des Tutorials unter Windows funktionieren, müsst ihr xMing und PuTTYstarten - Anweisungen findet Ihr im Video:

Schritt 1: Apache Webserver installieren

Als erstes müssen wir uns natürlich auf den Raspberry Pi einloggen - ssh pi@ipadresse eingeben, Passwort eintippen und danach den Befehl eingeben:

sudo bash

Puh, jetzt aber Vorsicht! Wir haben nun die "ultimative Macht", alles was wir sagen wird OHNE nachfragen erledigt.

Damit wir den Apachen (Webserver) installieren können, benötigen wir Nutzergruppen – ansonsten schlägt die Installation fehl. Mit den folgenden Befehlen könnt ihr die Standardnutzergruppen für den Apachen anlegen.

sudo groupadd www-data
sudo usermod -a -G www-data www-data

Geschafft? Dann sehen wir mal nach ob mittlerweile neue Updates vorhanden sind:

sudo apt-get update

Nach einem Update bzw. Upgrade sollte Linux, oder der aktualisierte Dienst neu gestartet werden.

sudo reboot

Alles aktuell – sehr schön. Hier kommt der Befehl für die Apachen Installation:

sudo apt-get install apache2 apache2-doc apache2-utils

Nachdem der Installationsvorgang beendet ist, öffnet den Browser – gebt die IP-Adresse Eures Pis ein. It Works!!! Der Webserver läuft. Das Ganze auch noch als Video zum Reinziehen.

Schritt 2: PHP, MySQL und phpMyAdmin aufrüsten

It Works!! Aber viel können wir damit noch nicht anstellen – ein handelsüblicher Webserver bietet einige Features, damit z.B. dynamische Internetseiten, Videostreams etc. überhaupt funktionieren. Wir rüsten nun PHP, MySQL und phpMyAdmin nach, damit später WordPress auch auf unserem Webserver läuft.

Damit wir wieder vollen Zugriff haben und auch die gewünschten Services installieren können, benötigen wir uneingeschränkte Zugriffsrechte:

sudo bash
apt-get install libapache2-mod-php5 php5 php-pear php5-xcache

Nun haben wir PHP5 nachgerüstet, damit aber ein CMS wie WordPress läuft, benötigen wir noch eine Datenbank und die Verknüpfung zu dieser. Wir haben als Standardpasswort für den Datenbankzugriff iuk gewählt.

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

und ein Tool Namens phpMyAdmin, mit dem wir die Datenbank verwalten können:

apt-get install phpmyadmin

Hier wieder alles im Video nachzusehen.

Schritt 3: Installation testen

Damit wir auch sicher sind, ob PHP wirklich mit den ganzen Features vorhanden ist, machen wir einen Check. Das Verzeichnis für die Internetseiten unter Linux ist das /var/www Verzeichnis. Seit dem Update auf Jessie (Ende 2015) ist das Standardverzeichnis /var/www/html. Logt Euch in den Pi ein und nutzt folgenden Befehl:

cd /var/www oder cd /var/www/html 

Mit dem Befehl cd navigieren wir durch die Verzeichnisse und mit dem nachfolgenden Pfad /var/www oder /var/www/html an den gewünschten Ort. Wir erstellen nun eine Datei mit dem Namen phpinfo.php und tragen dort einen Befehl für das Auslesen der PHP Installation aus:

sudo nano phpinfo.php

Nano steht für den Nano-Editor, mithilfe können wir nun die PHP-Datei beschreiben. Der Befehl für das Auslesen der PHP Installation lautet:

<?php
phpinfo();
?>

Tragt diesen Code in den Nano-Editor ein und speichert mit CTRL+O das Dokument ab, mit CTRL+X könnt Ihr den Editor verlassen.

Jetzt müssen wir natürlich auch noch testen, ob das Ganze Früchte getragen hat. Gebt im Webbrowser die IP des Pis an und schreibt dahinter /phpinfo.php .

Das hat geklappt? Dann weiter mit der Verknüpfung zwischen phpMyAdmin und der SQL Datenbank. Damit wir unsere Datenbank über eine grafische Oberfläche administrieren können, benötigen wir noch eine kleine Einstellung bzw. die Verknüpfung des Diensts phpmyAdmin in unserer Server Konfigurationsdatei apache.conf .

nano /etc/apache2/apache2.conf

Mit den Nano-Editor schreiben wir nun ans Ende der Konfigurationsdatei den Befehl zum Einbinden von phpMyAdmin:

Include /etc/phpmyadmin/apache.conf

Tipp: Damit Ihr schnell ans Ender der Datei kommt, drückt mehrmals CTRL+V.

Überspeichert das Dokument – ihr wisst nicht wie??? Dann nochmals oben nachlesen!

Nun steht die Verbindung – damit sie aber aktiv wird, muss der Apache neu gestartet werden:

/etc/init.d/apache2 restart

Wie immer, nachdem ihr etwas installiert habt, Paketstruktur neu einlesen, upgraden und das System neustarten.

sudo apt-get update
sudo apt-get upgrade
sudo reboot

Schritt 4: phpMyAdmin aufrufen

Wenn alle Schritte erfolgreich absolviert wurden, können wir mittels phpMyAdmin auf die Datenbank zugreifen. Gebt hierzu die Adresse Eures Pis mit einem folgenden /phpmyadmin ein.

Der Standardnutzer der Datenbank lautet root und unser Passwort war iuk.

Erstellt nun eine neue Datenbank und einen Benutzer, in unserem Beispiel haben wir beide wordpress genannt. Falls Ihr keinen Benutzer anlegt, kann auch der Default-User root benutzt werden, standardmäßig hat dieser Nutzer kein Passwort, was natürlich nicht gut ist!

Eine neue Datenbank kann über das Head-Menü: Datenbanken -> Neue Datenbank anlegen -> Anlegen-Button erstellt werden. Nutzt als Datenbankname wordpress, anderenfalls erhaltet Ihr einen Error establishing a database connection Fehler im nachfolgenden Tutorial. Der Fehler besagt, dass die Verbindung zur Datenbank nicht hergestellt werden kann, dass liegt entweder an der nicht vorhandenen Datenbank oder einem falschen Passwort.

WordPress installieren

Erstellt in phpMyAdmin eine neue Datenbank und einen Benutzer, in unserem Beispiel haben wir beide wordpress genannt.

Schritt 1: FTP Zugang herstellen

Standardmäßig verfügt ein Webserver über eine FTP Dienst, zum Austausch von Dateien. Im Terminal könnten wir mittels Eingabe Dateien hochladen, dass ist aber recht mühsam. In den nächsten Schritten, konfigurieren wir einen FTP Zugang, damit ihr Dateien leicht via Drag&Drop verschieben könnt.

Wie gewohnt brauchen wir das Terminal und folgende Befehle:

sudo bash
sudo apt-get install vsftpd

Wir müssen die vsftpd.conf bearbeiten:

nano /etc/vsftpd.conf

Sucht nach den folgenden Einträgen und ändert diese ab, achtet dabei auf die Schreibweise mit YES und NO und dem Kommentarzeichen #. Eine Raute klammert den Befehl aus, wenn ihr bei den unteren Befehlen eine Raute davor seht, entfernt diese.

  • Anonymous_enable=NO
  • Local_enable=YES
  • Write_enable=YES
  • Ascii_upload_enable=YES
  • Ascii_download_enable=YES

Speichert die Datei mit CTRL+O und schließt Sie mit CTRL+X.

So nun müssen wir den Dienst neustarten:

/etc/init.d/vsftpd restart

Wir haben es fast geschafft!

Nun benötigen wir noch die Berechtigung das /var/www oder /var/www/html Verzeichnis zu beschreiben, hier kommen später unsere Internetseiten hin. Wir befinden uns immer noch im Terminal und wollen nun dem Nutzer: pi besondere Schreibrechte geben:

sudo usermod -a -G www-data pi
sudo chown -R pi /var/www

für das Update Jessie (Ende 2015):

sudo usermod -a -G www-data pi
sudo chown -R pi /var/www/html

Das Video zeigt Euch nochmals wie Ihr die Benutzerrechte vergebt und Dateien via FTP transportieren könnt. (Schiebt bitte KEINE Dateien hoch – wir fahren im nächsten Schritt mit der Konsolen-Installation fort.)

Schritt 2: WordPress Installation vorbereiten

Die neueste Version von WordPress wird mit folgendem Befehl heruntergeladen:

wget http://wordpress.org/latest.tar.gz

Hiermit entpacken:

tar -xvzf latest.tar.gz

Wir erstellen einen neuen Ordner mit dem Namen “wordpress” im Verzeichnis /var/www oder /var/www/html (dieses Verzeichnis ist für Internetseiten gedacht)

sudo mkdir /var/www/wordpress

oder für Jessie:

sudo mkdir /var/www/html/wordpress

Verlasst den den Root-Account und kehrt als normaler Nutzer “pi” zurück:

exit

Kopiert die entpackten Dateien in den neu erstellten Ordner:

sudo cp -r ~/wordpress/* /var/www/wordpress

oder für Jessie (Ende 2015)

sudo cp -r ~/wordpress/* /var/www/html/wordpress

Wir müssen dem Apachen noch beibringen, richtig mit PHP in HTML Dokumenten umzugehen. Öffnet dazu die apache2.conf

sudo nano /etc/apache2/apache2.conf

Navigiert ganz nach unten (CTRL+V mehrmals drücken) und fügt ganz am Ende folgende Zeile ein und speichert das Dokuement.

AddType application/x-httpd-php .html

Damit alles auch vom Apachen übernommen wird, muss der Dienst neu gestartet werden.

sudo /etc/init.d/apache2 restart

Schritt 3: WordPress installieren

WordPress wurde nun heruntergeladen und der Server vorbereitet – wir müssen nun eine Verknüpfung zwischen WordPress und der Datenbank herstellen. WordPress benötigt eine wp-config.php, diese beinhaltet die Zugangsdaten zur Datenbank (und noch vieles mehr). Bei einer frisch heruntergeladenen Version, gibt es diese Datei noch nicht, wir kopieren diese aus dem Vorlagen Ordner mit dem Befehl:

sudo cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php

oder für Jessie (Ende 2015)

sudo cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php

Derzeit stehen noch Beispieldaten in der wp-config.php, diese ersetzen wir nun mit den Anmeldinformationen zu unserer erstellen Datenbank:

sudo nano /var/www/wordpress/wp-config.php

oder für Jessie (Ende 2015)

sudo nano /var/www/html/wordpress/wp-config.php

Wenn ihr die Daten aus der Anleitung 1:1 übernommen habt, ersetzt diese wie im Bild zu sehen.

Nano Editor Wordpress wp-config.php beschreiben

Nano Editor Wordpress wp-config.php beschreiben

Speichern und schließen nicht vergessen.

Wenn nun alles richtig gemacht wurde, ist WordPress im Browser unter der IP Eures Pis + /wordpress zu erreichen, in unserem Beispiel war es 192.168.2.12/wordpress.

Hier noch ein paar Bilder, die die Oberfläche der Installation erklären:

  • 001_Installationroutine001_Installationroutine
  • 002_Setup_Config002_Setup_Config
  • 003_Konfigurationseinstellungen003_Konfigurationseinstellungen
  • 004_WP_Backend004_WP_Backend



1 Benchmarks stammen von Tomshardware.de - die oben getätige Aussage bzgl. der Leistung bezieht sich nicht auf den Test, sondern auf Werte von NoName SD-Karten und Werte aus Benchmark Foren. http://www.tomshardware.de/sdxc-sdhc-uhs-i-Vergleichstest-Performance,testberichte-240844.html Up

2 Grundsystem ist Debian Wheezy mit 16MB Grafikspeicher bereits aktivierem SSH Server und deaktivierter Benutzeroberfläche. Up

3 Medium Voreinstellung im raspi-config Menü unter Overclocking Up

4 *.* bedeutet alle Dateitypen anzeigen. Up


Diesen Beitrag teilen
FaceBook  Twitter  Mixx.mn