Apache Webserver, PHP, SQL Datenbank und FTP Zugang auf dem Raspberry Pi einrichten

Veröffenticht am 02.09.2015    von     in der Kategorie Raspberry Pi, uart2web Projekt, Webserver     bisher 13 Reaktionen    Zuletzt überarbeitet am 18.10.2023


In diesem Beitrag zeige ich dir, wie du auf deinen Raspberry Pi einen Apache Webserver, die Skriptsprache PHP und eine SQL Datenbank installierst und entsprechende Dateiberechtigung vergibst.

 

Beitragsaktualisierung 29.07.2023

Für die Beitragsaktualisierung habe ich das Raspberry Pi OS with desktop mit Veröffentlichungsdatum 03.05.2023 auf einem Raspberry Pi 4 Modell B verwendet. Die alte Reihenfolge des Beitrages habe ich etwas verändert und inhaltlich entsprechend angepasst.

 

Veraltetes Beitragsvideo auf YouTube

Die Installation und Einrichtung im Video erfolgt in folgender Reihenfolge unter Verwendung der aufgelisteten Befehle.

Anmerkung: Im Gegensatz zur Videobeschreibung habe ich die folgende Aufstellung um die Installation von PHP 7 erweitert. Somit kannst du wählen, welche PHP Version du nutzen möchtest.

 

Warum braucht man einen Webserver?

Ein Webserver ist ein Programm, das Anfragen von Webbrowsern entgegennimmt und ihnen Webseiten oder andere Daten zurücksendet. Diese Daten bzw. Seiten können zum Beispiel Sensordaten, die du mit deinem Raspberry Pi erfasst hast, sein. Viele meiner Beiträge zum Raspberry Pi benötigen zur Ausgabe einen Webserver um die in der Datenbank gespeicherten Daten oder einfach auch die Steuerung des Einplatinenrechners über den Webserver zu ermöglichen. Schau dir hierzu zum Beispiel mal meinen Beitrag “Schrittmotor am Raspberry Pi über Webinterface steuern” oder “Mobile WebApp für die Temperaturmessung am Raspberry Pi” an.

 

Warum PHP?

PHP ist eine beliebte Programmiersprache, die vor allem für die Entwicklung von Webanwendungen verwendet wird. PHP steht für “Hypertext Preprocessor” und ist eine serverseitige Sprache, die in HTML eingebettet werden kann. Zu den Vorteilen von PHP zählt u.a. die:

– Einfachheit: PHP ist leicht zu erlernen und zu schreiben, da es eine klare und einfache Syntax hat.
– Flexibilität: PHP ist kompatibel mit vielen Betriebssystemen, Webservern und Datenbanken und kann mit anderen Sprachen wie JavaScript oder HTML kombiniert werden.
– Leistungsfähigkeit: PHP kann komplexe und dynamische Webseiten erstellen, die mit Datenbanken interagieren, Dateien verwalten, E-Mails versenden und vieles mehr.

Natürlich kann man auch mit Python, welches ich in vielen Projekten auf dem Raspberry Pi verwende, für Webanwendungen verwenden. Allerdings mag ich persönlich die Flexibilität von PHP in Verbindung mit JavaScript und HTML zur Ausgabe von Webseiten lieber. Einen, wie ich finde schönen Mix bieten zum Beispiel meine “Mobile WebApp für die Temperaturmessung am Raspberry Pi” oder “uart2web” Projekte.

 

Wozu benötigt man eine SQL-Datenbank, reicht nicht auch eine Textdatei?

Eine Textdatei kann für einfache Anwendungen ausreichen, wenn nur wenige Daten gespeichert und bearbeitet werden. Möchtest du allerdings größere Mengen an Daten verarbeiten und abfragen, ist eine SQL-Datenbank jedoch die bessere Wahl.

 

Vorbereitung

Wie vor jeder Veränderung an einem lauffähigen System, empfiehlt sich eine Sicherung des bestehenden Systems. Die meiner Meinung nach einfachste Möglichkeit unter Raspberry Pi OS ist die Sicherung bzw. das Klonen der SD-Karte mit dem Boardmittel SD Card Copier.

Folgende Slideshow zeigt dir die notwendigen Schritte.

 

  • Im Hauptmenü unter Zubehör öffnest du das Programm "SD Card Copier".

 

Die erstellte SD-Karte ist bootfähig und eine 1:1 Abbildung der sich im Raspberry Pi befindlichen System-Karte.

Solltest du noch keinen SD-Kartenleser haben, empfiehlt sich ein SD/Micro SD-Kartenleser mit Dual-USB-Stecker. Als SD-Karte verwende ich seit Jahren in meinen RasPi’s SanDisk microSDHC Class 10 Speicherkarten.

 

Folgende Schritte führst du durch Befehlseingaben aus. Hierzu öffnest du das Terminal oder verbindest dich per SSH mit deinem Raspberry Pi.

 

HINWEIS: Du kannst alle hier verwendeten Terminaleingaben auch über Copy & Paste durchführen. Hierzu kopierst du den entsprechenden Befehl und im Terminal des Raspberry Pi verwendest du die Tastenkombination Strg+Umschalt+V – dies funktioniert auch über eine VNC Verbindung.

 

Wie du einen VNC-Server unter Raspberry Pi OS einrichtest, habe ich unter anderem in meinem Beitrag “VNC Server unter Raspbian Jessie with Pixel aktivieren” beschrieben.

 

Anlegen des Benutzer

Unter diesem Benutzer läuft der Webserver-Dienst im System.

 

Raspberry Pi updaten

Bevor wir neue Software bzw. Pakete installieren, empfiehlt sich die Aktualisierung des Systems. Hierzu gibst folgenden Befehl ein.

 

Eine Übersicht über weitere wichtige und häufig verwendete Befehle stelle ich dir auf einem kleinen Spickzettel für Raspberry Pi OS Befehle zur Verfügung.

 

Apache Webserver installieren

In diesem Beitrag installieren wir den Apache Webserver, dieser ist Open Source und wird unter der GNU Public License (GPL) frei zum Download angeboten. Die Installation des Apache Webserver erfolgt durch folgende Eingabe.

Die Abfrage “Möchten Sie fortfahren? [J/n] bestätigst du mit J.

 

Nach der Installation läuft der Webserver schon. Dies kannst du überprüfen indem du den Webbrowser auf dem Raspberry Pi öffnest und in die Adresszeile localhost eingibst. Alternativ kannst du hier oder in einem Webbrowser auf einem anderen Rechner im gleichen Netzwerk wie der Raspberry Pi die IP-Adresse eingaben.

Der Webbrowser sollte nun folgende Seite ausgeben.

 

Weitere Informationen und die Dokumentation zum Apache Webserver findest du auf der Apache HTTP Server Project Homepage.

 

Dateiberechtigung

Die Berechtigung für Lesen, Schreiben und Ausführen der Dateien im Server-Ordner für ALLE setzt du mit folgenden Befehlen. Das Schreiben und Ausführen ist notwendig, wenn du eine Datei in dem Ordner (z.B. SQL-Datei mit Python erstellst und mit PHP ändern möchtest).

 

PHP installieren

 

Update am 18.10.2023, mit der neuesten Version des Raspberry Pi OS – Bookworm steht jetzt die Version 8.2 zur Verfügung. Die folgenden Schritte sind daher nur interessant, wenn du mit einer älteren Version des OS arbeiten möchtest oder eine spezielle Version von PHP installieren möchtest.

Um die aktuelle Version von PHP zu installieren, gib einfach folgenden Befehl in das Terminal ein

 

Im ursprünglichen Beitrag war noch PHP in der Version 5 im Standard-Raspbian-Repository vorhanden. Im aktuellen Raspberry Pi OS (Stand 03.05.2023), welches aktuell auf Debian Version 11 (Bullseye) aufsetzt, ist PHP in der Version 7.4.33 enthalten. Allerdings ist auch diese Version schon nicht mehr die aktuellste Version und befindet sich schon im End of Live Stadium. Daher solltest du dir vielleicht gleich die bei Beitragsaktualisierung aktuelle Version 8.2 installieren. Wenn du die Installation mit einer neueren Raspberry Pi OS Version machst, wird wahrscheinlich die Installation von PHP 8 genauso möglich sein, wie jetzt die der Version 7.4.

Solltest du trotzdem die Version 7.4 installieren wollen, weil dein Skript oder Programm noch keine höhere Version unterstützt, gibst du im Terminal folgenden Befehl ein.

Hier nochmal ein Hinweis: PHP 7.4 ist im End of Live Stadium, dies bedeutet ein erhöhtes Sicherheitsrisiko da die Version keine Sicherheits-Updates mehr erhält. Sollte dein Raspberry Pi nicht im öffentlichen Netz sein, ist dies bestimmt auch etwas verschmerzbares.

Um PHP 8.2 zu installieren, müssen wir ein Paket aus einem externen Repository unserem System hinzufügen.

Daher fügst du als erstes den GPG-Schlüssel des Repositorys mit folgenden Befehl hinzu.

Danach fügst du das externe Repository dem System mit folgenden Befehl hinzu.

Nun installierst du das Paket des externen Repository mit den “bekannten” Befehlen zur Systemaktualisierung.

Danach führst du nun die Installation von PHP 8.2 aus.

 

Weitere Informationen und die Dokumentation findest du auf der PHP Homepage.

 

Um zu sehen, ob die Installation geklappt hat oder um die aktuelle PHP Version, die auf deinem System installiert ist, abzurufen, gibst du im Terminal folgenden Befehl ein.

Oder du machst es über den Webserver mit der PHP Funktion phpinfo(), die dir gleich auch noch weitere Informationen zum System liefert.

Hierzu erstellst du dir eine php-Datei mit einem Texteditor im Verzeichnis deines Webservers für die Seitenausgaben, dies ist standardmäßig \var\www\html.

Der Befehl für die Erstellung der Datei phpinfo.php mit Nano lautet:

Der PHP-Code lautet:

Wenn du die Datei gespeichert hast und die Seite in deinem Webbrowser aufrufst, müsste der Webserver folgende Seite ausgeben. in meinem Foto sieht man auch die identische Meldung zur PHP Version über das Terminal.

 

 

SQL Datenbank installieren

Für meine Projekte auf dem Raspberry Pi habe ich mich für die SQL Datenbank SQLite3 entschieden, da SQLite ist eine leichtgewichtige und eigenständige Datenbank, die keine Installation oder Konfiguration erfordert. Im Vergleich zu MySQL oder dem bei Debian und somit Raspberry Pi OS im Repository vorhandenen und moderneren MariaDB, ist SQLite kein serverbasiertes Datenbankmanagementsystem und bietet daher einige Vorteile für bestimmte Anwendungsfälle. Somit ist SQLite schneller, einfacher und flexibler als MySQL, da es keine Netzwerkverbindung oder einen separaten Serverprozess benötigt. SQLite ist ideal für eingebettete Anwendungen, mobile Anwendungen, Prototyping oder kleine bis mittlere Projekte, die keine komplexen Datenbankfunktionen benötigen. Also eigentlich genau für Anwendung auf dem Raspberry Pi.

Hinweis: Um die erfassten Daten auch über das Internet zur Verfügung zu haben, schreibe ich in meinen Projekten meine Daten neben der auf dem Raspberry Pi vorhandenen SQLite Datenbank noch in eine auf meinem Webspace angelegte SQL-Datenbank. Somit muss ich mich weniger um die Absicherung der Zugriffe von Außen auf mein Heimnetzwerk kümmern.

 

Installation der SQLite Datenbank in Version 3

Die SQLite3 Datenbank installierst du mit folgendem Befehl.

Das entsprechende PHP Modul für die SQLite3 Datenbank installierst du unter Nennung der verwendeten PHP-Version mit folgenden Befehl.

oder

Weitere Informationen und die Dokumentation findest du auf der SQLite Homepage.

 

Installation des SQL Datenbankmanagementsystems

Unterschied zwischen MySQL und MariaDB

MySQL und MariaDB sind zwei auf der SQL-Sprache basierende Datenbankmanagementsysteme. Sie haben viele Gemeinsamkeiten, aber auch einige Unterschiede. MySQL wurde 1995 von der schwedischen Firma MySQL AB entwickelt und ist heute im Besitz von Oracle. MariaDB wurde 2009 von einigen der ursprünglichen Entwickler von MySQL als Abspaltung (fork) gestartet, um eine freie und offene Alternative zu MySQL zu bieten. Beide Systeme sind weit verbreitet und unterstützen viele Betriebssysteme, Programmiersprachen und Anwendungen. Im aktuellen Raspbian-Repository ist MySQL nicht mehr vorhanden, es steht nur noch MariaDB zur Verfügung.

Um den MariaDB Server zu installieren, verwendest du folgenden Befehl im Terminal.

Die Abfrage “Möchten Sie fortfahren? [J/n] bestätigst du mit J.

Nach der Server-Installation führen wir noch die Grundkonfiguration durch. Gib dazu im Terminal den folgenden Befehl ein:

Folgende Angaben werden im Setup abgefragt:

Konfigurationsabfrage empfohlene Eingabe
“Enter current password for root (enter for none)” eine Eingabe ist nicht notwendig, gehe weiter mit der <Enter bzw. Return bzw. Eingabe> – Taste
“Switch to unix_socket authentication [Y/n]” zur Nutzung des Authentifizierungs-Plugin gibst du Y ein
“Change the root password? [Y/n]” Vergabe des Passwortes des Benutzer “root”, zuerst gibst du Y ein, danach vergibst du das Passwort und bestätigst dieses durch Wiederholung.
“Remove anonymus users? [Y/n]” einen anonymen Benutzer benötigen wir nicht, daher gibst du n ein
“Disallow root login remotely? [Y/n]” der Benutzer “root” soll sich nur lokal anmelden können, daher gibst du hier Y ein
“Remove test database and access to it? [Y/n]” eine Testdatenbank wird nicht benötigt, daher kannst du sie auch mit Eingabe von Y entfernen
“Reload privilege tables now? [Y/n]” zum Abschluss müssen die Tabellen neu geladen werden, daher gibst du Y ein

 

Solltest du, warum auch immer, noch ein Raspbian (vorherige Bezeichnung des Raspberry Pi Betriebssystems) verwenden, kannst du mit den folgenden Befehlen aus dem ursprünglichen Beitrag die MySQL Datenbank installieren. Oder du musst dir  MySQL über ein Paket aus einem externen Repository zu deinem System hinzufügen.

Die Installierung von MySQL erfolgt mit folgenden Befehlen.

Bei der Verwendnung von PHP7 statt 5, führst du folgenden Befehl aus:

 

FTP Programm

Solltest du noch kein FTP Programm benutzen, so kann ich dir aus persönlicher Erfahrung das Programm FileZilla empfehlen.

Für die SFTP Verbindung zum Raspberry Pi benötigst du die IP-Adresse des RasPi in deinem Netzwerk, den Benutzernamen “pi”, das Passwort “raspberry”, wenn du es nicht geändert hast. Der Port für die Verbindung ist 22.

 


Transparenz-Hinweis:

Die auf dieser Seite verwendeten Produktlinks sind sogenannte Affiliate-Links zu einem Partnerprogramm. Für dich entstehen dadurch keine Mehrkosten, ich erhalte durch deinen Kauf über den Link eine kleine Provision.


Wolfgang Raab – Betreiber von webnist.de

Mein Name ist Wolfgang, ich beschäftige mich nun schon seit 1985 mit der EDV und im Besonderen mit der Software- und Webentwicklung.

Auf diesem Blog schreibe ich über Dinge, die mich begeistern, beschäftigen und ich der Meinung bin, es könnte für andere interessant und hilfreich sein.

Als großer Fan des Raspberry Pi finde ich es spannend, wie man den kleinen Computer in Verbindung mit dem IoT und Smart Home nutzen kann. Deshalb behandeln viele Beiträge auch genau dieses Thema.

Ich bin ein leidenschaftlicher Leser und Fotograf. Wenn ich nicht gerade in einem spannenden Roman versinke, bin ich oft unterwegs, um die Schönheit der Welt mit meiner Kamera einzufangen und zu teilen.

Weitere Infos und Fotos findest du auf einem der folgenden Plattformen.






Mehr erfahren?

Besuche die "About"-Seite meines Blogs und finde heraus, wie du mit mir in den Bereichen Web- und Mobile-Programmierung und Raspberry Pi zusammenarbeiten kannst. Hier beginnt deine digitale Reise.


Unterstützen

Dieser Beitrag hat dir gefallen und konnte dir bei deinem Projekt oder Problem behilflich sein? Dann würde ich mich sehr freuen, wenn du dich mit einer noch so kleinen Spende erkenntlich zeigen möchtest.




  • Gawlik, Jürgen schrieb am 2. Juli 2018:

    Hallo Wolfgang,

    ich habe begonnen, aber

    Um mit apt-get die Paketquelle verwenden zu können, müssen wir als nächstes die notwendigen Zertifikate hinzufügen. Führe hierzu folgende zwei Befehle aus:
    sudo gpg –keyserver pgpkeys.mit.edu –recv-key CCD91D6111A06851

    sudo gpg –keyserver pgpkeys.mit.edu –recv-key CCD91D6111A06851

    hat nicht funktioniert.

    Meldung:
    KEY CCD9106111A06861 not found on keyserver
    gpg: Keine gültige OpenPGP-Daten gefunden

    • Wolfgang schrieb am 2. Juli 2018:

      Hallo Jürgen,
      der Artikel ist leider nicht mehr auf dem aktuellsten Stand. Eine Überarbeitung steht auf meiner ToDo-Liste. Anmerken möchte ich, für die Schrittmotorsteuerung benötigst du kein PHP. Wenn du es trotzdem neben oder anstatt der Version 5 installieren willst, kannst du dies nun direkt mit “sudo apt-get install php7.0”.
      Viele Grüße
      Wolfgang

  • Waldemar schrieb am 30. Januar 2018:

    Hallo Wolfgang,

    ich finde, Deine Videos sind nicht schlecht, nur kann ich es nicht verstehen, warum Du das, was Du zeigen und erklären willst, nicht “heran zoomst”, damit man es mitverfolgen kann. Es ist ja schön, wenn man Deinen Desktop-Hintergund sieht, aber für den Beitrag nicht relevant. Und das, was interessant ist, ist für mich jedenfalls viel zu klein, um es noch augenschonend mitlesen zu können.

    Gruß
    Waldemar

    • Wolfgang schrieb am 30. Januar 2018:

      Hallo Waldemar,
      vielen Dank für Deinen Kommentar.
      Die ersten Videos habe ich noch mit den Boardmitteln von MacOS, dem QuickTime Player erstellt. Eine Zoom-Funktion stand mir nicht zur Verfügung. Da es sich um die ersten “Versuche” handelte, sind diese leider noch ohne Bearbeitung und daher auch nicht besser geworden.
      Viele Grüße
      Wolfgang

  • Jürgen schrieb am 30. September 2015:

    Hallo Wolfgang,
    ich finde deine Tuts sehr gut. Es wäre allerdings noch besser, wenn man deine Eingaben auch visuell verfolgen könnte.. Im Video über die Apache- Einrichtung finden deine Eingaben auf einem briefmarkengroßem Terminalfenster statt. Vielleicht kannst du das noch besser hinkriegen.
    Viele Grüße
    Jürgen

    • Wolfgang Raab schrieb am 30. September 2015:

      Hallo Jürgen,
      vielen Dank für Deinen Kommentar und den Hinweis. Werde bei Gelegenheit versuchen das Video entsprechend zu bearbeiten.
      Viele Grüße
      Wolfgang

      • Alfred schrieb am 30. September 2015:

        Servus Wolfgang,
        das wäre eine tolle Sache. Mit welchem Programm erstellst Du die Videos?
        Liebe Grüße
        Alfred

        • Wolfgang Raab schrieb am 30. September 2015:

          Hallo Alfred,
          auch Dir ein Dankeschön für Deinen Kommentar. Die ersten Bildschirmvideos habe ich noch mit dem Programm Quicktime aufgenommen. Dies ist allerdings nur unter OS möglich, nicht mit der Windows Version. Für die neueren Videos verwende ich das Programm Camtasia für Mac.
          Viele Grüße
          Wolfgang

          • Anonym schrieb am 3. Januar 2016:

            Hallo Wolfgang,
            kann mich meinen Vorredner nur asnchließen sehr gute Anleitung
            aber leider bisschen zu klein.

            Die Installierung von MySQL erfolgt mit folgenden Befehlen.
            1.sudo apt-get install mysql-server mysql-client
            2.sudo apt-get php5-mysql

            hier bei Punkt 2.fehlt noch ein install 🙂 weiter so .

          • Wolfgang Raab schrieb am 3. Januar 2016:

            Hallo,
            vielen Dank für Deinen Kommentar. Das mit der Videogröße bekomme ich ohne komplette Neuaufnahme leider nicht besser hin. Den “install” Befehl habe ich an der entsprechenden Stelle eingefügt. Viele Grüße
            Wolfgang

          • Wolfgang Raab schrieb am 10. Oktober 2015:

            Heute habe ich es geschafft und das überarbeitete Video auf YouTube hochgeladen.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Notwendige Felder sind mit * markiert.

 

Kleiner Hinweis, alle Kommentare werden moderiert.

Dies bedeutet, der Kommentar wird vor der Veröffentlichung durchgelesen und von mir geprüft. Auch behalte ich mir vor, jeden Kommentar zu löschen, der nicht direkt auf das Thema abzielt oder nur den Zweck hat, Leser oder Autoren herabzuwürdigen.

Entdecke die Welt von Webnist.de

Erfahre mehr über die Hintergründe meines Blogs und wie ich dich bei deinen digitalen Projekten unterstützen kann.

Aktuelles Video auf YouTube

Beschreibung der Verwendung eines TTP223B Touch Sensors am GPIO Port des Raspberry Pi mit Python.