Raspberry PI – Wie installiere ich einen Webserver mit PHP und einer Datenbank

von | Feb 2, 2021 | Allgemein | 37 Kommentare

Schlagwörter: Raspberry Pi

Im heutigen Video habe ich mal wieder eine Raspberry Pi Anleitung für euch und zwar zeige ich euch, wie man einen eigenen Webserver auf dem Raspberry Pi installieren kann. Und wenn der Webserver läuft, zeige ich euch wie man PHP installiert und eine Datenbank (inkls phpMyAdmin).

Sobald alles fertig ist, könnt ihr eigene Webseiten hosten – wie auch ganze CMS etc.

Ihr werdet in diesem Video sehen, dass es eigentlich gar nicht so schwer ist, einen Webserver aufzusetzen und mit PHP und einer Datenbank (MariaDB) zu erweitern.

Video

Anleitung

Zuerst müsst ihr euer Raspberry PI installieren und aktualisieren – ihr wisst ja wie das geht, denn ich habe es euch schon in einem Video gezeigt.

Apache installieren

1
sudo apt install apache2 -y

Nun solltet ihr checken ob eure Test index.html Seite läuft.

1
cd /var/www/html

Wenn ihr in den HTML Ordner geht dann mit ls die Umgebung aufruft, dann solltet ihr die index.html Datei sehen. Nun öffnet die index.html Seite im Browser und wenn sie lädt, dann ist Apache erfolgreich installiert worden.

PHP installieren

Nun müsst ihr PHP installieren und zwar gebt ihr folgenden Befehl ein

1
sudo apt install php -y

Jetzt löscht ihr die index.html Seite im HTML Ordner und macht eine Test-PHP Seite zb

1
<?php echo "hello world"; ?>

Bevor ihr checkt ob die neue index.php Datei funktioniert, müsst ihr den Raspberry PI kurz neu starten

1
sudo service apache2 restart

Nun testet ob eurer PHP File funktioniert und im Browser geöffnet werden kann.

Datenbank / MariaDB installieren

Jetzt gebt ihr den folgenden Befehl ein und dann wird Mariadb installiert.

1
sudo apt install mariadb-server php-mysql -y

Jetzt musst du den Apache Webserver neu starten.

1
sudo service apache2 restart

Sichert eure Installation ab mit

1
sudo mysql_secure_installation

Du wirst jetzt nach ein paar Dinge gefragt, die sind vermutlich auf Englisch – am Besten mir einfach folgen mit den Ylons 🙂

Als nächstes werdet ihr nach dem Passwort für root gefragt, gibt Enter ein
Tipe Y ein und setze das root Passwort fest.
Tipe Y wenn du gefragt wirst, ob du den anonymen User entfernen möchtest.
Tipe Y wenn du den Remote Zugriff verbieten möchtest
Entferne die Test Datenbank und gib dafür wieder Y ein
Und Lade alle privilege Tables neu

Nun erstellt man einen neuen Root User für die Datenbank

1
 sudo mysql --user=root --password
1
create user admin@localhost identified by 'DEINPASSWORT_HIER_EINGEBEN';
1
grant all privileges on *.* to admin@localhost;
1
FLUSH PRIVILEGES;
1
exit;

Nun wäre die Datenbank bereits installiert. Aber ich bin ja ein bequemer Mensch darum brauch ich als nächstes das Tool phpMyAdmin womit ich die Datenbank besser lesen kann.

phpMyAdmin installieren

1
sudo apt install phpmyadmin -y

Als nächstes wirst du in einem neuen Fenster gefragt, welchen Webserver du installiert hast, gib Apache ein.

Danach wirst du gefragt ob du die phpmyadmin konfigurieren möchtest, gib OK ein

Nun wirst du nach der Konfiguration von dbconfig-common gefragt – gibt Yes ein

Als nächstes wirst du nach dem Passwort gefragt – gib es ein.

Nun musst du das Modul mysqli laden

1
sudo phpenmod mysqli

Danach musst du wieder Apache neu starten

1
sudo service apache2 restart

Nun musst du phpMyAdmin in den HTML Ordner zügeln das macht man mit diesem Befehl

1
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Wenn du nun im HTML Ordner

1
ls

eingibst, solltest du den phpmyadmin Ordner sehen.

Wenn alles geklappt hat, kannst du nun phpMyAdmin aufrufen und zwar unter http://DEINE_IP_ADRESSE/phpmyadmin

Rechte anpassen

Damit man von aussen weniger Unsinn anstellen kann, solltest du den entsprechenden HTML und Subordner noch die richtigen Rechte zu weisen. Das wäre chmod 770 oder in Terminalbefehlscode:

1
ls -lh /var/www/
1
sudo chown -R pi:www-data /var/www/html/
1
sudo chmod -R 770 /var/www/html/
1
ls -lh /var/www/

Webserver fertig installiert

So nun ist es soweit, der Apache läuft nun mit PHP und einer MariaDB.

Server starten/restarten oder stoppen

Server Neustarten

1
$ sudo service apache2 restart

Server Stoppen

1
$ sudo service apache2 stop

Server starten

1
$ sudo service apache2 start

Fazit

Ihr habt gesehen, es war eigentlich gar nicht so schwer wie es am Anfang geklungen hat. Wenn man die entsprechenden Befehle abtippen kann oder auswendig weiss, dann ist es nicht schwer einen Webserver auf dem Raspberry Pi zu installieren. Als nächstes könnt ihr im HTML Ordner auch CMS installieren etc. Ihr wisst ja jetzt wie das geht.

37 Kommentare

  1. Oliver

    Bisher die beste Anleitung die ich im Netz gefunden habe. Andere waren entweder falsch oder zu alt. Vielen Dank

    Antworten
  2. Ulf

    Ein tolles Video sehr verständlich und aktuell erklärt. Viele Anleitungen sind veraltet, aber deine hat bei mir geklappt. DANKE, Daumen hoch.
    Mach weiter so.

    Antworten
    • Eric-Oliver Mächler

      danke für dein feedback – ich versuche regelmässig meine alten videos zu checken ob meine angaben noch stimmen und wenn nicht, dann werde ich sie neu drehen 🙂 darum ist es immer wertvoll wenn ich höre, dass noch alles klappt
      danke schön

      Antworten
  3. Rudolf Herwig

    Danke Eric-Oliver, das ist die beste Anleitung, die ich je im Web zum Thema gefunden habe. Die meisten davon sind veraltet und/oder funktionieren einfach nicht richtig. Deine ist sehr verständlich und mein Raspi freut sich. Jetzt mache ich den gleichen Luftsprung wie Du am Foto!

    Antworten
    • Eric-Oliver Mächler

      danke rudolf – ja es ist halt eine harte arbeit so anleitungen zu erstellen und nachher auch zu pflegen. ich muss alle 1-2 jahre checken ob ne anleitung noch funktioniert und dann evtl sogar alles neu machen – so mit fb und insta anleitungen schon passiert. hoffe das raspi anleitungen nicht so oft ändern müssen 🙂 aber man weiss nie. nochmal danke für deine netten worte und bis zum nächstne mal auf blog oder youtube

      Antworten
  4. Patrick

    Wirklich Top die Anleitung, habe die Anleitung gerade mit der neusten Raspberry Pi OS Installation durchgespielt und es hat alles perfekt funktioniert. Viele Dank und Beste Grüsse.

    Antworten
    • Eric-Oliver Mächler

      Hoi Patrick, danke für dein Kommentar. Ich versuche alle meine Anleitungen immer Up-To-Date zu halten aber das ist fast unmöglich, darum ist so ein feedback wie von dir sehr wertvoll. so weiss ich das ich da nichts testen muss und das es immer noch läuft 🙂

      Antworten
  5. Lutz

    Hallo Eric-Oliver, zunächst erstmal großes Lob und Dankeschön für die detaillierte Beschreibung. Hat alles super gepaßt, bisher.
    ich selber bin mittlerweile „Ü60“ und hatte mein Lebtag noch nie mit Linux zutun, aber nun plane ich ein bauprojekt wo dies halt gebraucht wird. also nicht lachen, aber ich hab ein Problem bei der Handhabung.
    folgenderSachverhalt. ich habe einen Ordner bekommen, Inhalt eine mysql datei und eine datei für den www-ordner. da ich aber mit der Befehlsstruktur über das Terminal noch etwas auf Kriegsfuss steh, wollte ich die datei mysql in die datenbank importieren und die datei für den www ordner über den dateimanager kopieren und einfügen. bei beiden vorhaben gibt es fehlermeldung „fehlende Rechte“, was mache ich da falsch?

    wäre toll, wenn du mir kurz helfen könntest.

    liebe Grüße Lutz aus Sachsen

    Antworten
  6. Istvan Toth

    Das ist wirklich ein sehr gute schritt für schritt Anleitung.
    Ich habe alles genau so gemacht aber bekomme Fehlercode nach der Installation. Konnte es sein, das der Anleitung veraltet schon?
    Ich bin blutiger Anfänger und habe ein erledigende Aufgabe:
    Der GPIO 21 sollte von ein Webserver schaltet werden. Hast du vielleicht Lust und Zeit mir da helfen? 🙂 Ich finde in der Google nicht der richtige Anleitung dazu.
    LG. Stipu

    Antworten
  7. luzianm

    Endlich mal eine Anleitung, die von vorne bis hinten ohne Probleme funktioniert hat. Keine Unstimmigkeiten wie bei vielen anderen Anleitungen im Netz, die wahrscheinlich schon veraltet und überholt sind. Vielen Dank dafür!!!

    Der Web-Server läuft hier bei mir auf einem Raspberry Pi 3B und RaspiOS (BullsEye) 64 Bit…

    Antworten
    • Eric-Oliver Mächler

      DANKE Luzianm für dieses feedback – denn nur so weiss ich ob die anleitung noch funktioniert oder veraltet ist und ein update braucht 🙂

      Antworten
  8. Thomas

    Vielen Dank für die supergute Anleitung. Grundsätzlich hat alles gut funktioniert. Ich hätte bitte noch folgende Frage zu dem Thema. Verwende den Raspberry Pi4. Hab heute das Betriebssystem auf 64bit angepasst. Ging ganz gut. Beim Sichern mit wp-staging bekomme ich nun die Meldung dass mein PHP noch die 32bit Version hat und ich auf 64bit anpassen soll, damit ich die volle Dateigröße als Backup herunterladen kann. Kannst du mir da bitte weiter helfen. Ich finde diesbezüglich im Netz nichts. Wie bzw. mit was für Befehlen bekomme ich auf einem bestehenden System PHP 64 bit rauf. Danke.

    Antworten
  9. Heinz

    Es hat sofort perfekt geklappt! Tolles Video – beide Daumen hoch.

    Antworten
    • Eric-Oliver Mächler

      danke schön und viel spass mit deinem webserver auf dem raspi

      Antworten
  10. Otto

    Gute Arbeit , ERIC-Oliver.
    Habe schon viele Anleitungen ausprobiert, aber, wie schon zu lesen ist, alle zu alt oder fehlerhaft.
    Jetzt muss ich nur noch nextcloud installieren und mit mysql verknüpfen.
    Vielen Dank

    Antworten
    • Eric-Oliver Mächler

      ja das ist leider so – und darum sind genau solche kommentare wie deiner hier sehr wertvoll – denn so weiss ich dass alles noch funktioniert und nicht veraltet ist – danke dafür

      Antworten
  11. René & Zellweger

    Guten Abend zusammen,
    ganz gute Anleitung hier. Vielen herzlich Dank.
    Wie lagere ich die Datenbank von der SD Karte auf die meine extr. HD aus
    damit sie dann nicht platz kaputt geht.
    mfg vom Renè und Zellweger

    Antworten
    • Eric-Oliver Mächler

      hoi, freut mich zu hören – hier mal ne kurze allgemeine anleitung zu der frage

      zuerst backup deiner db machen – für notfälle

      dann musst du die datenbank stoppen
      sudo service mariadb stop

      danach kannst du die db kopieren – die befindet sich ja meistens irgendwo bei /var/lib/mysql
      sudo cp -R /var/lib/mysql/* /pfad/zu/deinem/usb-stick/

      jetzt musst du die konfig datei anpassen die sich irgendwo unter /etc/mysql/mariadb.conf.d/ befindet
      such nach datadir und ändere da den pfad zur externen datei

      danach db starten
      sudo service mariadb start

      je nach raspberry pi version und OS kann die pfade sich leicht ändern – aber die richtung sollte stimmen

      Antworten
  12. rene&zellweger

    Halllo Eric,
    Danke für die Anwort. Habs so gemacht wie beschrieben. bei mir kommt die Fehlermeldung

    http://192.168.1.xx/phpmyadmin Fehlermeldung 404 not found.
    Ich kann auch nichts auf var/www/html schreiben oder löschen es ist belegt.

    pi@Raspberry:~ $ cd /var/www/html
    pi@Raspberry:/var/www/html $ sudo apt install php -y
    Paketlisten werden gelesen… Fertig
    Abhängigkeitsbaum wird aufgebaut… Fertig
    Statusinformationen werden eingelesen… Fertig
    php ist schon die neueste Version (2:7.4+76).
    Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
    drbl duplicity gir1.2-evince-3.0 gir1.2-nautilus-3.0 gnome-sushi ipcalc
    libb2-1 libbotan-2-17 libcue2 libevdocument3-4 libevview3-3 libexempi8
    libgsf-1-114 libgsf-1-common libiptcdata0 libmusicbrainz5-2
    libmusicbrainz5cc2v5 libosinfo-1.0-0 libphobos2-ldc-shared94
    libquvi-0.9-0.9.3 libquvi-scripts-0.9 librsync2 libtotem-plparser-common
    libtotem-plparser18 libtracker-control-2.0-0 libtracker-miner-2.0-0
    libtracker-sparql-2.0-0 libtspi1 lua-expat lua-json lua-lpeg lua-socket
    nautilus nautilus-data osinfo-db partclone python3-bcrypt python3-fasteners
    python3-future python3-invoke python3-lockfile python3-monotonic
    python3-nacl python3-paramiko raspinfo syslinux-common tdb-tools tracker
    tracker-extract tracker-miner-fs wakeonlan
    Verwenden Sie »sudo apt autoremove«, um sie zu entfernen.
    0 aktualisiert, 0 neu installiert, 0 zu entfernen und 1 nicht aktualisiert.
    pi@Raspberry:/var/www/html $
    bash: Syntaxfehler beim unerwarteten Symbol »newline«
    pi@Raspberry:/var/www/html $

    Da komme ich nicht mehr weiter
    der rest der geht nachher.
    Lg und Dank vom René

    Antworten
    • Eric-Oliver Mächler

      klar funktioniert phpmyadmin nicht mehr – die db ist ja jetz twoanders.

      jetzt musst du die phpmyadmin konfig updaten.

      zuerst mach ne sicherheitskopie von config.inc.php irgendwo in /phpyadmin/ ordner

      danach öffne sie und check ob host, port, socket, user, pw usw korrekt sind.

      wen gemacht dann kannste apache restarten und bete das es funzt

      sudo service apache2 restart

      Antworten
  13. Daniel

    Vielen Dank für die Anleitung! Hat alles auf Anhieb funktioniert und es wird alles gut erklärt. Wirklich sehr empfehlenswert. Liebe Grüße Daniel

    Antworten
    • Eric-Oliver Mächler

      danke für dein kommentar und feedback. so weiss ich nämlich dass diese anleitung immer noch funktioniert.

      Antworten
  14. Zellweger & René

    Hallo zusammen,
    Bei mir läuft nun Joomla 4.3.4 auf dem Raspberry Pi 4 auf Debian-12 KDE-Plasma nun endlich nach langem.
    Ich abe für Joomla 12 eine gute Anleitung gefunden die super geht.
    auf https://192.168.1.122 läuft sie nun (nicht immer eingeschaltet.

    https://cloudinfrastructureservices.co.uk/install-joomla-server-on-debian-11/
    sogar mit php 8.2 php -v Befehl PHP Version.
    So macht es Spass. Danke nochmals Eric-Oliver Mächler für seine super Dokumentation.

    Antworten
    • Eric-Oliver Mächler

      freut mich das es geklappt hat – btw die 192 ip die du hier angegeben hast, bei der sehen wir nichts 😛 das ist die interne ip von deinem netzwerk und nicht eine öffentliche ip 😛

      Antworten
  15. zellweger René

    Hallo Eric-Oliver,

    Wie installiere ich deine anleitung mit debian und php 8.2
    Bookworm unterstützt keine vncViever mehr. :-(( habe alles instlliert nund muss ich den server auf Debian 11 neu machen.
    wenn alles dann läuft dann unter rezel.gotdns.ch
    Besten Dank und Gruss aus Buchs SG
    vom René Zellweger

    Antworten
  16. Hubert

    ja wäre toll wenn es auch eine Anleitung für Bookworm und php 8.2 gibt danke

    lg Hubert

    Antworten
  17. Christian

    Hallo,
    erstmal vielen Dank für die tolle und verständliche Anleitung, hat alles ohne Probleme funktioniert.

    Ich habe jetzt noch eine frage, kann ich im nachgang auch noch php7.4 installieren, da ich eine etwas ältere Software noch habe die ich nicht updaten kann, daher auch der gedanke es nur auf meinem Raspberry Pi laufen zu lassen.

    Antworten
    • Eric-Oliver Mächler

      hallo christian, danke für dein feedback. schn zu hren dass die anleitung immer noch funktioniert.

      eine weitere php version zu installieren ist relativ einfach – einfach mit „sudo apt install php7.4“ installieren.
      nun musst du dann nur noch zwischen den php versionen wechseln mit zb
      „sudo update-alternatives –set php /usr/bin/php7.4“ aber hier bin ich mir nicht sicher obs klappt oder nicht – habe zZ kein freies raspi zur hand.
      darum musst du es hier einfach wohl ausprobieren.

      mit „php -v“ kannst du übrigens checken ob die installation geklappt hat und welche version gerade läuft

      Antworten
      • Christian

        Ja das habe ich auch schon versucht gehabt, bekomme aber immer diese Meldung!


        Paketlisten werden gelesen… Fertig
        Abhängigkeitsbaum wird aufgebaut… Fertig
        Statusinformationen werden eingelesen… Fertig
        Paket php7.4 ist nicht verfügbar, wird aber von einem anderen Paket
        referenziert. Das kann heißen, dass das Paket fehlt, dass es abgelöst
        wurde oder nur aus einer anderen Quelle verfügbar ist.

        E: Für Paket »php7.4« existiert kein Installationskandidat.

        Habe auch schon versucht was zu finden und habe auch schon viel versucht aber nichts hat bisher funktioniert.
        Vielleicht hast Du noch eine Idee wie ich die php7.4 auf das Raspberry Pi bekomme den Sie schein zu fehlen.

        Antworten
        • Eric-Oliver Mächler

          ja das habe ich vermutet – php7.4 wird ja seit mehrere jahren nicht mehr unterstützt und wrude wohl überall „gelöscht“

          das hier wäre der letzte weg den ich noch wüsste, um irgendwie an php ranzukommen. wenn das nicht klappt müsste ich auch nen experten fragen der mehr weiss als ich
          installiert paket damit man zusätzliches zeug installieren kann
          sudo apt -y install software-properties-common

          zugriff auf „alle“ php versionen
          sudo add-apt-repository ppa:ondrej/php

          sudo apt-get update

          install php4.7
          sudo apt -y install php7.4

          check php version
          php -v

          Antworten
          • Christian

            Grüss Dich,
            erstmal Danke für den aufwand!
            Leider hat dies nicht funktioniert, die Fehlermeldung bleibt bestehen.

          • Christian

            Hallo, ich habe es jetzt irgendwie hin bekommen jetzt ist es aber so das wenn ich php 7.4 installieren will sagt er mir das php7.4 schon die aktuellste version ist ich habe aber auch keine anderen mehr drauf.
            Bei der ausgabe von php -v gi t er mir aber php 8.3.2… aus.
            Was könnte ich noch machen um es auf php7.4 um zu stellen??
            Danke

  18. Zellweger René

    Bei mir geht jetzt auf Raspberry Pi 5 der Webserver mit Apache mit Joomla 5.1 extern unter
    http://www.mein-wetter-org mit Cloudflare.
    Super Sache.
    Meteotemplate geht auch mit CumulusMX aber zur Zeit nur Intern. 🙂

    Antworten
    • Eric-Oliver Mächler

      ja cloudflare ist cool – ich bin zwar eher der docker fan aber egal – beide containersysteme sind cool. viel erfolg

      Antworten
  19. Günter

    Hallo Eric-Oliver,
    eine echt tolle Anleitung, funktioniert auch 2024 noch super.

    Antworten
    • Eric-Oliver Mächler

      Hoi Günter – danke für dein Feedback – sowas höre ich gerne.

      Antworten

Einen Kommentar abschicken

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