Im vorangehenden Beitrag haben wir gezeigt, wie man das Betriebssystem Fedora-Server in einer Virtuellen Maschine (VM) installiert und einrichtet. Nun folgt das Setup der Serversoftware Apache, der Datenbank MariaDB und der Skriptsprache PHP.
Für unser Beispiel verwenden wir eine VM in Parallels-Desktop auf einem Mac. Die einzelnen Befehle für die Installation können entweder direkt in der Textkonsole des Servers (der VM), dem Terminal in Cockpit oder im Mac-Terminal (nach Anmeldung auf dem Server per SSH) aufgerufen werden.
Apache Webserver installieren und einrichten
Der erste Baustein unseres LAMP-Stacks ist der Apache Webserver. Er sorgt dafür, dass Webseiten ausgeliefert werden, wenn ein Client (z. B. ein Browser) eine Anfrage stellt.
1. Installation
Die Installation erfolgt über den Fedora-Paketmanager dnf:
sudo dnf install httpdDamit wird Apache heruntergeladen und installiert.

2. Dienst starten und aktivieren
Nach der Installation muss Apache gestartet und so konfiguriert werden, dass er beim Systemstart automatisch läuft:
sudo systemctl start httpd
sudo systemctl enable httpd💡 Hinweis: In der Fedora-Dokumentation wird oft die lange Form httpd.service verwendet. Mit systemctl ist es aber nicht nötig, .service explizit anzugeben.
Beispiele:
sudo systemctl start httpdund
sudo systemctl start httpd.servicemachen genau dasselbe.
3. Firewall anpassen
Damit Apache von außen (hier also vom Mac aus) erreichbar ist, müssen die entsprechenden Ports in der Firewall freigeschaltet werden:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

4. Funktion prüfen
Jetzt öffnen Sie im Browser die IP-Adresse der VM. Wenn alles funktioniert, erscheint die Standardseite von Apache:
https://<VM-IP>

Die IP-Adresse der VM finden Sie in der Konsole des Servers oder in einem Terminal nach der Anmeldung am Server per SSH z. B. mit dem Befehl:
ip addr
# oder
hostname -Ioder über Cockpit im Bereich Netzwerk.


Hinweis: Im Cockpit-Webterminal kann es vorkommen, dass einige Befehle, z.B. ip addr oder hostname -I keine Ausgabe liefern. Das ist kein Fehler – es liegt an der Terminal-Emulation im Browser. Ebenso lässt sich aus dem Cockpit heraus der Editor Nano nicht aufrufen.
Hinweise zum Browser:
| Browser | Verhalten |
|---|---|
| Safari | öffnet die Seite nur mit vorangestelltem https, nach Warnung |
| Chrome | öffnet die Seite gar nicht |
| Firefox | benötigt die Angabe der Port-Nummer :80 nach der IP-Adresse und der HTTPS-Modus darf nicht aktiviert sein, oder Sie müssen eine Ausnahme definieren. |
Ob Apache tatsächlich läuft, können Sie jederzeit prüfen mit
sudo systemctl status httpd5. Erste eigene Webseite
Die Standard-Dateien von Apache liegen in Fedora im Verzeichnis:
/var/www/html
Dort können Sie eine erste Testseite anlegen:
echo "hallo, von der eigenen Website und Apache!" | sudo tee /var/www/html/index.htmlWenn Sie die Seite im Browser neu laden, sollte nun Ihr eigener Text erscheinen. Je nach Browser-Einstellung erhalten Sie aber zunächst eine Sicherheitswarnung, die Sie ignorieren können.


Alternativ können Sie in der Textkonsole des Servers mit Editor Nano eine Datei index.html erstellen. Dazu loggen Sie sich auf dem Server (der VM) ein und wechseln in das Verzeichnis
cd /var/www/htmlDen Editor öffnen Sie mit einer neuen Datei:
sudo nano index.htmlSchreiben Sie zum Testen beliebigen Text in die Datei. Verlassen den Editor mit
Strg + X
und bestätigen Sie das Speichern mit „j“.


Wichtige Verzeichnisse und Dateien in Apache (Fedora)
/var/www/html/Standard-Webverzeichnis. Dateien, die hier liegen, sind direkt im Browser aufrufbar. Beispiel:/var/www/html/index.html→ erreichbar unterhttp://<IP-Adresse>/index.html/etc/httpd/conf/httpd.confHauptkonfigurationsdatei von Apache. Hier können globale Einstellungen angepasst werden (z. B. Ports, Module)./etc/httpd/conf.d/Verzeichnis für zusätzliche Konfigurationsdateien. Neue Einstellungen oder virtuelle Hosts werden hier als eigene.conf-Dateien abgelegt. Vorteil: Änderungen bleiben übersichtlich getrennt von der Hauptkonfiguration./var/log/httpd/Log-Dateien des Webservers:access_log: alle Zugriffe auf den Webservererror_log: Fehlermeldungen
Netzwerk und Freigaben
Falls von außerhalb (z. B. einem zweiten Rechner im Netzwerk) auf die Seite zugegriffen werden soll, müssen in der Firewall des Servers die Ports 80 (http) und 443 (https) freigegeben sein.
Hinweis zum Netzwerk in Parallels
Standardmäßig laufen Virtuelle Maschinen in Parallels im NAT-Modus.
- Damit ist die VM vom Host-Rechner (Mac) erreichbar, aber nicht von anderen Geräten im Netzwerk.
- Für Tests im Browser des Mac reicht das völlig aus.
Wenn die Webseite jedoch auch von anderen Geräten im Heimnetz (z. B. Laptop, Smartphone) erreichbar sein soll, empfiehlt es sich, das Parallels-Netzwerk auf Bridged Network umzustellen. Dann erhält die VM eine eigene IP-Adresse im LAN, die von allen Geräten genutzt werden kann.
MariaDB installieren und einrichten
Der zweite Baustein unseres LAMP-Stacks ist die Datenbank. In den Fedora Paketquellen ist standardmäßig MariaDB als MySQL-kompatible Datenbank enthalten.
1. Installation
sudo dnf install mariadb-server
2. Dienst starten und aktivieren
sudo systemctl start mariadb
sudo systemctl enable mariadbDamit läuft die Datenbank und startet künftig automatisch beim Systemstart.

3. Grundkonfiguration
Für die erste Einrichtung gibt es ein Sicherheits-Skript:
sudo mysql_secure_installationDas Skript fragt interaktiv die Grundkonfiguration ab. Für eine Lern- und Testumgebung ausschließlich auf dem eigenen Rechner benötigen Sie das nicht unbedingt. Dennoch ist es hilfreich, alle Optionen einmal gesehen zu haben.
- Root-Passwort setzen? (Ja, unbedingt ein sicheres Passwort wählen)
- Anonyme Benutzer entfernen? (Ja)
- Root-Login von entfernten Hosts verbieten? (Ja)
- Testdatenbank entfernen? (Ja)
- Rechte-Tabellen neu laden? (Ja)
Hinweis zur Authentifizierung
Während der Einrichtung fragt MariaDB:
Switch to unix_socket authentication [Y/n]
Y(Ja): der Root-Benutzer meldet sich nur lokal über das Linux-Kontorootan. Dadurch ist eine Anmeldung im Terminal ohne Datenbank-Passwort (nur das sudo-Passwort wird abgefragt) möglich:sudo mysqln(Nein): der root-Benutzer erhält ein eigenes MariaDB-Passwort, Anmeldung mit Benutzername und Passwort:mysql -u root -p
Für Lern- und Testumgebungen ist die Passwort-Variante (n) übersichtlicher, da man bewusst mit Benutzername und Passwort arbeitet.

4. Test der Installation
Mit folgendem Befehl können Sie sich als root-Benutzer anmelden:
mysql -u root -pNach Eingabe des Passworts sollte die MariaDB-Eingabeaufforderung erscheinen. Dort können Sie sich mit exit; wieder abmelden.
5. MariaDB verwenden
In der Regel ist es sinnvoll, nicht direkt mit dem Root-Benutzer zu arbeiten, sondern einen eigenen Benutzer mit Passwort anzulegen. So bleibt das Root-Konto als Notfall-Zugang erhalten.
Neuen Benutzer anlegen:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'starkespasswort';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;Testen, ob der Benutzer angelegt wurde:
SELECT User, Host FROM mysql.user WHERE User='appuser';Loggen Sie sich dann aus mit exitund mit den neuen Benutzerdaten wieder ein:
mysql -u appuser -p

Hinweis: Falls Sie sich während der Ausführung des Sicherungs-Skripts vertan haben und das root-Login mit Passwort nicht funktioniert, können Sie sich meist noch mit dem Linux-Benutzer anmelden:
sudo mysqlVon dort aus lässt sich das root-Login wieder auf Passwort umstellen:
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('deinpasswort');
FLUSH PRIVILEGES;PHP installieren und testen
Der dritte Baustein des LAMP-Stacks ist PHP. Damit können dynamische Webseiten mit Datenbankanbindung erstellt werden.
1. Installation
In Fedora installiert man PHP zusammen mit den wichtigsten Erweiterungen (u. a. für MariaDB):
sudo dnf install php php-mysqlnd
2. Apache neu starten
Nach der Installation muss Apache neu gestartet werden, damit er PHP unterstützt:
sudo systemctl restart httpd
3. Testseite anlegen
Um zu prüfen, ob PHP korrekt funktioniert, legen wir eine kleine Testdatei im Apache-Webverzeichnis an:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Diese Seite zeigt alle Details der PHP-Installation an (Version, Module, Konfiguration). Im Browser wird die Seite aufgerufen mit:
https://<VM-IP>/info.php
Wenn die PHP-Übersichtsseite erscheint, ist alles richtig eingerichtet.

4. Sicherheitshinweis
Die Datei info.php sollte nach dem Test wieder gelöscht werden, da sie zu viele interne Informationen preisgibt:
sudo rm /var/www/html/info.phpWer möchte, kann nun ein eigenes PHP-Skript erstellen und im Verzeichnis var/www/html speichern, z.B. als index.php
Hinweis: Welche Seite wird zuerst geladen?
Der Apache-Webserver sucht beim Aufruf eines Verzeichnisses automatisch nach einer „Startdatei“. Standardmäßig gilt dabei folgende Reihenfolge:
DirectoryIndex index.html index.php
Das bedeutet: Liegt im Verzeichnis eine index.html, wird diese immer zuerst angezeigt. Die Datei index.php wird nur geladen, wenn keine index.html vorhanden ist.
Sie können eine Seite direkt aufrufen, indem Sie den Dateinamen an die Adresse anhängen:
http://<ip-addr>/demo.php
Alternativ können Sie die index.html umbenennen (z. B. in info.html), wenn Sie möchten, dass die PHP-Seite automatisch als Startseite erscheint.
DirectoryIndex ist eine Apache-Direktive (also eine Konfigurationsanweisung), die festlegt, welche Datei Apache lädt, wenn in der URL kein Dateiname angegeben ist.
Beispiel:
- Sie rufen
http://localhost/auf → kein Dateiname in der URL. - Apache schaut ins Verzeichnis
/var/www/html/und prüft, ob dort eine der inDirectoryIndexangegebenen Dateien liegt.
Wenn in der Konfiguration steht:
DirectoryIndex index.html index.php
dann gilt:
- Falls
index.htmlvorhanden ist, wird sie geladen. - Falls nicht, aber
index.phpvorhanden ist, wird diese geladen. - Falls keine von beiden existiert gibt Apache einen Fehler zurück (z. B. „Forbidden“ oder ein Verzeichnislisting, wenn das erlaubt ist).
Ausblick
Mit einem funktionierenden LAMP-Stack haben Sie die Grundlage geschaffen, um eigene Webanwendungen zu entwickeln und zu testen. Ob Content-Management-Systeme wie WordPress oder kleine eigene Projekte – die klassische Kombination aus Linux, Apache, MariaDB und PHP ist nach wie vor weit verbreitet.
Für den weiteren Weg bieten sich unterschiedliche Möglichkeiten an:
- Erste Webanwendungen installieren: Zum Beispiel ein Blog mit WordPress oder ein Wiki mit MediaWiki.
- Sicherheit und Administration: Benutzerrechte, Firewall-Einstellungen und regelmäßige Updates sind entscheidend, wenn ein Server mehr als nur zu Lernzwecken eingesetzt wird.
- Alternative Stacks ausprobieren: Moderne Webanwendungen setzen häufig auf Nginx statt Apache oder auf Datenbanken wie PostgreSQL. Auch Containerlösungen wie Docker oder Podman machen das Bereitstellen und Verwalten von Diensten einfacher.
- Automatisierung und Verwaltung: Werkzeuge wie Cockpit (das wir bereits installiert haben) oder Konfigurationsmanagement mit Ansible helfen, mehrere Systeme im Griff zu behalten.
Im nächsten Beitrag erklären wir Installation und Einrichtung von phpMyAdmin. Das vereinfacht die Verwaltung der Datenbank erheblich, insbesondere auch unter dem Aspekt der Lesbarkeit.
