Raspberry Pi Webserver (Apache, MySQL, PHP7)

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]