> For the complete documentation index, see [llms.txt](https://docs.instantroot.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.instantroot.de/kvm-server/windows/webserver-installieren-unter-windows.md).

# Webserver installieren unter Windows

In diesem Artikel erklären wir dir, wie du auf einem Windows KVM-Server einen einfachen Webserver einrichtest.

Ein Webserver stellt Webseiten über das Internet bereit. Unter Windows wird dafür häufig **IIS** verwendet. IIS steht für **Internet Information Services** und ist der Webserver von Microsoft.

### Voraussetzungen

Bevor du beginnst, benötigst du:

* einen Windows KVM-Server
* Zugriff per Remote Desktop
* Administratorrechte
* eine öffentliche IP-Adresse
* eine Domain, falls deine Webseite über einen Namen erreichbar sein soll

Für den Anfang reicht auch die IP-Adresse deines Servers.

### Was ist IIS?

IIS ist der Webserver von Windows Server.

Mit IIS kannst du Webseiten, Webanwendungen und statische Dateien bereitstellen.

Typische Inhalte sind:

* HTML-Dateien
* CSS-Dateien
* JavaScript-Dateien
* Bilder
* Downloads
* ASP.NET-Anwendungen
* PHP-Anwendungen mit zusätzlicher Einrichtung

Wenn du nur eine einfache Webseite bereitstellen möchtest, reicht IIS bereits aus.

### Verbindung zum Server herstellen

Verbinde dich zuerst per Remote Desktop mit deinem Windows Server.

1. Öffne auf deinem Computer die Remote-Desktop-Verbindung.
2. Gib die IP-Adresse deines Servers ein.
3. Melde dich mit dem Administrator-Benutzer an.
4. Warte, bis der Windows Desktop geladen ist.

### IIS über den Server-Manager installieren

IIS wird über den Server-Manager installiert.

1. Öffne den **Server-Manager**.
2. Klicke oben rechts auf **Verwalten**.
3. Wähle **Rollen und Features hinzufügen**.
4. Klicke im Assistenten auf **Weiter**.
5. Wähle **Rollenbasierte oder featurebasierte Installation**.
6. Wähle deinen Server aus.
7. Aktiviere die Rolle **Webserver (IIS)**.
8. Bestätige die zusätzlichen Features.
9. Klicke auf **Weiter**.
10. Übernimm die Standardauswahl.
11. Klicke auf **Installieren**.
12. Warte, bis die Installation abgeschlossen ist.

Nach der Installation ist IIS einsatzbereit.

### Installation prüfen

Öffne auf dem Server einen Browser und rufe folgende Adresse auf:

`http://localhost`

Wenn IIS korrekt installiert wurde, erscheint die Standardseite von IIS.

Du kannst die Seite auch von deinem eigenen Computer aus testen.

Rufe dazu im Browser die IP-Adresse deines Servers auf:

`http://SERVER-IP`

Beispiel:

`http://123.123.123.123`

Wenn die Standardseite angezeigt wird, ist der Webserver erreichbar.

### Port 80 in der Windows Firewall freigeben

Damit deine Webseite von außen erreichbar ist, muss der HTTP-Port geöffnet sein.

HTTP nutzt standardmäßig Port `80`.

1. Öffne die **Windows Defender Firewall mit erweiterter Sicherheit**.
2. Klicke links auf **Eingehende Regeln**.
3. Klicke rechts auf **Neue Regel**.
4. Wähle **Port**.
5. Wähle **TCP**.
6. Trage bei bestimmten lokalen Ports `80` ein.
7. Wähle **Verbindung zulassen**.
8. Wähle die passenden Profile aus.
9. Vergib einen Namen, zum Beispiel `HTTP Port 80`.
10. Speichere die Regel.

Danach sollte der Webserver von außen über HTTP erreichbar sein.

### HTTPS vorbereiten

Für verschlüsselte Webseiten wird HTTPS verwendet.

HTTPS nutzt standardmäßig Port `443`.

Wenn du später ein SSL-Zertifikat einrichten möchtest, solltest du auch Port `443` öffnen.

1. Öffne die **Windows Defender Firewall mit erweiterter Sicherheit**.
2. Erstelle eine neue eingehende Regel.
3. Wähle **Port**.
4. Wähle **TCP**.
5. Trage `443` ein.
6. Erlaube die Verbindung.
7. Vergib einen Namen, zum Beispiel `HTTPS Port 443`.

### Standard-Webverzeichnis

Die Standard-Webseite von IIS liegt normalerweise in folgendem Ordner:

`C:\inetpub\wwwroot`

Dateien, die du dort ablegst, können über den Webserver aufgerufen werden.

Beispiel:

Wenn du eine Datei namens `index.html` in diesen Ordner legst, wird sie beim Aufruf deiner Webseite angezeigt.

### Eigene Testseite erstellen

Erstelle eine einfache Datei zum Testen.

1. Öffne den Ordner `C:\inetpub\wwwroot`.
2. Lösche bei Bedarf die vorhandene Standarddatei.
3. Erstelle eine neue Datei mit dem Namen `index.html`.
4. Öffne die Datei mit einem Texteditor.
5. Füge folgenden Inhalt ein:

`<h1>Meine Webseite funktioniert</h1>`

6. Speichere die Datei.
7. Rufe deine Server-IP im Browser auf.

Beispiel:

`http://123.123.123.123`

Wenn der Text angezeigt wird, funktioniert deine Webseite.

### Eigene Webseite hochladen

Du kannst deine Webseite direkt in den Ordner `C:\inetpub\wwwroot` kopieren.

Typische Dateien sind:

* `index.html`
* `style.css`
* `script.js`
* Bilder
* Unterordner
* Downloads

Achte darauf, dass eine Startdatei vorhanden ist.

Häufige Startdateien sind:

* `index.html`
* `index.htm`
* `default.aspx`

Ohne Startdatei kann IIS möglicherweise keine Webseite anzeigen.

### Domain auf den Webserver zeigen lassen

Wenn deine Webseite nicht nur über die IP-Adresse erreichbar sein soll, kannst du eine Domain verwenden.

Dafür benötigst du einen DNS-Eintrag.

Für eine IPv4-Adresse nutzt du einen **A-Record**.

Beispiel:

| Typ | Name  | Ziel              |
| --- | ----- | ----------------- |
| A   | `@`   | `123.123.123.123` |
| A   | `www` | `123.123.123.123` |

`@` steht für die Hauptdomain.

Beispiel:

`deinedomain.de`

`www` steht für die Subdomain.

Beispiel:

`www.deinedomain.de`

DNS-Änderungen können einige Minuten bis mehrere Stunden dauern.

### Webseite mit Domain in IIS verbinden

Wenn du mehrere Webseiten oder Domains auf einem Server betreiben möchtest, solltest du in IIS eigene Websites anlegen.

1. Öffne den **Internetinformationsdienste-Manager**.
2. Öffne links deinen Server.
3. Klicke auf **Sites**.
4. Klicke rechts auf **Website hinzufügen**.
5. Gib einen Namen für die Website ein.
6. Wähle den physischen Pfad zu deiner Webseite.
7. Wähle als Typ `http`.
8. Trage bei Port `80` ein.
9. Trage bei Hostname deine Domain ein, zum Beispiel `deinedomain.de`.
10. Speichere die Website.

Wenn du auch `www.deinedomain.de` nutzen möchtest, kannst du eine weitere Bindung hinzufügen.

### Bindings verstehen

Bindings legen fest, unter welcher Adresse eine Website erreichbar ist.

Ein Binding besteht meistens aus:

* Protokoll
* IP-Adresse
* Port
* Hostname

Beispiel:

| Protokoll | Port  | Hostname             |
| --------- | ----- | -------------------- |
| HTTP      | `80`  | `deinedomain.de`     |
| HTTP      | `80`  | `www.deinedomain.de` |
| HTTPS     | `443` | `deinedomain.de`     |

Wenn mehrere Webseiten denselben Server nutzen, ist der Hostname besonders wichtig. IIS erkennt darüber, welche Webseite ausgeliefert werden soll.

### SSL-Zertifikat einrichten

Für HTTPS benötigst du ein SSL-Zertifikat.

Unter Windows und IIS kannst du dafür zum Beispiel ein Zertifikat einer Zertifizierungsstelle verwenden oder Let's Encrypt mit einem passenden Tool einrichten.

Eine häufig genutzte Lösung für Let's Encrypt unter Windows ist ein ACME-Client.

Nach der Ausstellung des Zertifikats muss dieses in IIS als HTTPS-Binding eingebunden werden.

### Warum HTTPS wichtig ist

HTTPS verschlüsselt die Verbindung zwischen Besucher und Webseite.

Das ist wichtig für:

* Loginbereiche
* Formulare
* Kundendaten
* Adminbereiche
* Suchmaschinenbewertung
* Vertrauen der Besucher

Moderne Browser markieren Webseiten ohne HTTPS teilweise als unsicher.

### PHP unter IIS verwenden

IIS kann statische Webseiten und ASP.NET-Anwendungen direkt bereitstellen.

Für PHP brauchst du zusätzliche Komponenten.

Grundsätzlich benötigst du:

* PHP für Windows
* FastCGI-Unterstützung in IIS
* Handler-Zuordnung für PHP-Dateien
* passende PHP-Konfiguration

Wenn du PHP-Anwendungen wie WordPress nutzen möchtest, brauchst du zusätzlich meistens eine Datenbank wie MySQL oder MariaDB.

### Datenbank für Webanwendungen

Viele Webanwendungen benötigen eine Datenbank.

Beispiele:

* WordPress
* Foren
* Shopsysteme
* CMS-Systeme
* eigene Anwendungen

Unter Windows kannst du zum Beispiel MySQL oder MariaDB installieren.

Achte darauf, die Datenbank nicht unnötig öffentlich erreichbar zu machen. In den meisten Fällen sollte die Datenbank nur lokal vom Server erreichbar sein.

### Rechte im Webverzeichnis

IIS benötigt Leserechte auf die Dateien deiner Webseite.

Wenn Dateien nicht angezeigt werden, kann es an fehlenden Berechtigungen liegen.

Prüfe die Rechte des Ordners, in dem deine Webseite liegt.

Der IIS-Benutzer oder Anwendungspool muss die benötigten Rechte haben.

Für einfache statische Webseiten reichen in der Regel Leserechte.

### Häufige Probleme

#### Webseite ist nicht erreichbar

Prüfe:

* Ist IIS installiert?
* Läuft die Website in IIS?
* Ist Port `80` in der Firewall geöffnet?
* Ist die IP-Adresse korrekt?
* Zeigt die Domain auf die richtige IP-Adresse?
* Ist der richtige Hostname im Binding eingetragen?

#### IIS-Standardseite wird angezeigt

Wenn die IIS-Standardseite angezeigt wird, funktioniert der Webserver grundsätzlich.

Mögliche Ursachen:

* deine Dateien liegen im falschen Ordner
* die falsche Website ist aktiv
* der Hostname zeigt auf die Standardseite
* es fehlt eine eigene `index.html`
* Bindings sind nicht korrekt eingerichtet

#### 403 Forbidden

Ein 403-Fehler bedeutet, dass der Zugriff verweigert wurde.

Mögliche Ursachen:

* keine Startdatei vorhanden
* Dateiberechtigungen fehlen
* Directory Browsing ist deaktiviert
* IIS darf auf den Ordner nicht zugreifen

Prüfe, ob eine Startdatei wie `index.html` vorhanden ist.

#### 404 Not Found

Ein 404-Fehler bedeutet, dass die angeforderte Datei nicht gefunden wurde.

Mögliche Ursachen:

* Datei existiert nicht
* falscher Pfad
* falscher Dateiname
* Tippfehler in der URL
* Website zeigt auf den falschen Ordner

#### Port 80 ist nicht erreichbar

Prüfe:

* Windows Firewall
* IIS läuft
* Website ist gestartet
* Port wird von einem anderen Dienst blockiert
* Server-IP ist korrekt
* DNS zeigt richtig auf den Server

#### Domain zeigt nicht auf den Server

Prüfe deine DNS-Einträge.

Für IPv4 brauchst du einen A-Record auf die IP-Adresse deines Servers.

Beispiel:

| Typ | Name  | Ziel              |
| --- | ----- | ----------------- |
| A   | `@`   | `123.123.123.123` |
| A   | `www` | `123.123.123.123` |

Warte nach DNS-Änderungen etwas ab. DNS-Änderungen sind nicht immer sofort aktiv.

#### HTTPS funktioniert nicht

Prüfe:

* Ist Port `443` geöffnet?
* Ist ein SSL-Zertifikat installiert?
* Gibt es ein HTTPS-Binding?
* Stimmt der Hostname?
* Ist das Zertifikat noch gültig?
* Passt das Zertifikat zur Domain?

### Sicherheit

Ein Webserver ist öffentlich erreichbar und sollte regelmäßig gepflegt werden.

Achte besonders auf:

* Windows Updates
* aktuelle Webanwendungen
* sichere Passwörter
* HTTPS
* korrekte Dateirechte
* regelmäßige Backups
* nicht öffentlich erreichbare Datenbanken
* entfernte Testdateien
* keine alten Installationsdateien im Webverzeichnis

Wenn du CMS-Systeme wie WordPress verwendest, halte auch Plugins und Themes aktuell.
