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¶
- Klicken Sie auf Website erstellen
- 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) |
- 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):
- Öffnen Sie die Website-Details
- Navigieren Sie zum Tab Performance & Sicherheit
- Scrollen Sie zur Sektion Web Application Firewall (ModSecurity)
- Aktivieren Sie den Schalter ModSecurity WAF aktivieren
- 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¶
- Klicken Sie auf das Löschen-Symbol
- 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:
- Öffnen Sie die Website-Details
- Navigieren Sie zum Tab Composer
- Verfügbare Aktionen:
- composer install — Abhängigkeiten installieren
- composer update — Abhängigkeiten aktualisieren
- Die Ausgabe wird in Echtzeit angezeigt
Git-Deployment¶
Für automatisiertes Deployment via Git:
- Öffnen Sie die Website-Details
- Navigieren Sie zum Tab Git
- Konfigurieren Sie:
- Repository-URL — HTTPS oder SSH
- Branch — Zu deployender Branch (z. B.
main) - Auto-Deploy — Automatisches Deployment bei Push (Webhook)
-
Deploy-Key — SSH-Schlüssel für private Repositories
-
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