2.2 Der Weg zum Webserver mit Datenbank

Website: xplore-dna.net > Die DNA des digitalen Lernens!
Kurs: T1-Car Sensors by Lauritz, Max & Torben
Buch: 2.2 Der Weg zum Webserver mit Datenbank
Gedruckt von: Gast
Datum: Dienstag, 6. Mai 2025, 12:28

1. Inhalt

Um den RPI nach der grundlegenden Einrichtung bereit für die Datenbank zu machen, muss dieser mit einer Reihe an Anwendungen ausgestattet werden. Dazu folgt eine Reihe an Installationen bestehend aus:

  • Apache2
  • PHP7
  • MySQL
  • phpMyAdmin

2. Apache2 - Webserver

Einer der meist genutzten Webserver auf dem RPI ist der Apache2 HTTP Server. Die Installation ist ziemlich simple nachdem die Pakete geupdated wurden. Dazu muss wieder das Terminal geöffnet werden und folgender Befehl eingegeben werden:

sudo apt-get install apache2

Es muss wie immer mit "J" bestätigt werden, dass die Datein gespeichert werden dürfen. Das war´s auch schon. Über den Browser (Chromium auf dem RPI) oder einen Rechner aus dem selben lokalen Netzwerk sollte nun unter der vergebenen IP-Adresse die Apache2-Standardseite sichtbar sein.

 Ebenfalls können unter dem Dateipfad /var/www Datein (z.B. HTML oder später PHP) abgelegt werden, auf welche über den Browser durch Anhängen des Dateinamens an die IP-Adresse (Bsp: 192.168.1.123/Dateiname.html) zugegriffen werden kann.



Abbildung: Apache2 Default Page, Quelle BBS2 Wolfsburg


3. PHP7

Um dynamische Inhalte anzuzeigen, wird der Webserver nun um eine Version von PHP ergänzt. Die Installation ist ebenfalls ganz einfach über das Terminal umzusetzen. Mit diesem Befehl wird automatisch die neuste Version von PHP installiert

sudo apt-get install php

Es kann nun ein kleiner Test durchgeführt werden, indem ein Mini-Skript in dem Verzeichnis des Webservers als PHP-Datei abgelegt wird.

Um eine Datei zu erstellen, muss im Terminal mit dem Befehl 

cd /var/www/html

in das Verzeichnis, in welchem die Datei abgelegt werden soll, gewechselt werden. Hier wird der html-Ordner verwendet, da die Konfiguration des Webservers standardmäßig darauf eingerichtet sein sollte. Dann kann dort der nachfolgende Befehl durchgeführt werden, um die Datei "info.php" zu erstellen.

sudo nano "info.php"

In die Datei sollte dann der nachfolgende Code eingefügt werden. Anschließend wieder speichern und schließen.

__________________________

<?php

phpinfo();

?>
__________________________

Ruft man nun im Browser wieder die "IP/info.php" auf, so sollten die Informationen der installierten PHP-Versionen sichtbar sein.



Abbildung: PHP Info Page, Quelle BBS2 Wolfsburg

4. Datenbank

Nach den Vorbereitungen des Webservers folgt nun die Einrichtung der eigentlichen Datenbank, in welcher die Sensordaten später gespeichert werden sollen. Für Webdienste bietet sich die weltweit verbreitete open-source Software MySQL an. Auf dem Raspberry Pi wird, um genau zu sein, eine Kombination von MySQL und MariaDB Teilen installiert. MariaDB ist aus MySQL hervorgegangen, ist nahezu 1:1 kompatibel und bietet in den meisten Punkten sogar noch mehr Funktionen. Im weiteren werden (fälschlicherweise) beide Datenbanken synonym verwendet. Um Daten abzufragen oder zu manipulieren wird die Datenbanksprache SQL (Structured Query Language) verwendet. 

Beide Systeme basieren auf einem relationalen Datenbankmodell, welches im Vergleich zu bspw. dem hierarchischen oder objektorientierten Modell das bekannteste und weitverbreitetste ist. Dabei handelt es sich grundlegend um Speicherung von Daten in verschiedenen Tabellen, welche über Beziehungen (Relationen) untereinander verknüpft sind. Es werden also nicht alle Daten in einer großen Tabelle gespeichert, sondern mehrere Tabellen (die Relationen), welche sich quasi in Kategorien unterteilen. Dabei ist jede Zeile (Tupel) ein Datensatz und enthält eine oder mehrere Spalten (Attribute). Durch die Aufteilung und anschließende Verknüpfung ist beispielsweise eine unnötige Dopplung von Daten ausgeschlossen. Dies ist vorteilhaft, wenn eine Datenbank immer größer und komplexer wird.

Ein Beispiel wäre eine Reihe an Kunden mit verschiedenen Attributen wie: Kundennummer, Vorname, Nachname, Wohnort.
Und eine Reihe an Fahrzeugen mit den Attributen: Fahrzeugnummer, Marke, Modell, Jahr.

Kunde
Kundennummer Vorname Nachname Wohnort
1
Max Mustermann Musterstadt
2 Erika Musterfrau Musterdorf

Fahrzeug
Fahrzeugnummer Marke Modell Jahr
1 VW Golf 2019
2 Audi A6  2016 
3 Porsche GT3 2021

Nun lassen sich in einer weiteren Tabelle Beziehungen erzeugen. Dazu werden ein oder mehrere Schlüssel (key) verwendet, worüber ein Datensatz eindeutig identifizierbar sein muss. In diesem Fall geschieht dies über die Kunden- und Fahrzeugnummer.

Besitz
Kundennummer Fahrzeugnummer
1 1
1 3
2

Vorteile werden bei größeren Datenmengen sichtbar, da ein Fahrzeugtyp, welcher von mehreren Kunden besessen werden kann, nur einmal angelegt werden muss und ein Kunde eventuell auch mehrere Fahrzeuge besitzt.

4.1. MySQL

Nach der Theorie folgt zunächst wieder die Installation. Grundsätzlich geschieht die Speicherung und Abfrage nach dem Server-Client-Prinzip. Dementsprechend muss ein MySQL-Server und ein MySQL-Client installiert werden. Dazu kommt die Erweiterung für PHP. Alle drei Dinge können mit einem Befehl installiert werden.

sudo apt-get install mariadb-server-10.0 php7.3-mysql mariadb-client-10.0

Im Normalfall sollte nun die Passwortvergabe auftauchen. Dieses ist zweimal einzugeben. Unabhängig davon folgt eine Reihe an Terminal-Befehlen, um MySQL automatisch zu starten und fertig zu installieren.

sudo systemctl start mysql

sudo systemctl enable mysql

sudo mysql_secure_installtion


Die Konfiguration sollte wie folgt abgeschlossen werden:

"Set root password?" - Y

< Passwort vergeben >

"Remove anonymous users?" - Y

"Disallow root login remotely?" - N

"Remove test database and access to it?" - N (oder Y)

"Reload privilege tables now?" - Y


Damit ist die Installation der Datenbank selbst vorerst abgeschlossen. Um diese über eine Oberfläche auf dem Webserver administrieren zu können folgt die Installation eines hilfreichen Tools.

4.2. phpMyAdmin

Als letzter Teil der Installationen folgt nun phpMyAdmin, womit die Datenbank verwaltet werden soll. Dies lässt sich mit dem folgenden Befehl durchführen

sudo apt-get install phpmyadmin

Der Speicherplatz ist wieder freizugeben. Danach folgt die automatische Einrichtung wobei zuerst der verwendete Webserver Apache2 mit der Leertaste vorgewählt und mit Enter bestätigt werden muss. Das nächste Fenster über die Konfiguration ist mit <Ja> zu bestätigen. Anschließend erfolgt eine Passwortvergabe. Der Aufruf der Oberfläche funktioniert nun über den Browser mittels IP/phpmyadmin.

Der Login ist allerdings noch nicht möglich. Dazu muss der Zugang zur Datenbank neu konfiguriert werden. Dazu ist folgender Befehl in das Terminal einzugeben.

sudo dpkg-reconfigure -plow phpmyadmin

Die verschiedenen Wahlmöglichkeiten sind nacheinander wie folgt auszuwählen und jeweils mit Enter zu bestätigen.

1 <Ja>

2 <TCP/IP>

3 <localhost>

4 Portnummer 3306

5 "Datenbankname"

6 MySQL-Benutzername: root@localhost

7 Passwortvergabe

8 Benutzer "root"

9 <Apache2>



Abbildung: phpMyAdmin, Quelle BBS2 Wolfsburg


Treten Schwierigkeiten am auf oder die Konfiguration war nicht erfolgreich, dann ist der Ablauf zu wiederholen.

Anschließend kann über den Browser wieder mit IP/phpmyadmin die Anmeldemaske aufgerufen und sich mit dem angelegten Benutzer "root" angemeldet werden. In der Übersicht sind im linken Bereich zunächst die Standard Datenbanken zu sehen. In der Mitte können einfache Einstellungen vorgenommen werden und im rechten Bereich werden Informationen zur Datenbank und dem Webserver angezeigt.



Abbildung: phpMyAdmin Oberfläche, Quelle BBS2 Wolfsburg

4.3. Erste Tabelle anlegen

Als erstes wird eine neue Datenbank für die Daten über den Button "Neu" links oben erstellt. Es öffnet sich ein Fenster in dem die aktuellen Datenbanken sichtbar sind und in einer Zeile ein neuer Name eingetragen werden kann. 

Anschließend kann in dieser Datenbank eine neue Tabelle angelegt werden. Für dieses Projekt wird diese "data" genannt und enthält 5 Spalten.

Die Spalten werden anschließend wie in der Abbildung nach den Attributen bestimmt.


Abbildung: phpMyAdmin Tabelle anlegen, Quelle BBS2 Wolfsburg