Einführung
Stellen Sie sich vor, Sie verwalten den Server einer Universität. Jeder Student soll eine eigene persönliche Website erhalten, die über eine URL wie university.com/~student1 erreichbar ist.
Anstatt alle Dateien in einem zentralen Verzeichnis abzulegen, stellt Apache dafür die Funktion Benutzerverzeichnisse bereit. Damit kann jeder Benutzer eine Website direkt aus seinem eigenen Home-Verzeichnis bereitstellen, normalerweise aus einem Unterverzeichnis namens public_html.
In großen modernen Produktionsplattformen wird diese Funktion seltener eingesetzt. Sie ist jedoch weiterhin nützlich, um zu lernen, wie URL-Zuordnung, Berechtigungen und benutzerbezogene Webinhalte zusammenwirken.
In diesem Lab werden Sie:
- Das Modul aktivieren: Aktivieren Sie die Funktion
userdirin Apache. - Das Verzeichnis erstellen: Richten Sie das Verzeichnis
public_htmlin Ihrem Home-Verzeichnis ein. - Berechtigungen konfigurieren: Stellen Sie sicher, dass Apache die erforderlichen Berechtigungen für den Zugriff auf Ihre Dateien besitzt.
- Testen: Rufen Sie Ihre persönliche Seite über eine Browser-Anfrage ab.
Das userdir-Modul aktivieren
Apache ist ein modularer Server. Das bedeutet, dass Sie bestimmte Funktionen je nach Bedarf aktivieren oder deaktivieren können. Das Modul userdir ordnet URLs wie ~username dem Home-Verzeichnis des jeweiligen Benutzers zu.
Dieses modulare Design ist ein wesentliches Merkmal von Apache. Viele Funktionen sind nicht immer standardmäßig aktiv. Stattdessen aktivieren Administratoren die Module, die sie für die jeweilige Serverrolle benötigen.
Prüfen Sie den Status von Apache, um sicherzustellen, dass der Dienst ausgeführt wird:
sudo service apache2 status
Aktivieren Sie das Modul userdir mit dem Befehl a2enmod (Apache 2 Enable Module):
Der Hilfsbefehl a2enmod gehört zu den Konventionen der Apache-Paketierung unter Ubuntu. Er vereinfacht die Modulverwaltung, indem er die erforderlichen symbolischen Links erstellt. Dadurch müssen Sie nicht alle Änderungen manuell vornehmen.
sudo a2enmod userdir
Es sollte eine Meldung erscheinen, die anzeigt, dass das Modul aktiviert wird.
Listen Sie zur Bestätigung die aktivierten Module auf:
ls /etc/apache2/mods-enabled/ | grep userdir
Sie sollten userdir.conf und userdir.load sehen. Das bestätigt, dass das Modul aktiv ist.
Das Webverzeichnis einrichten
Das Modul userdir sucht im Home-Verzeichnis des Benutzers nach einem Ordner namens public_html. In diesem Lab lautet Ihr Benutzername labex.
Wechseln Sie in Ihr Home-Verzeichnis:
cd ~
Erstellen Sie das Verzeichnis public_html:
mkdir ~/public_html
Erstellen Sie in diesem Verzeichnis eine einfache Datei index.html, um Ihre Website zu testen:
echo "<h1>My Personal Page</h1><p>Welcome to the labex user directory.</p>" > ~/public_html/index.html
Als Nächstes müssen Sie die Berechtigungen berücksichtigen. Standardmäßig sind Benutzerverzeichnisse häufig nicht öffentlich zugänglich. Dadurch kann der Apache-Benutzer (www-data) sie nicht betreten. Apache benötigt die Ausführungsberechtigung (x) für Ihr Home-Verzeichnis, um auf das darin enthaltene Verzeichnis public_html zugreifen zu können.
Dieses Beispiel zeigt gut, dass die Bereitstellung von Webinhalten von den normalen Linux-Dateisystemberechtigungen abhängt. Apache kann nur Dateien bereitstellen, auf die der Prozess zugreifen und die er lesen darf.
Ändern Sie die Berechtigungen Ihres Home-Verzeichnisses:
chmod 711 /home/labex
711(rwx--x--x) gibt Ihnen die vollständige Kontrolle. Andere Benutzer, beispielsweise Apache, dürfen das Verzeichnis jedoch durchqueren (Ausführungsberechtigung), seine Inhalte aber nicht auflisten (keine Leseberechtigung).
Der Unterschied zwischen Lese- und Ausführungsberechtigung bei Verzeichnissen ist subtil, aber wichtig. Die Ausführungsberechtigung für ein Verzeichnis bedeutet: „Sie dürfen es betreten oder durchqueren.“ Die Leseberechtigung bedeutet: „Sie dürfen seinen Inhalt auflisten.“
Überprüfen Sie die Berechtigungen:
ls -ld /home/labex
Am Ende der Berechtigungsangabe sollte ein x stehen. Das zeigt an, dass das Durchqueren des Verzeichnisses erlaubt ist.
Den Dienst neu starten
Nachdem Sie ein Modul aktiviert oder eine Konfiguration geändert haben, müssen Sie Apache neu starten, damit die Änderungen wirksam werden.
Starten Sie den Apache-Dienst neu:
sudo service apache2 restart
Prüfen Sie, ob Apache erfolgreich neu gestartet wurde:
sudo service apache2 status
Der Status sollte active (running) lauten.
Die Konfiguration überprüfen
Nachdem Sie alles eingerichtet haben, testen Sie nun Ihre persönliche Webseite.
Das URL-Format lautet http://server_address/~username/. Da Sie sich direkt auf dem Server befinden, verwenden Sie localhost.
Rufen Sie die Seite mit curl ab:
curl http://localhost/~labex/
Sie sollten den von Ihnen erstellten HTML-Inhalt sehen:
<h1>My Personal Page</h1>
<p>Welcome to the labex user directory.</p>
Wenn der Fehler 403 Forbidden angezeigt wird, überprüfen Sie noch einmal die Berechtigungen Ihres Home-Verzeichnisses (/home/labex) und des Verzeichnisses public_html.
Zusammenfassung
In diesem Lab haben Sie persönliche Webverzeichnisse erfolgreich konfiguriert. Sie haben gelernt:
- das Apache-Modul
userdirzu aktivieren; - das Verzeichnis
public_htmlzu erstellen und mit Inhalten zu füllen; - Verzeichnisberechtigungen so zu konfigurieren, dass Apache Zugriff erhält und die Sicherheit erhalten bleibt;
- die Einrichtung durch den Aufruf der benutzerbezogenen URL zu überprüfen.
Diese Funktion wird häufig in Bildungsumgebungen und beim Shared Hosting eingesetzt, damit Benutzer eigenen Webspace erhalten.



