Raspberry Pi Webserver (Apache, MySQL, PHP7)

Der Raspberry Pi eignet sich gut als kleiner Apache-Server. Zwar kann er wegen seiner geringen Leistung nicht all zu viele Anfragen gleichzeitig beantworten, für private Daten von Familie und Freunden reicht es aber vollkommen aus.

Ich gehe davon aus, dass du mit dem Raspi per SSH verbunden bist und dieser Anschluss zum Internet hat.

Zunächst solltest du dir Root-Rechte holen:

sudo bash

Apache 2.4

Nun können wir Apache mit folgendem Befehl installieren:

apt-get install apache2
Apache2 Debian Default Page
Apache2 Debian Default Page

Wenn du jetzt die (lokale) IP-Adresse des Raspberrys in deinem Browser eingibst, sollte der Server eine Dummy-Seite ausgeben (Bild rechts).

Das Standard-Verzeichnis des Webservers liegt unter /var/www/. Dort sollte eine index.html liegen, die die Seite wie im Bild rechts anzeigt.

Konfiguration

Apache wird unter /etc/apache2 konfiguriert. Hier kannst du verschiedene Module aktivieren, Ports freischalten oder VHosts einrichten. Die Konfigurations-Datei liegt meist unter /etc/apache2/*-available/ wobei * für conf (configuration), mods (modules) oder sites steht. Um diese zu aktivieren erzeugt man einen Link auf eine dieser Dateien unter /etc/apache2/*-enabled/.

Dieser Link wird mit dem Befehl a2enmod (apache2 enable module) für Module automatisch erstellt: Beispielsweise a2enmod wsgi. Für alle anderen Links muss die Debian-Funktion ln (link) verwendet werden. Die Aktivierung einer Seite sieht dann in etwa so aus:

ln -s /etc/apache2/sites-available/my-new-site /etc/apache2/sites-enabled/my-new-site

Um diese Seite wieder zu deaktivieren muss einfach der Link gelöscht werden:

rm /etc/apache2/sites-enabled/my-new-site

PHP 7

Für PHP 7 ist es wichtig, dass du die aktuellste Debian Version benutzt (sprich 8.0 aka „Jessie“ oder höher). PHP 7 wird zurzeit noch nicht in der Standard-Liste ausgeliefert, deshalb muss eine weitere Quelle hinzugefügt werden. Öffne zunächst die Liste der Quellen /etc/apt/sources.list beispielsweise mit nano:

nano /etc/apt/sources.list

und füge folgende Zeile an das Ende der Datei ein (Tipp: In PuTTY kannst du die aktuelle Zwischenablage mit Rechtsklick einfügen):

deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free

Die Datei mit Strg+x schließen und mit y die Änderungen übernehmen. Anschließend muss die Paketverwaltung upgedatet und PHP 7.0 installiert werden:

apt-get update
apt-get install php7.0

PHP 7.0 ist nach einem Neustart von Apache (/etc/init.d/apache2 restart) einsatzbereit.

Um PHP zu testen kannst du eine PHP-Datei unter /var/www/ mit folgendem Inhalt anlegen:

<?php
phpinfo();

Anschließend die Seite im Browser öffnen – es erscheint eine Seite mit Infos zur installierten PHP-Version.

MySQL

MySQL kann mit folgendem Befehl installiert werden:

apt-get install mysql-server mysql-client

Während der Installation wirst du aufgefordert ein Passwort für den MySQL Root-User zu vergeben. Dieses Passwort kann später auch für phpMyAdmin verwendet werden.

Um MySQL ausreichend gegen Angriffe zu schützen, sollte der Remote-Zugriff unterbunden werden. Das ist zwar standardmäßig abgeschaltet aber überprüfen schadet nicht: In der MySQL-Config /etc/mysql/my.cnf sollte vor bind-address = 127.0.0.1 keine Raute sein. Mit einem Port-Scanner sollte Port 3306 nicht offen sein.

Außerdem sollte ein weiterer MySQL-Benutzer angelegt werden, der nur die wichtigsten Rechte besitzt. Das kann aber bequem über phpMyAdmin gemacht werden.

phpMyAdmin

Wie immer erst mal das Paket laden und installieren:

apt-get install phpmyadmin
phpMyAdmin Login
phpMyAdmin Login

Im Browser deiner Wahl die lokale IP-Adresse des RasPis gefolgt von /phpmyadmin eingeben und es erscheint die Login-Seite von phpMyAdmin. Beispiel: 192.168.10.5/phpmyadmin.

Benutzername: root oder phpmyadmin
Passwort: [Passwort wurde während der Installation abgefragt – wenn nicht dann ist es das gleiche wie in der MySQL-Installation]