Dynmaische Webseiten: Apache2 Webserver mit PHP und MySQL/MariaDB auf dem Raspberry Pi installieren – einfachster Weg für Anfänger (LAMP)

Als Video ansehen
Bereitgestellt über YouTube

Dynmaische Webseiten: Apache2 Webserver mit PHP und MySQL/MariaDB auf dem Raspberry Pi installieren – einfachster Weg für Anfänger (LAMP)

Apache2 und das ebenfalls quelloffene PHP gehören zum Urgestein des Internets aus den 90ern. Bis heute eignen sie sich zur dynamischen Bereitstellung von Webseiten. Die grundlegende Funktion ist einfach sowie überschaubar, und dadurch auch für Anfänger geeignet. Im folgenden möchte ich euch den einfachsten Weg zeigen, wie man Apache2 mit PHP und einer MariaDB-Datenbank über die Paketverwaltung auf den Raspberry Pi installieren kann.

Die Funktionsweise von HTTP und das betreiben einer Internetseite auf dem Raspberry Pi haben wir in einem separaten Videobeitrag bereits genauer erklärt. Auf die Hintergründe werde ich daher an dieser Stelle nicht weiter eingehen. Was man vor der Installation neuer Software grundsätzlich beachten sollte, erfährst du hier.

Apache2 und PHP installieren

Im Grunde müssen wir nur 2-4 Pakete installieren, um grundlegende PHP-Webseiten betreiben zu können. Zunächst installieren wir den Webserver:

sudo apt install apache2

Anschließend folgt PHP. Die Mbstring-Erweiterung ist nicht zwingend erforderlich, aber wird für verschiedene Anwendungen wie z.B. für WordPress benötigt. PHP-MySQL eben so, diese Erweiterung ermöglicht das Verbinden mit MySQL-Datenbanken.

sudo apt install php php-mysql php-mbstring

Mittlerweile wird die MySQL-Erweiterung automatisch geladen. Falls dies bei dir nicht funktioniert, den Apache-Webserver einmal neu starten:

sudo systemctl restart apache2

Berechtigungen setzen und Testseite erstellen

Standardmäßig liefert Apache alle Dateien im Ordner /var/www/html aus. Dieser gehört jedoch root, d.H. wir können dort nur Dateien erstellen oder bearbeiten, wenn wir z.B. sudo nutzen – das ist eine (unnötig) schlechte Praxis und sollte geändert werden. Unser Benutzer mit dem wir an der Seite arbeiten möchten (hier pi) erhält volle Rechte. Die Gruppe www-data unter der Apache2 läuft, darf Lesen + Ausführen. Alle anderen erhalten keinerlei Berechtigungen – was in der Form Sinn macht, wenn wir nur mit einem Benutzer arbeiten.

sudo chown -R pi:www-data -R /var/www/html
chmod 750 -R /var/www/html

Nun können wir mit unserem pi-Benutzer problemlos Dateien erstellen und bearbeiten. Als ersten Test erzeugen wir eine PHP-Datei namens i.php (frei wählbar) und lassen uns die PHP-Info ausgeben. Das ist eine von PHP generierte Seite, die alle relevanten Informationen rund um die PHP-Konfiguration anzeigt – darunter unter anderem die Version oder die Installierten Erweiterungen. Bei einer frischen Installation ist sie daher ein guter erster Test um sicherzustellen, dass alles wie gewünscht funktioniert:

echo '<?php phpinfo();' > /var/www/html/i.php

Nun können wir diese Seite über die IP-Adresse oder den Hostname gefolgt von /i.php aufrufen, beispielsweise http://testpi/i.php

Damit ist unsere Apache-Installation mit PHP bereit. Alle Dateien in /var/www/html werden im Wurzelverzeichnis angezeigt bzw. im Falle von PHP ausgeführt. i.php ist frei gewählt, ihr könnt die Datei auch anders nennen.

MySQL/MariaDB installieren

MySQL ist ebenfalls eine ältere, aber nach wie vor verbreitete und nützliche SQL-Datenbank. Als diese von Oracle gekauft wurde, entwickelte sich MariaDB. Der Fork sollte sicherstellen, dass die Datenbank quelloffen und transparent bleibt. Ihr Ziel ist es, mit MySQL kompatibel zu sein. Sie hat sich zu einer ressourcensparenden Alternative etabliert, womit sie sich für den Raspberry Pi optimal anbietet. Man benötigt nicht zwingend eine Datenbank für PHP, aber in vielen Fällen ist dies zumindest sinnvoll. An dieser Stelle sei auch erwähnt, dass MariaDB bzw. MySQL nicht die Einzigen sind, wenngleich sie zu den verbreitetsten gehören.

MariaDB lässt sich über die Standardpaketquellen installieren:

sudo apt install mariadb-server

Standardmäßig kommt der lokale Benutzer root lokal ohne Passwort auf den MariaDB-Server, wenn man sich als root (z.B. mit sudo) verbindet. Auf der Konsole kann man anschließend mit vollen Rechten SQL-Abfragen ausführen – beispielsweise die Statusseite, um uns Testweise die Laufzeit des Servers anzuzeigen:

$ sudo mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 50
Server version: 10.3.29-MariaDB-0+deb10u1 Raspbian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SHOW GLOBAL STATUS LIKE 'Uptime';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Uptime        | 54    |
+---------------+-------+
1 row in set (0.003 sec)

Weiterer Ausbau

Nun habt ihr eine grundlegende LAMP-Installation, also ein auf Linux basiertes Serversystem mit dem Apache-Webserver, einer MariaDB bzw. MySQL Datenbank und der Skriptsprache PHP. Ihr könnt nun eine Datenbank mit Benutzer und den entsprechenden Berechtigungen darauf anlegen. Dieser lässt sich in einem PHP-Skript nutzen, um eure Datenbank zu Füllen oder Inhalte daraus anzuzeigen. Natürlich müsst ihr nicht zwingend etwas selbst programmieren. Auch fertige PHP-Anwendungen können auf dem Pi betrieben werden, etwa ein WordPress-CMS.

Sowohl ein erstes selbst programmiertes Skript als auch die Installation von WordPress werden wir uns noch in folgenden Videos anschauen und oben verlinkten. Oder du stöberst selbst in unseren weiteren Beiträgen: Neben weiteren Tutorials die zeigen wie man den Pi als kleinen Mini-Server nutzen kann, sind dort ebenfalls andere Tipps, Tricks und Anleitungen zu finden. Ich wünsche dir viel Erfolg mit deinem Projekt 🙂

Leave a Reply