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.
Bisher die beste Anleitung die ich im Netz gefunden habe. Andere waren entweder falsch oder zu alt. Vielen Dank
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.
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
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!
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
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.
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 🙂
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
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
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…
DANKE Luzianm für dieses feedback – denn nur so weiss ich ob die anleitung noch funktioniert oder veraltet ist und ein update braucht 🙂
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.
Es hat sofort perfekt geklappt! Tolles Video – beide Daumen hoch.
danke schön und viel spass mit deinem webserver auf dem raspi
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
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
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
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
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é
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
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
danke für dein kommentar und feedback. so weiss ich nämlich dass diese anleitung immer noch funktioniert.
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.
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 😛
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
ja wäre toll wenn es auch eine Anleitung für Bookworm und php 8.2 gibt danke
lg Hubert
probier mal dies.
https://linux.how2shout.com/how-to-install-apache-php-and-mysql-on-debian-12-or-11/
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.
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
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.
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
Grüss Dich,
erstmal Danke für den aufwand!
Leider hat dies nicht funktioniert, die Fehlermeldung bleibt bestehen.
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
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. 🙂
ja cloudflare ist cool – ich bin zwar eher der docker fan aber egal – beide containersysteme sind cool. viel erfolg
Hallo Eric-Oliver,
eine echt tolle Anleitung, funktioniert auch 2024 noch super.
Hoi Günter – danke für dein Feedback – sowas höre ich gerne.
Hallo Eric-Oliver,
auch ich möchte hier meinen “Senf” dazu geben:-)
Ich kann nur alle Vorredner bestätigen. Das ist die beste Anleitung, die ich je ausprobiert habe.
Vielen, vielen Dank dafür.
Frank
Hallo Frank – danke für dein Feedback und glaub mir so ein Senf hör ich immer sehr gerne 🙂 Viel Spass mit deinem Server
Hallo, danke für die Anleitung. Hier noch als Anmerkung: Die neueren OS Versionen verzichten auf den user pi. Fall man eine andere userid erstellt, muss man bei dem Befehl:
“sudo chown -R pi:www-data /var/www/html/” den user pi auch durch diese ersetzen.
lg Gunther
hallo zummen,
ich möchte vom rasperry pi 5 pi/home/
CumulusMX/ den ganzen Orner web nach web nach var/html/joomla/web kobieren und das alle 3 minuten (cronjop). wie kann ich das machen ???
Guten Tag zusammen,
Habe das CumulusMX kopier Problem jetzt mit SFTP intern (Debian) Uebertragung gelöst. 🙂
Und jetzt geht es.
http://mein-wetter.org/joomla/cumulus/index.htm
cool – warum nicht mit bash und nem cronjob?
gute Antwort. da bin ich nicht durch. aber funktioniert ja so.