22 KiB
Kapitel 9 – Webspace
In diesem Kapitel baust du dir einen eigenen Webspace-Container im UCC auf.
Das ist der Platz für alles, was später öffentlich erreichbar sein soll – zum Beispiel deine eigene Website, ein Blog für deine Projekte, ein Online-Shop für Merch oder ein CMS wie WordPress oder Joomla.
Unser Ziel ist, dir eine solide Grundlage zu geben, auf der du all diese Anwendungen frei installieren kannst, ohne dich von Anfang an auf eine bestimmte Software festlegen zu müssen.
Wir verwenden dafür einen LXC-Container mit Debian 12 und installieren darin den sogenannten LAMP-Stack:
- Linux als Betriebssystem,
- Apache als Webserver,
- MariaDB-Client für Datenbank-Anbindungen (z. B. wenn du später ein CMS installierst),
- PHP für dynamische Inhalte wie Formulare, Login-Seiten oder Shops.
Diese Kombination ist seit vielen Jahren die Standard-Basis für Webhosting. Sie ist weit verbreitet, gut dokumentiert und wird von fast allen gängigen Webanwendungen unterstützt.
Dein Webspace ist nach diesem Kapitel sofort einsatzbereit:
Du kannst eine einfache HTML- oder PHP-Seite hochladen und direkt im Browser aufrufen.
Darauf aufbauend entscheidest du selbst, ob du später ein CMS, einen Shop oder etwas Eigenes installieren möchtest.
Damit der Webspace nicht nur lokal funktioniert, sondern auch aus dem Internet erreichbar ist, binden wir ihn am Ende an den Nginx Proxy Manager an.
Außerdem zeigen wir dir, wie du deine eigene Domain mithilfe des bereits eingerichteten DynDNS-Dienstes auf diesen Container leitest.
So ist deine Seite wahlweise über eine Subdomain im Heimnetz oder über deine echte Internet-Adresse erreichbar – natürlich mit einem gültigen HTTPS-Zertifikat.
Voraussetzungen & Ressourcen
Bevor wir mit der eigentlichen Einrichtung des Webspace beginnen, sorgen wir dafür, dass die technische Grundlage stimmt.
Wir legen hier verbindlich fest, wie der Container ausgestattet sein muss und welche Dienste im UCC bereits vorhanden sein müssen.
Die Angaben sind absichtlich großzügig gewählt, damit du später auch ein CMS, einen Shop oder andere komplexere Anwendungen betreiben kannst, ohne noch einmal am Container selbst etwas ändern zu müssen.
Container-Ressourcen
Für den Webspace-Container legen wir folgende Ausstattung fest:
-
CPU: 4 vCPUs
Vier virtuelle Prozessoren stellen sicher, dass der Webserver auch unter Last stabil und schnell bleibt.
Das ist wichtig, sobald mehrere Besucher gleichzeitig auf deine Seite zugreifen oder ein CMS viele Datenbankanfragen stellt. -
RAM: 4 GB
Mit 4 GB Arbeitsspeicher läuft der Apache-Webserver zusammen mit PHP und typischen Erweiterungen flüssig.
Einfache statische Webseiten brauchen weniger, aber dynamische Anwendungen wie Shops oder Blogs benötigen zusätzliche Ressourcen, insbesondere bei Updates oder Bildverarbeitung. -
Speicherplatz: 20 GB
Dieser Platz reicht für die Grundinstallation des Systems, den Webserver und genügend Dateien für erste Projekte.
Wenn du später größere Mediendateien wie Fotos, Videos oder Backups auf dem Webspace speichern willst, solltest du beim Anlegen des Containers gleich mehr Speicher zuweisen, um späteren Umbau zu vermeiden. -
Betriebssystem: Debian 12 LTS (64-Bit)
Debian ist die Basis des gesamten UCC und wird hier ebenfalls für den Webspace verwendet.
So bleiben die Schritte einheitlich und wir profitieren von den stabilen Sicherheits- und Support-Updates der LTS-Version. -
Netzwerk: Feste IP-Adresse per DHCP-Reservierung
Der Container erhält im Router eine feste Adresse innerhalb des DHCP-Bereichs.
Das garantiert, dass er immer unter derselben IP erreichbar ist und vermeidet Konflikte, falls der Router Adressen neu vergibt.
Wie du die DHCP-Reservierung einrichtest, hast du bereits in Kapitel 1 gelernt.
Tip
Wenn du schon weißt, dass du sehr große Projekte umsetzen wirst (z. B. hochauflösende Bildgalerien oder umfangreiche Shops), plane den Speicherplatz beim Erstellen des Containers gleich noch größer ein.
Eine spätere Erweiterung ist zwar möglich, aber deutlich aufwendiger.
Voraussetzungen im UCC
Neben der Ausstattung des Containers müssen folgende Komponenten aus den vorherigen Kapiteln bereits eingerichtet sein:
-
Proxmox-Host – läuft betriebsbereit und ist über die Weboberfläche erreichbar (Kapitel 1).
Hier legst du den neuen Container an und kannst ihn jederzeit verwalten. -
Nginx Proxy Manager (NPM) – wurde in Kapitel 3 eingerichtet und ist weiterhin aktiv.
Wir brauchen ihn, um den Webspace später unter einer Subdomain oder deiner eigenen Domain bereitzustellen und automatisch ein HTTPS-Zertifikat zu vergeben. -
DynDNS-Dienst und Domain – wie in Kapitel 4 konfiguriert.
Damit kannst du den Webspace aus dem Internet unter deiner eigenen Domain erreichen.
Auch wenn du den Webspace zunächst nur im Heimnetz nutzt, ist es sinnvoll, die DynDNS-Funktion bereitzuhalten, um später ohne Mehraufwand nach außen zu veröffentlichen. -
Zugriff auf die Proxmox-Shell oder SSH-Verbindung – du benötigst einen funktionierenden Zugang, um den Container nach der Erstellung einzurichten.
Die meisten Befehle in diesem Kapitel führst du direkt in der Shell des Containers aus.
Important
Der Webspace ist nach der Grundinstallation zunächst nur im internen Netzwerk erreichbar.
Die Anbindung an den Proxy Manager und die öffentliche Domain erfolgt erst am Ende des Kapitels, wenn der Webserver vollständig installiert und getestet ist.
Schritt für Schritt
In den folgenden Schritten bereiten wir den Webspace-Container so vor, dass wir darauf den Webserver und alle benötigten Komponenten installieren können.
Wir beginnen mit einem sauberen und aktualisierten Grundsystem.
Dieser Schritt ist wichtig, um spätere Fehler bei der Installation und beim Betrieb zu vermeiden.
Schritt 1 – Grundsystem aktualisieren
Öffne die Konsole des Webspace-Containers.
Das geht in Proxmox über den Button Shell, wenn du den Container in der linken Seitenleiste ausgewählt hast.
Alternativ kannst du dich auch per SSH mit dem Container verbinden, falls du den Zugang bereits eingerichtet hast.
Sobald die Konsole geöffnet ist, aktualisieren wir das komplette System auf den neuesten Stand.
Gib dazu folgenden Befehl ein und bestätige mit der Eingabetaste:
apt update && apt upgrade -y
Der Befehl apt update lädt die aktuellen Paketlisten von den Debian-Servern.
Anschließend installiert apt upgrade -y alle verfügbaren Updates.
Je nachdem, wie viele Pakete aktualisiert werden müssen, kann dieser Schritt einige Minuten dauern.
Sobald die Aktualisierung abgeschlossen ist, muss der Container neu gestartet werden, damit alle neuen Versionen korrekt geladen werden.
Führe dazu folgenden Befehl aus:
reboot
Note
Auch wenn bei der Aktualisierung nur wenige Pakete geändert wurden, ist der Neustart Pflicht.
Er stellt sicher, dass alle aktualisierten Bibliotheken und Dienste aktiv sind, bevor wir mit der Installation des Webservers beginnen.
Schritt 2 – Apache Webserver und PHP installieren
Nachdem das Grundsystem auf den neuesten Stand gebracht wurde, installieren wir jetzt den eigentlichen Webserver und die PHP-Unterstützung.
Diese beiden Komponenten bilden die Grundlage für alle Webseiten, egal ob du später nur statische HTML-Seiten oder ein komplettes CMS wie WordPress betreibst.
Öffne dafür erneut die Konsole des Webspace-Containers in Proxmox über den Button Shell.
👉 Screenshot geeignet: Proxmox – Container ausgewählt und Konsole geöffnet
Gib anschließend folgenden Befehl ein und bestätige mit der Eingabetaste:
apt install -y apache2 php libapache2-mod-php php-mysql php-gd php-curl php-xml php-mbstring mariadb-client unzip curl
Dieser Befehl installiert den Apache-Webserver sowie PHP mitsamt den wichtigsten Erweiterungen und einigen Hilfsprogrammen:
- apache2 liefert die Webseiten aus.
- php und libapache2-mod-php ermöglichen das Ausführen von dynamischen PHP-Anwendungen.
- php-mysql, php-gd, php-curl, php-xml, php-mbstring sind die Standardmodule, die fast alle gängigen CMS und Shops benötigen.
- mariadb-client erlaubt den Zugriff auf Datenbanken, falls du später z. B. WordPress oder Shop-Systeme installierst.
- unzip und curl werden zum Herunterladen und Entpacken von Dateien gebraucht.
👉 Screenshot geeignet: Konsole nach erfolgreichem Abschluss der Paketinstallation
Note
Die Installation kann – abhängig von Internetgeschwindigkeit und Container-Leistung – einige Minuten dauern.
Warte, bis die Installation komplett beendet ist, bevor du weitermachst.
Damit der Webserver bei jedem Start des Containers automatisch aktiv ist und sofort einsatzbereit bleibt, schalten wir ihn nun dauerhaft ein und starten ihn gleich:
systemctl enable --now apache2
[!TIP] Um sicherzugehen, dass der Dienst läuft, kannst du den Status prüfen:
systemctl status apache2
👉 Screenshot geeignet: Konsole mit Statusanzeige von Apache „active (running)“
Damit ist der Webserver erfolgreich installiert und einsatzbereit.
Im nächsten Schritt richten wir eine einfache Testseite ein, um die Funktion zu überprüfen.
Schritt 3 – Testseite für Apache und PHP anlegen
Bevor wir den Webserver mit echten Projekten nutzen, prüfen wir, ob Apache und die PHP-Unterstützung korrekt arbeiten.
Dafür legen wir im Standard-Webverzeichnis eine kleine Testseite an.
Das Hauptverzeichnis für Webseiten des Apache-Webservers liegt standardmäßig unter:
cd /var/www/html
Erstelle dort eine neue Datei mit dem Namen info.php:
nano info.php
👉 Screenshot geeignet: Konsole mit geöffneter Datei info.php im Nano-Editor
Füge in die leere Datei die folgende Zeile ein und speichere anschließend mit STRG+O, Enter, und beende den Editor mit STRG+X:
<?php phpinfo(); ?>
👉 Screenshot geeignet: Inhalt der Datei info.php im Editor vor dem Speichern
Diese Seite zeigt später alle aktiven PHP-Module und dient als Funktionstest.
Öffne jetzt auf einem beliebigen Rechner im Heimnetz einen Webbrowser und rufe die IP-Adresse des Webspace-Containers auf.
Füge hinten an die Adresse /info.php an, zum Beispiel:
http://192.168.1.109/info.php
👉 Screenshot geeignet: Browser mit geöffneter PHP-Info-Seite
Wenn alles richtig installiert ist, erscheint die PHP-Info-Seite mit einer Übersicht der aktiven Module.
Damit ist bestätigt, dass Apache und PHP funktionieren und bereit für deine Webseiten sind.
Tip
Lösche die Testdatei wieder, sobald du den Test erfolgreich durchgeführt hast.
Solche Informationsseiten sollten aus Sicherheitsgründen nicht dauerhaft öffentlich zugänglich bleiben:
rm /var/www/html/info.php
Schritt 4 – Webspace im Nginx Proxy Manager einbinden
Öffne den Nginx Proxy Manager und lege einen neuen Proxy-Host für den Webspace an.
-
Anmelden im NPM-Dashboard
👉 Screenshot geeignet: NPM – Dashboard nach Login -
Klicke auf Add Proxy Host
-
Trage im Reiter Details folgende Werte ein:
| Feld | Wert / Auswahl |
|---|---|
| Domain Names | webspace.deinedomain.tld |
| Scheme | http |
| Forward Hostname / IP | IP-Adresse des Webspace-Containers |
| Forward Port | 80 |
| Block Common Exploits | aktivieren |
| Websockets Support | aktivieren |
👉 Screenshot geeignet: Formular „Add Proxy Host“ mit eingetragener IP und Port 80
- Wechsle zu SSL und setze:
| Feld | Einstellung |
|---|---|
| Request a new SSL Certificate | aktivieren |
| Force SSL | aktivieren |
| HTTP/2 Support | aktivieren |
👉 Screenshot geeignet: SSL-Tab mit aktivierter Option „Force SSL“
- Klicke Save, um den Proxy-Host anzulegen.
Nach wenigen Sekunden ist der Webspace über die Subdomain erreichbar, z. B.:
https://webspace.deinedomain.tld
👉 Screenshot geeignet: Browser – Apache-Standardseite über die Subdomain aufgerufen
Tip
Falls der Zugriff auch von außen möglich sein soll, muss im Router Port 443 auf den NPM-Host weitergeleitet werden.
Schritt 5 – Eigene Domain (TLD) mit DynDNS verbinden
Wenn der Webspace nicht nur über eine Subdomain erreichbar sein soll, sondern direkt unter deiner Haupt-Domain, kannst du die TLD beim Domain-Anbieter als DynDNS-Ziel eintragen.
Fast alle gängigen Hoster unterstützen dies direkt im Kundenportal.
Öffne dazu die DNS-Verwaltung deines Domain-Anbieters und setze den A-Record (für IPv4) und – falls du IPv6 nutzt – den AAAA-Record auf die DynDNS-Adresse, die du in Kapitel 4 eingerichtet hast.
Tip
Sobald die DNS-Änderung aktiv ist, zeigt deine Domain automatisch auf den Webspace.
Im Nginx Proxy Manager sind keine weiteren Schritte erforderlich.
Note
Falls dein Domain-Anbieter die IP-Adresse nicht automatisch aktualisiert, siehe Kapitel 3 Premium.
Dort ist beschrieben, wie du die automatische Aktualisierung des DynDNS-Eintrags sicherstellst.
Nächste Schritte – Erste Nutzung des Webspace
Der Webspace ist jetzt betriebsbereit und über die eingerichtete Subdomain mit aktivem HTTPS erreichbar.
Damit hast du eine stabile Grundlage für alles, was du online präsentieren möchtest.
Hier erfährst du, wie du sofort loslegen kannst.
Dateien und Webseiten hochladen
Die Standard-Webseite von Apache liegt im Verzeichnis:
/var/www/html
Alles, was du in dieses Verzeichnis kopierst oder dort anlegst, wird beim Aufruf deiner Domain angezeigt.
Du kannst also direkt deine eigene index.html oder index.php hochladen, um die Standardseite zu ersetzen.
Tip
Wenn du per SFTP auf den Container zugreifen möchtest, kannst du dich mit denselben Zugangsdaten einloggen, die du für den Container verwendest.
Viele FTP-Programme wie FileZilla oder WinSCP unterstützen SFTP und erleichtern den Upload von Dateien.
👉 Screenshot geeignet: SFTP-Client mit Verbindung zum Container und geöffnetem Verzeichnis /var/www/html
Ein erstes Beispiel
Lege zum Testen eine neue HTML-Datei an:
nano /var/www/html/index.html
Füge folgenden Inhalt ein:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Willkommen im Webspace</title>
</head>
<body>
<h1>Dein Webspace ist bereit!</h1>
<p>Diese Seite wird aus dem neuen LAMP-Stack geladen.</p>
</body>
</html>
Speichere die Datei und rufe im Browser deine Domain auf.
Die Standardseite wurde durch deine eigene ersetzt.
👉 Screenshot geeignet: Browser mit der selbst erstellten Willkommensseite
Erste CMS-Installation (optional)
Falls du gleich ein Content-Management-System installieren möchtest (z. B. WordPress oder Joomla), lade die Installationsdateien in dasselbe Verzeichnis hoch und folge dem jeweiligen Einrichtungsassistenten im Browser.
Die in Schritt 2 installierten PHP-Module decken die gängigen Anforderungen bereits ab.
Tip
Lege für komplexere Anwendungen wie CMS oder Shops ein separates Verzeichnis unterhalb von
/var/www/an, z. B./var/www/wordpress, um deine Projekte sauber voneinander zu trennen.
Pflege und Updates
Führe regelmäßig folgende Befehle im Container aus, um das System aktuell zu halten:
apt update && apt upgrade -y
[!IMPORTANT]
Aktualisiere auch deine CMS-Software und Plugins, sobald neue Versionen verfügbar sind.
So bleibt dein Webspace sicher und stabil.
Mit diesen Schritten kannst du sofort beginnen, eigene Inhalte zu veröffentlichen.
Der Webspace ist so vorbereitet, dass du weder für statische Seiten noch für gängige CMS zusätzliche Module installieren musst.
Im Premium-Kapitel erfährst du später, wie du den Webspace für professionelle Workflows optimierst – zum Beispiel mit Git-basiertem Deployment und Staging-Umgebungen.
Troubleshooting & Tipps
Auch wenn die Einrichtung des Webspace in der Regel problemlos verläuft, können im Betrieb typische Fehler auftreten.
Die folgenden Hinweise helfen dir, die häufigsten Probleme in dieser frühen Phase zu erkennen und zu beheben, ohne dass du tief in die Technik einsteigen musst.
Webspace ist nicht erreichbar
Wenn beim Aufruf der Subdomain im Browser nichts geladen wird oder eine Fehlermeldung erscheint, prüfe zuerst, ob der Webspace-Container in Proxmox gestartet ist.
Öffne dazu das Proxmox-Dashboard und starte den Container gegebenenfalls neu.
Lade danach im Browser die interne IP-Adresse, zum Beispiel:
http://192.168.x.x
Erscheint die Apache-Standardseite, läuft der Container.
Lädt die Seite trotzdem nicht über die Subdomain, liegt das Problem meistens am Proxy-Eintrag im Nginx Proxy Manager.
Öffne den Eintrag und prüfe, ob die korrekte IP-Adresse des Containers und Port 80 eingetragen sind und ob das SSL-Zertifikat aktiv ist.
Wenn du den Webspace von außerhalb des Heimnetzes erreichen möchtest, kontrolliere außerdem, ob im Router die Ports 80 und 443 auf den NPM-Host weitergeleitet werden.
👉 Screenshot geeignet: NPM – Proxy-Host-Eintrag mit IP und Port
Browser meldet „Verbindung nicht sicher“
Zeigt der Browser trotz Proxy-Eintrag ein Warnsymbol oder die Meldung über eine unsichere Verbindung, liegt das meist am SSL-Zertifikat.
Öffne den NPM, wechsle in den Eintrag für den Webspace und dort in den Reiter SSL.
Prüfe, ob die Option „Request a new SSL Certificate“ aktiviert ist und fordere das Zertifikat bei Bedarf erneut an.
Achte darauf, dass die Ports 80 und 443 im Router freigegeben sind, damit Let’s Encrypt die Zertifikate ausstellen und verlängern kann.
👉 Screenshot geeignet: NPM – Reiter SSL mit aktiver Zertifikatserneuerung
Testseite oder PHP-Info wird nicht angezeigt
Wenn die PHP-Info-Seite oder deine erste HTML-Seite nicht geladen wird, kontrolliere zunächst, ob die Datei im Verzeichnis
/var/www/html
liegt und korrekt benannt ist – die Startseite muss entweder index.html oder index.php heißen.
Prüfe außerdem, ob der Apache-Webserver läuft:
systemctl status apache2
Falls der Dienst gestoppt ist, starte ihn mit:
systemctl start apache2
Leere anschließend den Browser-Cache oder lade die Seite mit Strg + F5 neu.
Neue Dateien erscheinen nicht im Browser
Wenn du neue Inhalte hochlädst, aber weiterhin die alte Seite angezeigt wird, liegt das fast immer am Cache.
Leere den Browser-Cache oder lade die Seite mit Strg + F5 neu.
Kontrolliere zusätzlich, ob die hochgeladene Startdatei index.html oder index.php heißt, da Apache diese als Standardseite erwartet.
Wenn du per SFTP hochlädst, prüfe auch die Dateirechte im Zielverzeichnis /var/www/html.
Probleme mit DynDNS oder Subdomain
Wenn der Webspace unter der Haupt-Domain nicht erreichbar ist, prüfe beim Domain-Anbieter, ob der A-Record (IPv4) und gegebenenfalls der AAAA-Record (IPv6) korrekt auf den DynDNS-Namen aus Kapitel 4 zeigen.
Es kann bis zu 24 Stunden dauern, bis DNS-Änderungen weltweit aktiv sind.
Wenn du eine automatische Aktualisierung benötigst, findest du die Anleitung dazu in Kapitel 3 Premium.
Updates schlagen fehl
Bei der Aktualisierung des Containers mit
apt update && apt upgrade
können manchmal Fehlermeldungen zu defekten Paketen erscheinen.
Diese lassen sich in den meisten Fällen mit folgendem Befehl beheben:
apt --fix-broken install
Wiederhole anschließend das Upgrade:
apt upgrade -y
Falls ein einzelnes Modul Probleme verursacht, prüfe die Meldung und entferne das betroffene Paket vorübergehend.
Tip
Führe mindestens einmal im Monat ein Update des Containers durch, damit Apache, PHP und alle installierten Module aktuell und sicher bleiben.
Abschluss
Mit diesem Kapitel hast du einen vollwertigen Webspace in dein UCC integriert – inklusive Webserver, PHP-Unterstützung, sicherem Zugriff über den Nginx Proxy Manager und optionaler Verbindung mit deiner eigenen Domain.
Damit steht dir nun eine stabile und vielseitige Plattform zur Verfügung, die für nahezu jedes Webprojekt genutzt werden kann.
Du hast gelernt, wie du das Grundsystem des Containers vorbereitest, den LAMP-Stack installierst und mit einer Testseite überprüfst, dass der Webserver korrekt arbeitet.
Durch die Einbindung in den Nginx Proxy Manager ist der Webspace nicht nur über eine Subdomain, sondern auch mit einem gültigen SSL-Zertifikat erreichbar.
Falls du deine Haupt-Domain (TLD) nutzen möchtest, kannst du diese per DynDNS auf den Webspace leiten und bei Bedarf mit Hilfe von Kapitel 3 Premium die automatische Aktualisierung der DNS-Einträge einrichten.
Der Webspace ist nun so vorbereitet, dass du sofort eigene statische Inhalte veröffentlichen kannst – zum Beispiel eine einfache Startseite oder eine Informationsseite für dein Projekt.
Für dynamische Anwendungen wie Blogs, Online-Shops oder komplexe CMS-Lösungen findest du im Premium-Kapitel die passenden Anleitungen zur Installation, Konfiguration und Absicherung.
Tip
Lösche die PHP-Info-Testseite, sobald du den Funktionstest abgeschlossen hast, um keine internen Serverinformationen nach außen preiszugeben.
Important
Führe regelmäßig Updates aus, um den Webserver und alle installierten Pakete auf dem aktuellen Stand zu halten:
apt update && apt upgrade -y
Auch alle später von dir installierten Anwendungen und deren Erweiterungen benötigen regelmäßige Aktualisierungen, um sicher und stabil zu bleiben.
Mit dieser Basis ist dein UCC bereit für eigene Webauftritte – von der einfachen statischen Webseite bis hin zu professionellen Projekten, die du im Premium-Kapitel einrichtest.
Dort zeigen wir dir auch, wie du den Webspace um Git-basiertes Deployment, Staging-Umgebungen, optimierte Sicherheitskonzepte und Backup-Strategien erweiterst.
So kannst du den Webspace schrittweise zu einer leistungsfähigen Plattform für professionelle Projekte ausbauen.