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.

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.

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.

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.

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.

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.


