15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
30.10.2024
6 +2

Website-Stammverzeichnis: Vollständiger Leitfaden zu Speicherort, Struktur und Best Practices

Das Verständnis des Stammverzeichnisses Ihrer Website ist eine der grundlegendsten Fähigkeiten, die jeder Webentwickler, Systemadministrator oder Website-Betreiber beherrschen muss. Ob Sie eine fehlerhafte Seite beheben, eine neue Anwendung bereitstellen oder Ihren Server gegen Angriffe absichern – alles führt auf diesen einen kritischen Ordner zurück. In diesem umfassenden Leitfaden erklären wir genau, was das Stammverzeichnis ist, wo Sie es in verschiedenen Umgebungen finden, wie Sie es absichern und welche professionellen Best Practices Websites effizient und skalierbar am Laufen halten.

Was ist das Stammverzeichnis einer Website?

Das Stammverzeichnis ist der oberste Ordner auf einem Webserver, von dem aus alle Dateien und Unterverzeichnisse einer Website bereitgestellt werden. Stellen Sie es sich als die „Heimatbasis” Ihrer Website vor – wenn ein Besucher Ihren Domainnamen (z. B. www.example.com) in seinen Browser eingibt, sucht der Webserver sofort im Stammverzeichnis nach der passenden Datei, die zurückgegeben werden soll, typischerweise index.html oder index.php.

Alles, was Ihre Website zum Funktionieren benötigt, befindet sich hier oder in Unterverzeichnissen darunter: HTML-Markup, CSS-Stylesheets, JavaScript-Dateien, Bilder, Video-Assets, PHP-Skripte und dynamisch generierte Inhalte. Ohne ein ordnungsgemäß konfiguriertes Stammverzeichnis hat Ihr Webserver keinen Ausgangspunkt und kann den Benutzern keine Inhalte bereitstellen.

Es ist wichtig, das Web-Stammverzeichnis (den über HTTP/HTTPS zugänglichen Ordner) vom Dateisystem-Stammverzeichnis des Servers (dem /-Verzeichnis auf Linux-Systemen) zu unterscheiden. Dies sind völlig unterschiedliche Konzepte. Das Web-Stammverzeichnis ist ein Unterverzeichnis innerhalb des Server-Dateisystems, das bewusst eingeschränkt ist, um den öffentlichen Zugriff zu begrenzen.

Gängige Namen für das Stammverzeichnis

Der genaue Name und Pfad des Stammverzeichnisses variiert je nach Hosting-Umgebung, Betriebssystem und Webserver-Software. Hier sind die am häufigsten anzutreffenden Konfigurationen:

UmgebungStandard-Stammverzeichnispfad
cPanel / Shared Hosting/home/username/public_html/
Plesk/var/www/vhosts/domain.com/httpdocs/
Apache auf Ubuntu/Debian/var/www/html/
Apache auf CentOS/RHEL/var/www/html/
Nginx (Standard)/usr/share/nginx/html/ oder /var/www/html/
XAMPP (Windows/macOS)C:xampphtdocs oder /Applications/XAMPP/htdocs/
MAMP (macOS)/Applications/MAMP/htdocs/
Benutzerdefinierte VPS-KonfigurationIn der virtuellen Host-Konfigurationsdatei definiert

In einer VPS Hosting-Umgebung ist der Stammverzeichnispfad vollständig anpassbar. Sie definieren ihn selbst im Apache-VirtualHost-Block oder im Nginx-server-Block und haben damit die vollständige Kontrolle über die Dateistruktur Ihres Servers.

Der Zweck des Stammverzeichnisses

Das Stammverzeichnis erfüllt mehrere miteinander verbundene Funktionen, die für den Betrieb einer Website unerlässlich sind:

1. Zentrale Dateispeicherung

Jede Datei, aus der Ihre Website besteht – von der Homepage-HTML bis zum kleinsten Symbol – wird im Stammverzeichnis oder einem seiner Unterverzeichnisse gespeichert. Der Webserver liest ausschließlich von diesem Speicherort, wenn er auf HTTP-Anfragen antwortet.

2. Einstiegspunkt für die Webserver-Konfiguration

Webserver wie Apache und Nginx sind explizit so konfiguriert, dass sie auf das Stammverzeichnis als DocumentRoot-Direktive (Apache) oder root-Direktive (Nginx) verweisen. Diese Konfiguration teilt dem Server mit: „Beginne hier, wenn du nach bereitzustellenden Dateien suchst.”

# Apache VirtualHost example
<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/html/example.com/public
</VirtualHost>
# Nginx server block example
server {
    listen 80;
    server_name www.example.com;
    root /var/www/html/example.com/public;
    index index.php index.html;
}

3. Strukturelle Organisation

Das Stammverzeichnis fungiert als übergeordneter Container für alle Unterverzeichnisse, die den Inhalt Ihrer Website logisch organisieren – Assets von Skripten trennen, Uploads von Kerndateien und öffentliche Inhalte von privaten Konfigurationen.

4. Sicherheitsgrenze

Das Stammverzeichnis definiert die Grenze dessen, was öffentlich zugänglich ist. Dateien, die *außerhalb* des Stammverzeichnisses abgelegt werden, sind über einen Webbrowser nicht zugänglich – ein kritisches Sicherheitsprinzip zum Schutz sensibler Konfigurationsdateien.

So finden Sie Ihr Stammverzeichnis

Methode 1: Verwendung von cPanel (Shared Hosting)

cPanel ist das am weitesten verbreitete Kontrollpanel für Shared Web Hosting-Umgebungen. So finden Sie Ihr Stammverzeichnis:

  1. Melden Sie sich bei Ihrem cPanel-Konto unter yourdomain.com/cpanel oder über das Dashboard Ihres Hosting-Anbieters an.
  2. Navigieren Sie zu Dateien → Dateimanager.
  3. Suchen Sie im linken Verzeichnisbaum nach dem Ordner mit dem Namen public_html – dies ist Ihr Web-Stammverzeichnis.
  4. Jede Datei, die direkt in public_html abgelegt wird, ist unter der Root-URL Ihrer Domain zugänglich (z. B. example.com/filename.html).

Sie können das Dokumenten-Stammverzeichnis auch überprüfen, indem Sie in cPanel zu Domains → Domains oder Addon-Domains navigieren, wo der Dokumenten-Stammverzeichnispfad für jede Domain explizit aufgeführt ist.

Methode 2: Verwendung von FTP oder SFTP (FileZilla)

FTP/SFTP-Zugriff funktioniert in nahezu allen Hosting-Umgebungen:

  1. Öffnen Sie FileZilla (oder Ihren bevorzugten FTP-Client).
  2. Geben Sie Ihren Hostnamen, Benutzernamen, Ihr Passwort und den Port ein (21 für FTP, 22 für SFTP – bevorzugen Sie aus Sicherheitsgründen immer SFTP).
  3. Nach der Verbindung landen Sie in Ihrem Home-Verzeichnis. Suchen Sie nach Ordnern mit den Namen public_html, www, htdocs oder httpdocs.
  4. Navigieren Sie in diesen Ordner – dies ist Ihr Stammverzeichnis.
  5. Der in der Adressleiste von FileZilla angezeigte Remote-Pfad bestätigt den genauen Serverpfad.

> Sicherheitshinweis: Verwenden Sie immer SFTP anstelle von einfachem FTP. SFTP verschlüsselt Ihre Anmeldedaten und Dateiübertragungen und verhindert so das Abfangen.

Methode 3: Verwendung von SSH (VPS und Dedicated Server)

SSH-Zugriff ist die leistungsstärkste Methode und ist auf Dedicated Servers und VPS-Umgebungen gängige Praxis:

# Connect to your server
ssh username@your-server-ip

# Navigate to the default Apache/Nginx root
cd /var/www/html

# List contents to confirm
ls -la

# Find the document root from Apache configuration
grep -r "DocumentRoot" /etc/apache2/sites-enabled/

# Find the root from Nginx configuration
grep -r "root " /etc/nginx/sites-enabled/

Wenn Sie eine benutzerdefinierte Konfiguration verwenden, ist das Dokumenten-Stammverzeichnis in Ihrer virtuellen Host-Datei definiert. Die Überprüfung der aktiven Konfiguration ist die zuverlässigste Methode, um den genauen Pfad zu bestätigen.

Methode 4: Verwendung eines Kontrollpanels auf VPS (cPanel, DirectAdmin, Plesk)

Wenn Sie einen VPS mit cPanel oder einem anderen Panel betreiben, funktioniert die Oberfläche ähnlich wie beim Shared Hosting. Das Dokumenten-Stammverzeichnis wird typischerweise im Domain-Verwaltungsbereich angezeigt und ist standardmäßig /home/username/public_html/ für die primäre Domain.

Stammverzeichnisstruktur: Best Practices

Ein gut organisiertes Stammverzeichnis ist das Merkmal einer professionell verwalteten Website. Hier ist eine empfohlene Struktur für eine typische Webanwendung:

/public_html/          ← Web root (publicly accessible)
├── index.php          ← Entry point / homepage
├── .htaccess          ← Apache configuration (rewrites, security)
├── robots.txt         ← Search engine crawl instructions
├── sitemap.xml        ← XML sitemap for SEO
├── assets/
│   ├── css/           ← Stylesheets
│   ├── js/            ← JavaScript files
│   └── images/        ← Image files
├── uploads/           ← User-uploaded content
├── includes/          ← PHP includes (header, footer, functions)
└── blog/              ← Blog section subdirectory

/home/username/        ← One level ABOVE the web root (private)
├── config/
│   ├── .env           ← Environment variables (NOT publicly accessible)
│   └── db-config.php  ← Database credentials (NOT publicly accessible)
└── backups/           ← Backup archives

Sensible Dateien wie .env, Datenbank-Anmeldedaten und API-Schlüssel sollten niemals im Web-Stammverzeichnis abgelegt werden. Wenn Sie sie ein Verzeichnis darüber speichern, wird sichergestellt, dass sie über HTTP vollständig unzugänglich sind.

Sicherheits-Best-Practices für das Stammverzeichnis

Sicherheitsfehlkonfigurationen auf Stammverzeichnisebene gehören zu den häufigsten Ursachen für Website-Sicherheitsverletzungen. Befolgen Sie diese Praktiken konsequent:

1. Korrekte Dateiberechtigungen festlegen

Falsche Berechtigungen sind eine häufige Ursache sowohl für Sicherheitslücken als auch für Serverfehler:

# Set correct permissions for files (read/write for owner, read-only for others)
find /var/www/html -type f -exec chmod 644 {} ;

# Set correct permissions for directories (read/write/execute for owner, read/execute for others)
find /var/www/html -type d -exec chmod 755 {} ;

# Set ownership to the web server user
chown -R www-data:www-data /var/www/html
RessourcentypEmpfohlene BerechtigungErklärung
Reguläre Dateien644Eigentümer: Lesen+Schreiben; Gruppe/Andere: Nur Lesen
Verzeichnisse755Eigentümer: Vollzugriff; Gruppe/Andere: Lesen+Ausführen
Konfigurationsdateien600Eigentümer: Nur Lesen+Schreiben; kein Zugriff für andere
Ausführbare Skripte750Eigentümer: Vollzugriff; Gruppe: Lesen+Ausführen; Andere: kein Zugriff

2. Sensible Dateien mit .htaccess schützen (Apache)

Verwenden Sie .htaccess-Regeln, um den direkten Zugriff auf sensible Dateien zu blockieren:

# Block access to .env files
<Files ".env">
    Order allow,deny
    Deny from all
</Files>

# Block access to configuration files
<FilesMatch ".(ini|log|conf|sql|bak)$">
    Order allow,deny
    Deny from all
</FilesMatch>

# Disable directory listing
Options -Indexes

3. Verzeichnisauflistung deaktivieren

Wenn in einem Verzeichnis keine index.html– oder index.php-Datei vorhanden ist, zeigen viele Webserver standardmäßig eine vollständige Auflistung seines Inhalts an – und legen damit Ihre Dateistruktur für jeden offen. Deaktivieren Sie dies immer:

  • Apache: Fügen Sie Options -Indexes zu Ihrer .htaccess-Datei oder der virtuellen Host-Konfiguration hinzu.
  • Nginx: Stellen Sie sicher, dass autoindex off; in Ihrem Server-Block gesetzt ist (standardmäßig deaktiviert).

Platzieren Sie immer eine index.html– oder index.php-Datei in jedem Verzeichnis, um versehentliche Offenlegung zu verhindern.

4. Sensible Dateien außerhalb des Web-Stammverzeichnisses aufbewahren

Dies ist das wichtigste Sicherheitsprinzip für die Verwaltung von Stammverzeichnissen:

  • Datenbank-Anmeldedaten, API-Schlüssel und .env-Dateien gehören oberhalb des Web-Stammverzeichnisses.
  • Verwenden Sie PHPs require oder include mit absoluten Pfaden, um innerhalb Ihrer Anwendung auf sie zu verweisen.
  • Wenn Sie Konfigurationsdateien im Web-Stammverzeichnis speichern müssen, verwenden Sie .htaccess-Regeln, um den HTTP-Zugriff darauf zu blockieren.

5. SSL/TLS implementieren

Wenn Sie Ihre Website über HTTPS bereitstellen, werden alle Daten während der Übertragung zwischen dem Server und dem Browser des Besuchers verschlüsselt. Ein SSL-Zertifikat ist keine Option mehr – es ist eine grundlegende Sicherheitsanforderung und ein bestätigter Google-Rankingfaktor. Konfigurieren Sie Ihren Webserver so, dass er den gesamten HTTP-Datenverkehr auf HTTPS umleitet, und setzen Sie HSTS-Header für maximalen Schutz.

Stammverzeichnisverwaltung für beliebte CMS-Plattformen

WordPress

WordPress hat eine klar definierte Stammverzeichnisstruktur, die Sie verstehen müssen, um die Plattform sicher zu verwalten:

/public_html/
├── index.php              ← WordPress bootstrap file
├── wp-config.php          ← Database credentials & settings (move above web root if possible)
├── wp-login.php           ← Login page (consider restricting by IP)
├── .htaccess              ← WordPress permalink configuration
├── wp-admin/              ← Admin dashboard (restrict access)
├── wp-includes/           ← Core WordPress files (do not modify)
└── wp-content/
    ├── themes/            ← Installed themes
    ← Installed plugins
    └── uploads/           ← Media library files

Wichtige WordPress-Stammverzeichnis-Tipps:

  • Verschieben Sie wp-config.php ein Verzeichnis über das Web-Stammverzeichnis – WordPress findet es dort automatisch.
  • Beschränken Sie den Zugriff auf wp-admin/ und wp-login.php per IP-Adresse mithilfe von .htaccess.
  • Ändern Sie niemals Dateien innerhalb von wp-includes/ – sie werden beim nächsten Update überschrieben.
  • Überprüfen Sie regelmäßig das wp-content/uploads/-Verzeichnis auf bösartige Datei-Uploads.

Joomla

Die Stammverzeichnisstruktur von Joomla folgt einem ähnlichen Muster:

/public_html/
├── index.php              ← Main entry point
├── configuration.php      ← Database & site configuration
├── .htaccess              ← URL rewriting rules
├── administrator/         ← Admin panel (restrict access)
├── components/            ← Frontend components
├── modules/               ← Joomla modules
├── plugins/               ← Joomla plugins
└── templates/             ← Site templates

Verschieben Sie configuration.php außerhalb des Web-Stammverzeichnisses oder beschränken Sie den Zugriff darauf über .htaccess, um die Offenlegung von Datenbank-Anmeldedaten zu verhindern.

Laravel / Moderne PHP-Frameworks

Moderne PHP-Frameworks wie Laravel sind speziell mit Blick auf die Sicherheit des Stammverzeichnisses konzipiert. Nur das public/-Unterverzeichnis wird als Web-Stammverzeichnis bereitgestellt:

/var/www/laravel-app/      ← Application root (NOT the web root)
├── app/                   ← Application logic
├── config/                ← Configuration files
├── .env                   ← Environment variables
├── vendor/                ← Composer dependencies
└── public/                ← THIS is the web root (DocumentRoot points here)
    ├── index.php
    └── assets/

Diese Architektur ist eine Sicherheits-Best-Practice – sensible Dateien sind strukturell unmöglich über HTTP zugänglich.

Backup-Strategien für das Stammverzeichnis

Regelmäßige Backups Ihres Stammverzeichnisses sind unerlässlich. Eine einzige versehentliche Löschung, ein fehlgeschlagenes Update oder eine Sicherheitsverletzung kann Ihre Website offline nehmen. Hier sind die effektivsten Backup-Ansätze:

Manuelles Backup über SSH

# Create a compressed archive of the entire web root
tar -czf /home/username/backups/webroot-$(date +%Y%m%d).tar.gz /var/www/html/

# Transfer the backup to a remote location using SCP
scp /home/username/backups/webroot-$(date +%Y%m%d).tar.gz user@backup-server:/backups/

Automatisiertes Backup mit Cron

# Edit crontab
crontab -e

# Add a daily backup job at 2:00 AM
0 2 * * * tar -czf /home/username/backups/webroot-$(date +%Y%m%d).tar.gz /var/www/html/ 2>/dev/null

Verwendung von rsync für inkrementelle Backups

# Sync web root to a backup directory (only copies changed files)
rsync -avz --delete /var/www/html/ /mnt/backup/webroot/

Backups des Hosting-Anbieters

Viele verwaltete Hosting-Lösungen beinhalten automatisierte tägliche Backups. AlexHosts VPS Hosting-Pläne umfassen Backup-Optionen, die Ihre gesamte Serverumgebung schützen und Ihnen neben Ihren eigenen Backup-Routinen ein zuverlässiges Sicherheitsnetz bieten.

Behebung häufiger Stammverzeichnisprobleme

ProblemWahrscheinliche UrsacheLösung
403 Forbidden-FehlerFehlende Index-Datei oder falsche Berechtigungenindex.html/index.php hinzufügen; Verzeichnisberechtigungen prüfen (755)
404 Not Found auf der HomepageFalscher DocumentRoot-Pfad in der ServerkonfigurationDocumentRoot in Apache oder root in der Nginx-Konfiguration überprüfen
Dateien werden nach dem Upload nicht aktualisiertBrowser- oder serverseitiges CachingBrowser-Cache leeren; Server-Caching-Header prüfen
PHP-Dateien werden heruntergeladen statt ausgeführtPHP nicht für dieses Verzeichnis konfiguriertÜberprüfen, ob der PHP-Handler in der Server-/Hosting-Konfiguration aktiviert ist
Verzeichnisauflistung sichtbarOptions Indexes aktiviertOptions -Indexes zu .htaccess oder Serverkonfiguration hinzufügen
Zugriff verweigert beim Schreiben von DateienFalsche Datei-/Verzeichniseigentümerschaftchown -R www-data:www-data /var/www/html ausführen

Die richtige Hosting-Umgebung für Ihre Stammverzeichnisanforderungen wählen

Das Maß an Kontrolle, das Sie über Ihr Stammverzeichnis haben, hängt erheblich von Ihrer Hosting-Umgebung ab:

  • Shared Web Hosting: Stammverzeichnis ist als public_html vorkonfiguriert. Einfach zu verwenden, aber eingeschränkte Anpassungsmöglichkeiten. Am besten für kleine Websites und Einsteiger geeignet.
  • VPS Hosting: Vollständiger Root-Zugriff auf den Server. Sie definieren das Dokumenten-Stammverzeichnis, konfigurieren den Webserver und verwalten alle Sicherheitseinstellungen selbst. Ideal für wachsende Unternehmen und Entwickler, die Flexibilität benötigen.
  • Dedicated Servers: Maximale Kontrolle und Leistung. Der gesamte Server gehört Ihnen – konfigurieren Sie Stammverzeichnis, Webserver und Sicherheitsstack genau nach Bedarf. Am besten für stark frequentierte Websites und Unternehmensanwendungen geeignet.
  • VPS Control Panels: Kombinieren Sie die Leistung eines VPS mit dem Komfort eines grafischen Kontrollpanels und machen Sie die Stammverzeichnisverwaltung ohne tiefgreifende Kommandozeilenkenntnisse zugänglich.

Fazit

Das Stammverzeichnis ist das architektonische Fundament jeder Website. Es bestimmt, wie Ihr Webserver Inhalte findet und bereitstellt, definiert die Grenze zwischen öffentlichen und privaten Dateien und wirkt sich direkt auf die Sicherheitslage und organisatorische Klarheit Ihrer Website aus. Ob Sie eine einfache Broschüren-Website auf Shared Hosting oder eine komplexe Multi-Anwendungsumgebung auf einem Dedicated Server verwalten – die Prinzipien bleiben dieselben: Halten Sie es organisiert, bewahren Sie sensible Dateien außerhalb des öffentlichen Web-Stammverzeichnisses auf, setzen Sie korrekte Berechtigungen durch und erstellen Sie regelmäßig Backups.

Die Beherrschung der Stammverzeichnisverwaltung ist nicht nur ein technisches Pflichtprogramm – es ist eine Kernkompetenz, die Ausfallzeiten verhindert, Sicherheitslücken schließt und Ihre Websites im Laufe der Zeit deutlich einfacher zu warten und zu skalieren macht.

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen