Zum Inhalt

Website-Verwaltung (Sites)

Die Website-Verwaltung ermöglicht die vollständige Konfiguration von Websites, einschließlich PHP-Einstellungen, Nginx-Direktiven, Preview-Domains, Zugriffsbeschränkungen und Deployment-Optionen.


Übersicht

Die Site-Tabelle zeigt alle konfigurierten Websites mit Thumbnail-Vorschau, Status und Konfigurationsdetails.

Angezeigte Spalten

Spalte Beschreibung
Vorschau Thumbnail-Bild der Website
Domain Primäre Domain der Website
Kunde Zugeordneter Kunde
Linux-Benutzer System-Benutzername
PHP-Version Aktive PHP-Version
Status Aktiv oder Deaktiviert
Document Root Pfad zum Web-Verzeichnis

Website erstellen

  1. Klicken Sie auf Website erstellen
  2. Füllen Sie das Formular aus:
Feld Pflicht Beschreibung
Abonnement Ja Zugehöriges Hosting-Abonnement
Domain Ja Domain der neuen Website
PHP-Version Ja PHP-Version (z. B. 8.1, 8.2, 8.3, 8.4)
Document Root Nein Unterverzeichnis (Standard: Domain-Root)
  1. Klicken Sie auf Erstellen

Das System konfiguriert automatisch:

  • Nginx-Vhost mit Sicherheitsrichtlinien
  • PHP-FPM-Pool unter dem Linux-Benutzer
  • SSL-Zertifikat via Let's Encrypt (falls aktiviert)
  • open_basedir-Beschränkung
  • Upload-Verzeichnis-Schutz (PHP-Execution blockiert)

Website bearbeiten

Klicken Sie auf eine Website, um die Detailkonfiguration zu öffnen. Die Bearbeitung ist in mehrere Tabs aufgeteilt:

Tab: Allgemein

Feld Beschreibung
PHP-Version PHP-Version wechseln
PHP-Handler FPM oder CGI
Document Root Web-Verzeichnis anpassen
Status Website aktivieren/deaktivieren

Tab: PHP-Konfiguration

Hier können PHP-Einstellungen pro Website angepasst werden:

Einstellung Beschreibung
memory_limit Maximaler Arbeitsspeicher pro PHP-Prozess
max_execution_time Maximale Ausführungszeit in Sekunden
max_input_time Maximale Eingabezeit
post_max_size Maximale POST-Größe
upload_max_filesize Maximale Upload-Dateigröße
max_input_vars Maximale Anzahl Eingabevariablen
max_file_uploads Maximale Anzahl gleichzeitiger Uploads
display_errors Fehleranzeige (nur für Entwicklung!)
error_reporting Fehler-Reporting-Level
session.gc_maxlifetime Session-Lebensdauer
opcache.enable OPcache aktivieren
open_basedir Pfadbeschränkung
disable_functions Deaktivierte PHP-Funktionen

disable_functions

Die Standard-Sicherheitseinstellungen deaktivieren gefährliche Funktionen wie exec, passthru, shell_exec, system, popen und proc_open. Ändern Sie diese nur, wenn Sie die Sicherheitsauswirkungen verstehen.

Tab: Nginx-Direktiven

Eigene Nginx-Konfigurationsanweisungen können im Textfeld hinzugefügt werden. Diese werden in den server-Block der Vhost-Konfiguration eingefügt.

Beispiele:

# Zusätzliche Header
add_header X-Frame-Options "SAMEORIGIN";

# Umleitungsregel
location /old-page {
    return 301 /new-page;
}

Syntax-Prüfung

Das System validiert die Nginx-Konfiguration vor dem Speichern. Bei Syntaxfehlern wird die Änderung abgelehnt.

Tab: Performance & Sicherheit

Web Application Firewall (ModSecurity)

Die WAF kann pro Website aktiviert werden. Sie nutzt ModSecurity mit dem OWASP Core Rule Set (CRS):

  1. Öffnen Sie die Website-Details
  2. Navigieren Sie zum Tab Performance & Sicherheit
  3. Scrollen Sie zur Sektion Web Application Firewall (ModSecurity)
  4. Aktivieren Sie den Schalter ModSecurity WAF aktivieren
  5. Klicken Sie auf Speichern

Was wird geschützt?

Die WAF schützt gegen SQL-Injection, XSS (Cross-Site Scripting), Remote File Inclusion und viele weitere OWASP Top-10-Angriffe.

False Positives

Bei manchen Webanwendungen kann die WAF legitime Anfragen blockieren (False Positives). Deaktivieren Sie die WAF, wenn die Anwendung nach der Aktivierung nicht mehr korrekt funktioniert.

Voraussetzung: Das Paket libnginx-mod-http-modsecurity und modsecurity-crs müssen auf dem Server installiert sein. Bei Neuinstallationen wird dies automatisch eingerichtet.

Tab: Preview-Domain

Jede Website erhält eine Vorschau-URL, über die die Website erreichbar ist, bevor die DNS-Einstellungen der eigentlichen Domain konfiguriert sind.

  • Format: <subdomain>.preview.<panel-domain>
  • Kann aktiviert oder deaktiviert werden
  • Nützlich für die Entwicklung und Migration

Tab: Zugriffsbeschränkungen

  • IP-Beschränkung: Zugriff nur von bestimmten IP-Adressen erlauben
  • Passwortschutz: Verzeichnisse per HTTP-Authentifizierung schützen

Tab: Logs

Zugriff auf die letzten Einträge der Website-Logs:

  • Access-Log — Zugriffsprotokolle
  • Error-Log — Fehlerprotokolle

Die Logs können direkt im Browser eingesehen oder heruntergeladen werden.


Website aktivieren / deaktivieren

  • Klicken Sie auf den Status-Schalter in der Detailansicht
  • Deaktivierte Websites zeigen eine Standard-Fehlerseite
  • Die Nginx-Konfiguration wird automatisch aktualisiert

Website löschen

  1. Klicken Sie auf das Löschen-Symbol
  2. Bestätigen Sie die Löschung

Dateien beachten

Beim Löschen einer Website werden die Nginx-Konfiguration und der PHP-FPM-Pool entfernt. Die Website-Dateien im Home-Verzeichnis bleiben optional erhalten.


Composer-Verwaltung

Für Websites mit PHP-Projekten steht Composer direkt im Panel zur Verfügung:

  1. Öffnen Sie die Website-Details
  2. Navigieren Sie zum Tab Composer
  3. Verfügbare Aktionen:
  4. composer install — Abhängigkeiten installieren
  5. composer update — Abhängigkeiten aktualisieren
  6. Die Ausgabe wird in Echtzeit angezeigt

Git-Deployment

Für automatisiertes Deployment via Git:

  1. Öffnen Sie die Website-Details
  2. Navigieren Sie zum Tab Git
  3. Konfigurieren Sie:
  4. Repository-URL — HTTPS oder SSH
  5. Branch — Zu deployender Branch (z. B. main)
  6. Auto-Deploy — Automatisches Deployment bei Push (Webhook)
  7. Deploy-Key — SSH-Schlüssel für private Repositories

  8. Klicken Sie auf Jetzt deployen für manuelles Deployment

Deploy-Hooks

Nach dem Git-Pull können automatisch Befehle ausgeführt werden (z. B. composer install, npm run build).


Fehlerseiten (Error Documents)

Eigene Fehlerseiten können für die Standard-HTTP-Fehlercodes konfiguriert werden:

  • 403 — Zugriff verweigert
  • 404 — Seite nicht gefunden
  • 500 — Interner Serverfehler
  • 502 — Bad Gateway
  • 503 — Dienst nicht verfügbar