Server | Thorsten Eggeling | 5/2025 | 25. Juli 2025

Webanwendungen für Heimserver

Die Basis der meisten Webanwendungen ist ein HTTP-Server wie Apache oder Nginx. Dazu kommen die Script-Sprache PHP und eine Datenbank. Dieser Artikel beschreibt mehrere Varianten der Installation.

Ein Apache-Webserver ist schnell installiert und funktionsbereit. Für die eigentlichen Anwendungen benötigen Sie jedoch zusätzliche Software, deren Konfiguration aufwendiger ist.

Die Basis der meisten Webanwendungen ist ein HTTP-Server wie Apache oder Nginx. Dazu kommen die Script-Sprache PHP und eine Datenbank. Dieser Artikel beschreibt mehrere Varianten der Installation.

Im einfachsten Fall installieren Sie Webserver, PHP und Datenbankserver über die Paketverwaltung. Die Einrichtung der Webanwendungen und die Konfiguration des Webservers erfolgen manuell. Für einen Server, den Sie nur im eigenen Netzwerk verwenden, ist das ausreichend. Soll der Server auch aus dem Internet erreichbar sein, ist aus Sicherheitsgründen ein komplexeres Setup mit einer Kombination von Apache und Nginx empfehlenswert. Auch das kann man manuell einrichten, aber deutlich flexibler und komfortabler ist eine Verwaltungssoftware für den Server (siehe Kasten „Serververwaltung mit Hestia CP“). Schließlich können Sie Webserver und Anwendungen auch in Docker-Containern installieren. Dabei müssen Sie keine Konfigurationsdateien anpassen und die Verwaltung erfolgt über eine Weboberfläche.

Hinweis: Die Beschreibungen in diesem Artikel gelten für Ubuntu Server oder Ubuntu Desktop. Debian-Nutzer verwenden die gleichen Befehle, verschaffen sich aber mit

su -

administrative Rechte im Terminal und lassen „sudo“ weg.

Service: Die Befehlszeilen zu diesem Artikel finden Sie über https://m6u.de/HOMSER.

Die klassische Apache-Installation

Alles, was Sie für einen eigenen Webserver benötigen, ist in den Standard-Paketquellen vorhanden. Die hier beschriebene Installation eignet sich gut für die Nutzung im lokalen Netzwerk. Für Webanwendungen benötigen Sie in der Regel PHP und meist auch ein Datenbanksystem.

Schritt 1: Für die Installation des Webservers Apache starten Sie im Terminal

sudo apt install apache2

Der Serverdienst wird automatisch aktiviert und gestartet. Im Webbrowser rufen Sie „http://[MeinServer]“ auf. Den Platzhalter ersetzen Sie durch die IP-Adresse oder den Namen des Servers, an den Sie abhängig vom Router „.local“ oder „.fritz.box“ anhängen können oder müssen. Sie sehen dann die Apache-Startseite („/var/www/index.html“).

Schritt 2: Für die PHP-Basisinstallation genügt die Zeile

sudo apt install php

Schritt 3: Falls es für eine Webanwendung erforderlich ist, installieren Sie ein Datenbanksystem. Einige Anleitungen schlagen My SQL vor, zu dem Maria DB kompatibel ist. Maria DB ist der Vorzug zu geben, weil die Software als leistungsstärker gilt und komplett unter einer GPL-Lizenz verfügbar ist. Die Installation erfolgt mit

sudo apt install mariadb-server

Schritt 4: Für die Erstkonfiguration von Maria DB starten Sie

sudo mysql_secure_installation

und werden nach dem aktuellen Passwort gefragt. Da noch keines vergeben ist, bestätigen Sie mit der Eingabetaste. Die Frage „Switch to unix_socket authentication“ beantworten Sie mit „n“, was Sie mit Eingabetaste bestätigen. Die nächste Frage „Change the root password?“ beantworten Sie ebenfalls mit „n“. Bei den weiteren Fragen übernehmen Sie die Vorgaben.

Schritt 5: Erstellen Sie mit den folgenden vier Befehlszeilen einen administrativen Benutzer für Maria DB:

sudo mariadb
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY '[Passwort]' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;

Statt des Platzhalters „[Passwort]“ setzen Sie ein Passwort ein. Es muss keinen hohen Sicherheitsanforderungen genügen, weil Maria DB nur lokal erreichbar ist.

Schritt 6: Installieren Sie das Datenbank-Frontend Phpmyadmin. Darüber können Sie neue Datenbanken erstellen sowie Benutzer und Zugriffsrechte verwalten:

sudo apt install phpmyadmin

Sie werden nach dem verwendeten Webserver gefragt und wählen „apache2“. Beantworten Sie die Frage nach „dbconfig-common“ mit „Yes“. Danach legen Sie das Passwort fest, das Phpmyadmin intern für den Zugriff auf Maria DB verwenden soll.

Rufen Sie im Browser „http://[MeinServer]/phpmyadmin“ auf und melden sich mit dem in Schritt 5 konfigurierten Benutzernamen („admin“) und Passwort an. Wofür Sie Phpmyadmin verwenden, hängt von der gewählten Webanwendung ab. Einige benötigen nur Benutzernamen und Passwort für Maria DB und erstellen automatisch eine Datenbank. Teilweise müssen Sie aber die Datenbank über Phpmyadmin selbst erstellen.

Datenbanken verwalten: Phpmyadmin verwenden Sie für die Konfiguration von Maria DB oder My SQL. Sie können damit Datenbanken erstellen, bearbeiten oder exportieren.

Webanwendungen für Apache

Die Einrichtung von PHP-Anwendungen läuft immer nach dem gleichen Schema ab. Unterschiede zeigen sich bei den benötigten Apache- oder PHP-Modulen, die Sie zusätzlich installieren müssen. Informationen dazu finden Sie in der Installationsanleitung der jeweiligen Software. An dieser Stelle beschreiben wir exemplarisch die Installation von Dokuwiki (www.dokuwiki.org), einem kleinen CMS (Content Management System), das sich gut für die Ablage von Notizen, Infos und Bildern eignet. Dokuwiki kommt ohne Datenbanksystem aus und speichert die Inhalte einfach im Dateisystem.

Schritt 1: Neben Apache und PHP sind zusätzliche PHP-Module erforderlich. Installieren Sie diese so:

sudo apt install php-{bz2,gd,intl,json,mbstring}

Schritt 2: Gehen Sie dann auf https://down load.dokuwiki.org. Unter „Languages“ deaktivieren Sie per Klick auf „Toogle all“ alle Sprachen und setzen ein Häkchen vor „de – Deutsch (Sie)“ oder „ de-informal – Deutsch (Du)“. Unter „Popular Plugins“ aktivieren Sie beispielsweise „Upgrade Plugin“, „Video Share Plugin“ und „Gallery Plugin“, falls Sie diese Funktionen nutzen wollen. Klicken Sie unten auf der Seite auf „Start Download“. Wer über SSH mit dem Server verbunden ist, bricht den Download ab und kopiert den Link hinter „download via this link“. Laden Sie die Datei mit

wget [Download-Link]

auf den Server herunter.

Schritt 3: Entpacken Sie die heruntergeladene tgz-Datei mit

tar xvf [Datei]

und kopieren Sie den Ordner mit

sudo cp -r dokuwiki /var/www/html

Schritt 4: Bei einem ausschließlich lokal genutzten Server ist es eigentlich nicht nötig, auf Sicherheit zu achten. Dokuwiki zeigt allerdings eine Fehlermeldung an, wenn die Zugriffsrechte nicht korrekt gesetzt sind. Um das zu ändern, kopieren Sie die „.htaccess.dist-Datei“ (zwei Zeilen):

cd /var/www/html/dokuwiki
sudo cp .htaccess.dist .htaccess

Danach passen Sie die Zugriffsrechte mit

sudo chown -R www-data:www-data /var/www/html/dokuwiki

an. Damit Apache die Konfiguration aus der Datei „.htaccess“ berücksichtigt, bauen Sie in die Datei „/etc/apache2/sites-enabled/
000-default.conf“ den folgenden Block oberhalb von „“ ein (drei Zeilen):

<Directory /var/www/html/dokuwiki>
AllowOverride All

Mit

systemctl reload apache2

liest der Webserver die Konfiguration dann neu ein.

Schritt 5: Rufen Sie im Browser „http://[MeinServer]/dokuwiki/install.php?l=de“ auf. Geben Sie dem Wiki einen Namen und legen einen administrativen Benutzer mit Passwort fest. Klicken Sie auf „Speichern“ und dann auf „Ihr neues DokuWiki“. Die Willkommensseite zeigt eine kurze Einführung in englischer Sprache, mit weiterführenden Links etwa zur „syntax page“, die erklärt, wie sich Wiki-Seiten formatieren lassen.

Einfacher Speicher für Notizen: Dokuwiki ist einfach zu installieren und benötigt keine Datenbank. Bei der Erstkonfiguration legen Sie Benutzernamen und Passwort des Adminis­trators fest.

Webserver und Webanwendungen im Container

Die Installation von Serversoftware in Docker-Containern bietet einige Vorteile. Webserver, PHP und Datenbank laufen unabhängig vom installierten System und man ist nicht auf die von der Distribution bereitgestellten Pakete angewiesen. Dadurch ist es möglich, auch Webanwendungen zu nutzen, die etwa eine ältere oder neuere PHP-Version voraussetzen. Docker-Container sorgen außerdem für mehr Sicherheit gegen Angriffe. Die Programme laufen in einer Sandbox und sind nicht einfach zu manipulieren. Nur die Konfigurationsdateien und Datenordner sind aus dem installierten Betriebssystem zu erreichen. Dienste in Docker-Containern sind daher besser für Server geeignet, die auch über das Internet zugänglich sind.

Es gibt auch Nachteile: Docker stellt eine komplexe Software-Infrastruktur bereit, in die man sich erst einarbeiten muss. Die von uns vorgestellte Konfiguration erleichtert den Einstieg durch Weboberflächen jedoch erheblich. Software für Docker erhält man in der Regel von Docker Hub (https://hub.docker.com). Bevorzugen Sie Versionen, die als „Docker Official Image“ gekennzeichnet sind oder vom Originalhersteller der Software stammen. Auf Docker Hub lassen sich auch Communityprojekte hochladen, deren Sicherheitsstatus ungewiss ist. In der Vergangenheit ist es zu Vorfällen gekommen, bei denen Pakete Schadsoftware enthielten.

Software für Docker: Docker Hub ist der zentrale Speicher für Docker-Images. Dabei handelt es sich um vorgefertigte Abbilder, die Betriebssystem und Anwendungen enthalten.

Docker unter Linux installieren

Ubuntu-Nutzer installieren eine aktuelle Docker-Version am einfachsten als Snap:

sudo snap install docker

In den Repositorien der Distributionen finden Sie meist nur ältere Versionen. Nutzer von Debian oder Raspberry-Pi OS-können https://download.docker.com als aktuellere Paketquelle einbinden. Anleitungen dafür finden Sie unter https://docs.docker.com/engine/install.

Grafische Oberfläche für Docker: Über die Weboberfläche Portainer CE (www.portainer.io) lässt sich Docker besonders komfortabel konfigurieren. Zur Installation verwenden Sie diese zwei Befehlszeilen:

sudo docker volume create portainer_data
sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts

Dann rufen Sie die URL „https://[MeinServer]:9443“ im Browser auf. Da Portainer ein selbst signiertes Zertifikat verwendet, erhalten Sie eine Warnung. In Firefox klicken Sie auf „Erweitert“ und auf „Risiko akzeptieren und fortfahren“. Geben Sie Benutzernamen und Passwort für den administrativen Benutzer ein, klicken Sie auf „Create user“, auf „Get started“ und auf „Live connect“.

Docker-Anwendungen über Portainer einrichten

Auf Ihrem PC dürfen nicht mehrere Dienste laufen, die den gleichen Port verwenden. Sollte Apache bereits installiert sein, beenden und deaktivieren Sie den Dienst mit

sudo systemctl stop apache2
sudo systemctl disable apache2

Richten Sie den Nginx Proxy Manager (https: //nginxproxymanager.com) über Portainer ein. Die Webanwendungen sind dann nur indirekt über den Nginx-Proxy erreichbar, was die Sicherheit erhöht. Außerdem können Sie mehrere Anwendungen installieren, die dann jeweils über eigene Internetdomains erreichbar sind.

Schritt 1: Öffnen Sie die Portainer-Oberfläche und gehen Sie in der Navigation auf der linken Seite auf „Templates –› Custom“. Klicken Sie auf „Add Custom Template“. Tragen Sie in die Felder hinter „Title“ und „Description“ jeweils „npm“ ein.

Schritt 2: Gehen Sie auf https://m6u.de/DOCK. Klicken Sie hier auf „NPM-Docker-Compose-File.yaml“ und dann auf der rechten Seite auf „Copy raw file“ (das Icon hinter „Raw“).

Schritt 3: Zurück in Portainer fügen Sie den Inhalt mit Strg-V in den Eingabebereich unter „Web editor“ ein. Danach klicken Sie auf „Create custom template“.

Schritt 4: Unter „Custom Templates“ klicken Sie auf den soeben erstellten Eintrag „npm“, geben der Konfiguration die Bezeichnung „npm“ und klicken auf „Deploy the stack“. Rufen Sie im Browser testweise „http://[MeinServer]“ auf. Da noch keine Webanwendung installiert ist, meldet sich nur Nginx Proxy Manager mit einer Meldung über die erfolgreiche Installation.

Grafische Oberfläche für Docker: In Portainer erstellen Sie Vorlagen, auf deren Basis das Tool Docker-Abbilder herunterlädt und Container für Dienste und Anwendungen erstellt.

Als Beispielanwendung verwenden wir wieder Dokuwiki. Die Installation erfolgt entsprechend wie für Nginx Proxy Manager beschrieben. Verwenden Sie die Konfigurationsdatei „Dokuwiki-Docker-Compose-File.yaml“ von https://m6u.de/DOC. Für einen Test rufen Sie Dokuwiki über die URL „http://[MeinServer]:8080“ auf.

Nginx Proxy Manager konfigurieren: Öffnen Sie „http://[MeinServer]:81“ im Browser und melden Sie sich mit der E-Mail-Adresse „admin@example.com“ und dem Passwort „changeme“ an. Sie werden dann aufgefordert, Benutzernamen und E-Mail-Adresse zu konfigurieren. Nach einem Klick auf „Save“ legen Sie ein neues Passwort fest.

Gehen Sie dann auf „Hosts –› Proxy Hosts“ und hier auf „Add Proxy Host“. Unter „Domain Names“ setzen Sie eine Domain für dynamisches IP ein (siehe Artikel ab Seite 24). Unter „Forward Hostname / IP“ tragen Sie die IP-Adresse Ihres Linux-Servers ein und unter „Forward Port“ den Port des Dokuwiki-Containers („8080“). Auf der Registerkarte „SSL“ aktivieren Sie ein kostenloses SSL-Zertifikat von Let’s Encrypt. Danach speichern Sie mit „Save“.

Im Browser lässt sich Ihr Dokuwiki jetzt über den konfigurierten Domainnamen aufrufen. Für die Erstkonfiguration verwenden Sie die URL „http://[Meine-Domain]/install.php?l=de“. Bei einem öffentlich zugänglichen Wiki sollten Sie unter „Anfangseinstellungen der Zugangskontrolle (ACL)“ den Eintrag „Geschlossenes Wiki (Lesen, Schreiben und Hochladen nur für registrierte Benutzer)“ wählen. Über „Admin –› Benutzerverwaltung“ legen Sie dann die Benutzer an, die einen Zugang erhalten sollen.

Nginx Proxy Manager: Das Tool erstellt eine Nginx-Proxy-Konfiguration mit wenigen Eingaben. Sie geben die Internetdomain sowie IP und Port der Docker-Anwendung an.

Serververwaltung mit Hestia CP

Das Hestia Control Panel (https://hestiacp.com)
erleichtert die Einrichtung eines Servers deutlich.

Es eignet sich für Nutzer, die eine klassische Installation ohne Docker bevorzugen, sich aber trotzdem eine einfache Konfiguration über eine Weboberfläche wünschen. Hestia CP setzt ein frisch installiertes Debian 11/12 oder Ubuntu 22.04/24.04 voraus. Bereits installierte Webserver lassen sich damit nicht verwalten, weil das Tool ein spezielles Konfigurationsschema verwendet. Sie können aber Apache, PHP und Maria DB vorher deinstallieren.


Laden Sie das Installations-Script mit


wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh


herunter. Die verfügbaren Optionen zeigt


bash hst-install.sh -h


an. Eine ausführlichere Übersicht liefert die Webseite https://hestiacp.com/docs/introduction/getting-started.html. Installieren Sie durch Angabe der Optionen nur die Software, die Sie wirklich benötigen. Ohne weitere Angaben wird alles installiert, wo „default: yes“ steht. Nach der Installation starten Sie Linux neu und rufen im Browser die lokale Adresse „https://[IP-Adresse]: 8083“ auf. Übergehen Sie die Sicherheitswarnung per Klicks auf „Erweitert“ und „Risiko akzeptieren und fortfahren“.
Melden Sie sich mit dem Benutzernamen „admin“ und dem bei der Installation festgelegten Admin-Passwort an. Die konfigurierte Internetdomain ist bereits vorhanden und lässt sich unter „Web“ auswählen. Per Klick auf „App installieren“ richten Sie die gewünschte Webanwendung ein, etwa Dokuwiki, Next-cloud oder WordPress.

Hestia Control Panel: Über die Weboberfläche richten Sie Internetdomains sowie Datenbanken ein und installieren Webanwendungen mit wenigen Mausklicks.