Installation eines Apache-Webservers mit php und mysql sowie MariaDB

Wer eine eigene Website betreiben möchte, kann sie bei einem webhoster im Internet wie z.B. bei Strato, Ionos etc. betreiben, welche einen Webserver mit allen nötigen Datenbanken und Datenbanksprachen anbieten. Meist ist für den ersten Webauftritt ein Homepage-Baukasten oder ein umfangreiches CMS-Homepageprogramm für dynamische Webseiten (Wordpress, Typo3 oder Yoomla...) im Angebot. Zusätzlich wird auch noch ein Angebot für einen Domainnamen und der Schutz der Webseite gegen Webangriffe und Datensicherung angeboten.
Dies alles hat aber seinen Preis!

Für technisch Interessierte bietet sich auch eine Eigenlösung auf einem Kleinstrechner, wie dem Raspberry Pi, zu Hause an. Bei meist nur 5 W im laufenden Betrieb, entstehen kaum Stromkosten!
Dafür muss man auf dem PI selbst einen eigenen Webserver sowie die nötigen Datenbanken (Maria DB mit mySQL) und php installieren. Zusätzlich ist man für die Datensicherheit des Servers sowie das Backup selbst verantwortlich. Es erspart aber deutliche Kosten gegenüber einem fremden Hosting und man hat die volle Datenhohheit!

Es gibt nun zwei Wege für die Installation eines eigenen Webservers auf dem RaspberryPI mit Apache2:

Webserverstatistik von W3Techs

Abb. aus https://w3techs.com/technologies/overview/web_server vom 2.7.2024

Weg 1)

Wer auf dem PI als Betriebssystem DietPi installiert hat, spart sich viel Installationsarbeit, da es schon ein fertig konfiguriertes Programmpaket gibt.
a) Per ssh-Client wie Putty oder Bitvise-SSH-Client auf dem Pi in die Konsole einwählen.
b) Die Softwareinstallationsseite aufrufen mit: dietpi-software

dietpi-Software-Startseite

c) Den vorinstallierten SSH-Server Dropbear anwählen und stattdessen Open-SSH Server auswählen.

Open-SSH-Server

d) Auf Install  - Go Start installation for selected software   klicken -> ok
    Jetzt wird Dropbear deinstalliert und OpenSSH installiert.
e) Nach Installation des Open-SSH-Servers  im obigenSoftwaremenü: Browse Software ok
Nr 76 LAMP
auswählen -> Confirm

LAMP-Softwareauswahl

g) Install Go Start installation selected software -> ok
h) Evtl. muss noch lighttpd deinstalliert werden - > auf Fehlerhinweis achten! Nun startet die Installation von Apache2, php8.2, MariaDB und MySQL.
i) Mit folgenden Befehlen kann man in der SSH-Konsole prüfen, ob alle installierten Programme laufen:

systemctl status apache2  -> zeigt, ob Apache läuft (activ running)
systemctl status mariadb  -> zeigt, ob MariaDB läuft (activ running)
mysql             -> hinter MariaDB-Prompt: [(none)>        SHOW GLOBAL STATUS LIKE 'UPTIME';          
Zeigt die Laufzeit der installierten Maria-Datenbank; quit beendet die Abfrage!
php -v     ->  zeigt die installierte php-Version an!

Weg 2) alternativ auch per SSH auf der Kommandozeile des Pi:

Nützliche Tipps zur Installation findet Ihr in diesem Video von Eric Maechler: https://www.youtube.com/watch?v=e7bE2XHEhRQ
Um die Tipparbeit in der Konsole zu ersparen, hier das dazu nötige Transscript zum obigen Video:

https://www.chefblogger.me/2021/02/02/raspberry-pi-wie-installiere-ich-einen-webserver-mit-php-und-einer-datenbank/

sudo atp update bzw. full-upgrade
reboot -> s
tartet den PI mit voll aktuellem System

sudo apt install apache2 -y             ->
installiert Apache2 Webserver
systemctl status apache2   ->
zeigt, dass der Apache2 läuft (active running)
ifconfig      oder: hostname -I             ->
ermittelt alle Adapter u.a. die IPv4 des PI z.B. 192.168.178.41
Im Browser die IP z.B. 192.168.178.41 eingeben - > zeigt: "Apache2 Debian Default Page  ->it works!"
Da der Ordner www/html root gehört, kann man in dieses Verzeichnis nicht ohne Rootrechte Dateien kopieren.

sudo mv /home/admin/internetseite/index.html /var/www/html
Dieser Befehl kopiert die selbst erstellte Webseite vom eigenen Ordner in den www-uploadordner /www/html
Achtung: Richtigen Pfad zur eigenen Homepage auswählen!
Bei mir liegt die Webzielordner im Ordner /www/ und nicht /www/html !
Da der Ordner /www/html root gehört, kann man in dieses Verzeichnis nicht ohne Rootrechte Dateien kopieren.

cd /var/www/html
sudo chown pi: index.html
(hostname pi kann bei dir anders benannt sein!)
Hiermit wurden die Besitzrechte von root auf den Nutzer pi übertragen!
Bis jetzt können nur statische reine HTML-Seiten mit CSS angezeigt werden, für dynamische CMS-Seiten benötigt man php und Datenbanken!
sudo apt install php -y
Erzeugt mit dem Nano-Editor eine kleine php-Seite zum Testen:
sudo nano index.php
Schreibt folgenden Code für eine Ausgabe aller php-Informationen in den Nano-Editor:
   <?php
   phpinfo();
   ?>
Speichert dann die Datei ab und öffnet sie durch Eingabe von 192.168.178.41/index.php (eure eigene IP verwenden).
sudo apt install mariadb-server php-mysql -y
sudo service apache2 restart ->
startet den Apache mit der Datenbank MariaDB und den mySQL-Server neu!
Im Browser kann man mit https://192.168.178.41 (hier deine eigene, interne IP des PIs eingeben!) die Webseite anzeigen lassen.
Jetzt läuft die Webseite auf dem eigenen Webserver, sichtbar jedoch nur im eigenen Netzwerk, nicht von außen!

zurück zur Startseite