Für meine Arduino-Projekte benötige ich einen stromsparenden Webserver mit PHP und MySQL. Hierfür eignet sich der Raspberry Pi optimal. Im Folgenden wird beschrieben, wie der Webserver aufgesetzt und betrieben wird. Ich habe mich dabei an diese Anleitung gehalten:

http://www.forum-raspberrypi.de/Thread-tutorial-raspberry-pi-als-webserver-phpmyadmin-installation

Allerdings habe ich darin ein paar Befehle entdeckt, die bei meiner Version nicht funktioniert haben. Deshalb hier alle Befehle, die bei mir fehlerfrei liefen:

Apache Installation

Apache benötigt eine Benutzergruppe für die Installation. Diese war bei mir schon vorhanden, weshalb folgender Befehl eine Fehlermeldung brachte:

sudo groupadd www-data

Das Konto wird jetzt noch angepasst:

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

Vor der Installation sollte das Betriebssystem auf dem neuesten Stand sein (wie im Kapitel Inbetriebnahme beschrieben). Es kann nichts schaden den Befehl nochmal auszuführen, es könnten sich ja schon wieder Binaries geändert haben:

sudo apt-get update

sudo apt-get dist-upgrade

Jetzt wird Apache2 installiert:

sudo apt-get install apache2

Nach ein paar Minuten ist Apache installiert. Die IP-Adresse des RasPi benötigt man für den Zugriff vom PC aus. Sie wird ermittelt über

ifconfig

ifconfig Ausgabe

Bei Euch ist vielleicht eine 192.168... Adresse zu sehen. Ich habe zu Hause ein privates 10er-Subnetz installiert.

Um die korrekte Funktion des Apache-Webservers zu testen, öffnet man auf einem PC im Netzwerk den Browser (Internet Explorer, Chrome, Safari...) und gibt folgende URL mit der eben ermittelten IP-Adresse ein:

http://10.0.0.58

 Wenn Apache funktioniert, ist folgende Website zu sehen:

Asugabe von Apache 2

 

PHP5 Installation

Für Webseiten wird noch die Skriptsprache PHP in der Version 5 benötigt:

sudo apt-get install php5

Abschließend kann man bei Bedarf noch Erweiterungen für PHP installieren:

sudo apt-get install libapache2-mod-perl2 php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mysql php5-odbc

Wer den "Alternative PHP Cache" verwenden möchte, muss noch diese Erweiterung installieren:

sudo apt-get install php-pear php-apc

Dadurch werden PHP-Skripte vorkompiliert und laufen dann entsprechend schneller ab. php-pear sind weitere häufig benötigte Bibliotheken.

Die Installation kann man testen, indem man eine PHP-Datei im Webbereich erzeugt und dann per Browser aufruft. Dies wird mit dem Editor Nano vorgenommen. Die Web-Dateien müssen im Verzeichnis /var/www liegen:

cd /var/www

sudo nano phpinfo.php

In diese Datei schreibt man diese Befehle

phpinfo();

Um die Datei zu speichern, ist die Tastenkombination Strg + X zu drücken. Auf dem PC ist der Browser zu öffnen und folgende URL einzugeben:

http://10.0.0.58/phpinfo.php

Dann müsstest Ihr bei korrekter Funktion diese Übersicht erhalten:

phpinfo.php

Nach erfolgreicher Installation ist der Pi neu zu starten:

sudo reboot

 

MySQL Installation

In Verbindung von PHP wird häufig eine Datenbank benötigt. MySQL Server lässt sich folgendermassen installieren:

sudo apt-get install mysql-server mysql-client

Bei dieser Installation wird ein Passwort für den MySQL-Root-User abgefragt. Bitte eingeben und wiederholen und an einem sicheren Ort verwahren. Anschliessend wir der Pi neu gestartet:

sudo reboot


phpMyAdmin Installation

phpMyAdmin ist eine webbasierte Verwaltungs-Software für MySQL. Man installiert sie über:

sudo apt-get install libapache2-mod-auth-mysql phpmyadmin

Bei der Abfrage mit welchem Webserver gearbeit wird ist "apache2" auszuwählen. Anschliessend muss die Systemabfrage zu Erstellung von internen Verwaltungsdatenbanken mit "Yes" beantwortet werden.

Anschliessend benötigt die Installation noch das Passwort des vorher für MySQL angelegten Root-Users. Dann wird ein neues Passwort (plus Bestätigung) für den phpMaAdmin User benötigt.

phpMyAdmin muss jetzt noch mit Apache 2 verknüpft werden. Dazu editiert man eine Konfigurationsdatei mit dem Nano:

sudo nano /etc/php5/apache2/php.ini

und ergänzt etwa in der Mitte der Datei bei der Sektion "Extensions" folgende Zeile:

extension=mysql.so

Man kann dazu den Kommentar "#" vor der bereits vorhandenen Zeile entfernen. Anschließend mit Strg + X abspeichern und den Editor verlassen.

Man kann phpAdmin jetzt auf dem PC in einem Browser aufrufen, indem man

http://10.0.0.58/phpmyadmin/

eingibt (verwendet Eure eigene IP-Adresse!). Bei korrekter Funktion ist dann diese Oberfläche zu sehen. Das kann durchaus 10 Sekunden dauern, weil phpMyAdmin ein sehr umfangreiches Skript ist, bei dem der Pi an seine Leistungsgrenzen gelangt:

Login von phpMaAdmin

Der Benutzer von phpMyAdmin heisst "root". Das Passwort habt Ihr vorhin bei der Installation eingegeben (Achtung: hier ist nicht das Passwort des MySQL-Users, sondern das von phpMyAdmin gefragt). Nach dem Login erhält man die Hauptseite von phpMyAdmin

phpMyAdmin

 

 

FTP Server Installation

Um die Webdateien bequem auf den Raspberry Pi laden zu können, benötigt man einen FTP-Server:

sudo apt-get install proftpd

Während der Installation wird der Startmodus abgefragt. Hier ist der Servermodus auszuwählen. Mit dem Editor Nano bearbeiten wir die Konfigurationsdatei

sudo nano /etc/proftpd/proftpd.conf

und fügen folgende Zeilen ein vor der vorhandenen Zeile "RequireValidShell", um mit virtuellen Usern arbeiten zu können:

DefaultRoot ~
AuthOrder   mod_auth_file.c  mod_auth_unix.c
AuthUserFile  /etc/proftpd/ftpd.passwd
AuthPAM  off
RequireValidShell  off

Anschließend mit Strg + X speichern und den Editor verlassen. Jetzt ist wieder Zeit für einen Reboot:

sudo reboot

Jetzt erstellt man einen virtuellen FTP-User:

cd /etc/proftpd/

Wir benötigen die User- und Group-ID des Users "www-data". Diese kann man mit dem Befehl

id www-data

abrufen und notieren. Sie sollte UID=33 und GID=33 haben. Den virtuellen User "ftpuser" (man kann dort einen beliebeigen Namen festlegen) legt man folgendermaßen an:

sudo ftpasswd --passwd --name ftpuser --uid 33 --gid 33 --home /var/www --shell /bin/false

An dieser Stelle wird man zur Eingabe eines Passworts für den "ftpuser" aufgefordert. Da keine Namelde-Shell zur Verfügung gestellt werden soll, wird --shell /bin/false als Shell vorgegeben. Dies ist erforderlich damit es keine Fehlermeldung gibt.

sudo chmod g+s /var/www

sudo chmod 775 /var/www

sudo chown www-data:www-data /var/www

Mit den letzten drei Befehlen werden Zugriffs- und Eigentumsrechte geändert.

Jetzt testet man die korrekte Funktion, indem man im Browser des PC die URL

ftp://10.0.0.58

eingibt. Man sollte jetzt nach Ausfüllen der Anmeldemaske (ftpuser und Passwort) den Inhalt des Verzeichnisses /var/www im Browser sehen:

Explorer mit FTP-Zugriff

Man kann auch einen professionellen FTP-Client auf dem PC verwenden, z.B. WS_FTP PRO. Das Programm wird nach seiner Installation geöffnet und eine neue Verbindung eingetragen:

WS_FTP Pro Verbindung erzeugen

Nach erfolgreichem Aufbau der Verbindung kann man die Dateien bequem vom PC zum Raspberry verschieben und umgekehrt:

WS_FTP Pro