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
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:
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:
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:
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
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:
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:
Nach erfolgreichem Aufbau der Verbindung kann man die Dateien bequem vom PC zum Raspberry verschieben und umgekehrt: