19. März 2004: Übungen zum Apache Webserver

Vor Beginn der Übungen bekommst du eine root Shell.
!!! Bitte benutze den root Zugang ausschließlich zur Lösung der Übungen und nicht, um dein eigenes System bzw. das deiner KollegInnen zu zerstören ;-) !!!

Für einige Übungen benötigst du den Namen deines Rechners. Dieser läßt sich einfach dadurch herausfinden, daß du eine Shell (Terminal) aufmachst und dort auf den Anfang der ersten Zeile schaust: Dort sollte irgendwo zriXY (XY steht für eine Zahl) stehen: das ist der Name deines Rechners. Der vollständige Name lautet dann zriXY.pclab.

Schreibe zu den Übungen jeweils kurz in Protokollform auf, was du gemacht hast und kennzeichne das Protokoll mit deinem Namen und der Matrikelnummer.
Die Protokolle sollten am Ende der aktuellen Einheit, jedenfalls aber zu Beginn der nächsten Einheit abgegeben werden!
  1. Ändere das root Paßwort (mit passwd in einer Shell)!
  2. Installiere das Apache Webserver Paket.
  3. Vergewissere dich, daß er gestartet wird, wenn der Rechner hochfährt.
  4. Starte jetzt Apache und rufe als Test in einem Browser (mozilla, konqueror, ...) die Webseite deines Rechners auf (zriXY.pclab). Das sollte eine Standard-Seite zurückliefern.
  5. Sieh dir die access_log Datei an, ob dein Aufruf dort aufscheint. Jede Zeile dort entspricht einer Anfrage. Versuche, einige Teile der Zeile zu interpretieren!
  6. Rufe eine nicht existierende Datei per Browser auf und sieh dir die error_log an. Welchen HTTP Statuscode verursachen nicht existierende Seiten?
  7. Ändere die Anzahl der maximal erlaubten Clients auf 1. Was passiert, wenn du deine Seite aus zwei Browsern aufrufst? (Achtung: Nach Änderungen an httpd.conf muß der Apache immer restartet werden). Zum Testen lade dir aus dem Netz ein größeres File (ein großes File aus /auto.mnt/redhat/RedHat/RPMS/ ist z.B. Mathematica, oder ein (legales ;-) Video o.ä.) herunter und lege es in den DocumentRoot. Dann solltest du die Datei aus den beiden Browsern etwa gleichzeitig zu downloaden beginnen (damit deine Aufrufe überhaupt als "gleichzeitig" interpretiert werden, HTML Dateien sind viel zu schnell fertig geladen).
    Ändere schließlich den Wert wieder auf den ursprünglichen Wert zurück.
  8. Laß den apache auf Port 81 auf Connections warten und überprüfe das mit dem Browser. Ändere die Einstellung wieder auf Port 80 zurück, wenn es geklappt hat.
  9. Erstelle ein Verzeichnis /www und lege eine index.htm hinein (Hier gibts eine fertige index.htm, mit Rechtsklick speichern). Ändere die entsprechende Direktive in der httpd.conf so ab, daß diese Datei angezeigt wird, wenn du auf deine Webseite gehst.
  10. Erstelle ein Verzeichnis /www/protected/, das nur von deinem eigenen Rechner zugänglich ist. Probiere es von einem anderen PC aus!
  11. Erstelle ein Verzeichnis /www/prot2/, das nicht von deinem eigenen Rechner aus zugänglich ist. Überprüfe wieder, ob es geklappt hat!
  12. Lege (mittels adduser) einen Benutzer pinguin an. Die Dateien in seinem Unterverzeichnis html sollen angezeigt werden, wenn man sich auf http://zriXY.pclab/~pinguin/ verbindet. Vergiß nicht, das Verzeichnis html auch tatsächlich anzulegen. Als Index Datei kannst du die Datei von der vorherigen Übung oben verwenden.
  13. Schau dir eine nicht-existierende Datei auf deinem Webserver einmal mit ServerSignature, einmal ohne, an. Welche Daten stehen in der ServerSignature?
  14. Erstelle einen eigenen Error-Handler für deinen Webserver, einmal für fehlende, einmal für "Access forbidden"-Dateien und vergewissere dich, daß der jeweils richtige aufgerufen wird. Access forbidden kannst du "provozieren", indem du z.B. einem Verzeichnis oder einer Datei alle Rechte für "others" wegnimmst.
  15. Erstelle einen Redirect von /mat auf www.mat.univie.ac.at.
  16. Zusatzaufgabe für Fleißige: Im DNS existieren CNAMEs von zriXYa.pclab auf zriXY.pclab (also z.b. zri49a.pclab auf zri49.pclab). Je nach im Browser eingegebenem Servername soll eine andere Webseite zurückgeliefert werden! (Bitte beim LV-Leiter melden, dann wird der DNS-Eintrag erstellt!)