Servicegruppe Informatik
- 1:
Die SGI. - 1.1:
Ansprechpartner. - 1.2:.
www-Server - 1.3:
Skriptdrucksystem. - 1.4:
Kurse. - 1.5:
Links.
- 1.1:
- 2:
Rechnerpools. - 3:
Sopra. - 4:
TI-Praktikum. - 5:
Progwerkstatt. - 6:
Hörsäle. - 7:
Mitarbeiter.
Informationen rund um den Webserver
Plattform: Linux x86
Name: www.informatik.uni-ulm.de
Server-Software: Apache 1.3 (
Apache-Dokumentation lokal,
aktuell)
Der Webserver der Fakultät Informatik ist in verschiedene logische Bereiche aufgeteilt, die von unterschiedlichen Abteilungen bzw. Autorengruppen verwaltet werden. Jeder Gruppe ist genau ein Verzeichnisbaum zugeteilt, auf das sie über NFS (Ex- oder Import) oder per smb-Protokoll (über Samba vom PC aus) zugreifen kann.
Der Webserver und damit auch alle CGI-Skripte laufen unter dem User "nobody". Den zu publizierenden Dateien (Dokumente, Skripte, Verzeichnisse) müssen daher entsprechende Lese und Ausführungsrechte zugeordnet werden (x-Bit für Verzeichnisse, xr für Skripte, r für Dokumente; das r-Bit für Verzeichnisse kann entfallen, wenn man die automatische Indexerstellung für dieses Verzeichnis verhindern will).
Die folgenden Kapitel dienen der kurzen Dokumentation einiger Aspekte der Serverinstallation, die für Webautoren des Informatikservers(www.informatik.uni-ulm.de) interessant sein könnten. Eine umfassendere Einführung der angesprochenen Aspekte findet sich im Web (weiterführende Links sind angegeben).
Konfiguration - die Datei .htaccess
Der apache-Server besitzt weitreichende Konfigurationsmöglichkeiten, die aber zum größten Teil über globale Konfigurationsdateien realisiert werden und daher nur vom Webadmin benutzbar sind.
Einige Einstellungen können aber auch lokal, d.h. auf Ebene eines Dokumentenverzeichnisses durchgeführt werden. Hier kann eine Datei namens '.htaccess' angelegt werden, in der eine Reihe von Konfigurationsbefehlen stehen können (solche, die im Kontext 'htaccess' ausführbar sind). Der Gültigkeitsbereich derartiger Direktiven ist normalerweise das Verzeichnis, in dem die Datei .htaccess liegt. Er kann aber weitergehend auf Dateiebene eingeschränkt werden (Siehe Apache-Dokumentation der Direktive '<Files>').
In der globalen Konfiguration des Servers ist ein "AllowOverride All" eingestellt, sodaß weitestgehende Möglichkeiten der lokalen Konfiguration bestehen. Für das Dokumentenverzeichnis ist ein 'Options All' eingestellt.
Für die CGI-Verzeichnisse ist momentan als einzige Option 'ExecCGI' eingestellt. Will man auch ein 'FollowSymLinks' erlauben, ist im CGI-Verzeichnis eine Datei '.htaccess' anzulegen mit der Zeile 'Options +FollowSymLinks'.
URL-Aliase anlegen (Redirect, Rewrite)
Um URL-"Kurzbezeichnungen" für bestimmte Seiten anzulegen bzw. den logischen URL-Namen einer Seite von ihrer physikalischen Position im Dateibaum zu trennen besteht die Möglichkeit "Redirect-Klauseln" bzw. "Rewriting-Rules" mittels entsprechender Konfigurationsbefehle in der Datei '.htaccess' zu definieren.
Beispiele:
Redirect
Die Datei .htaccess im Verzeichnis /sgi enthält die Zeilen:
Redirect /sgi/schwarz http:/sgi/personen/schwarz
Redirect /sgi/www http:/sgi/sonstiges/www.shtml
Ein Zugriff mit dem URL-"Pfad" /sgi/schwarz... wird dann (für den Web-Client transparent!) automatisch auf den Pfad /sgi/personen/schwarz... umgeleitet (dabei wird die neue Adresse dem Client mitgeteilt, bevor dieser dann eine erneute Anfrage an die nun berichtigte Adresse stellt).
Rewrite
RewriteEngine on
RewriteBase /sgi
RewriteRule ^mitarbeiter(.*)$ personen$1[R=301]
Ein Zugriff mit dem URL-"Pfad" /sgi/mitarbeiter/... wird nun automatisch auf den Pfad /sgi/personen/... umgeleitet.
Zur genauen Funktion siehe die Originaldoku. Die Funktionalität entspricht der von Redirect, jedoch können hier mächtige reguläre Ausdrücke zur Textersetzung herangeszogen werden.
Erste Zeile: URL-Rewriting einschalten. Zweite Zeile: Basisverzeichnis für Rewriting setzen. Ist optional, macht aber die Regeln übersichtlicher. Danach kommt eine Zahl von Regeln mit Regular Expressions und entsprechende Ersetzungen. Die Option [R=301] ändert den Code, den Apache an den Browser/Proxy schickt auf Permanent Redirect statt dem Standardwert Temporary Redirect. Es gibt noch viele andere interessante Optionen, siehe Doku.
(mit Dank an Klaus Espenlaub)
Limitierter Zugriff auf Dokumente und cgi-Skripte
Der Zugriff auf Dateien des Servers (HTML-Dokumente, Skripte etc.) kann beschränkt werden. Dies geschieht mittels Konfigurationsbefehlen in der Datei '.htaccess', die sich im selben bzw. einem höheren Verzeichnis wie die zu schützenden Dateien befinden muß. Die Befehle 'allow' und 'deny' dienen der Freigabe bzw. Sperrung bestimmter Rechner, Subnetze oder Subdomains. Wird keine explizite Einschränkung vorgenommen, umfaßt der Gültigkeitsbereich der Konfigurationsbefehle alle Dateien und Unterverzeichnisse des Verzeichnisses, in dem sich die '.htaccess'-Datei befindet. Der Bereich läßt sich allerdings auch auf bestimmte Dateien (auch wild-cards werden unterstützt) einschränken (Siehe Apache-Dokumentation der Direktive '<Files>'). Der Zugriff auf folgendes Dokument kann z.B. nur innerhalb der Domain informatik.uni-ulm.de erfolgen: Test
Zugriffsschutz per Login/Benutzerverwaltung
Um den Zugriff auf Seiten nur bestimmten Benutzern bzw. Gruppen zu erlauben, gibt es die Möglichkeit eigene WWW-Benutzer und Gruppen einzurichten. Hierzu ist das Programm htpasswd notwendig.
Ein Beispiel hierzu ist Login.
Common Gateway Interface (CGI)
Neben statischen HTML-Dokumenten können auf dem Server auch Programme bzw. Skripte abgelegt werden, die beim Aufruf Eingabedaten wie z.B. Formulareingaben auswerten können und als Ausgabe HTML-Code erzeugen.
Innerhalb ihres Verzeichnisbaums kann jede Abteilung eigene Skripte im Unterverzeichnis /cgi-bin/ ablegen. Der Zugriff auf solche Skripte erfolgt über http://www.informatik.uni-ulm.de/<Abteilungskürzel>/cgi-bin/<Skript-Pfad>.
Beispiel: Einfaches Test-Skript
Skripte können beliebige Executables sein (Skripte oder Binaries).
Eine Auswahl vorhandener Interpreter:
Beispiele
- Finger, Kalender, Datum, Environment
- Formular (Python, Shell)
- Big Brother is watching you
Die Dateien hierzu. incl. Dokumentation.
Weiterführende Links: The CGI Collection (Webindex rund um CGI)
Server-Side Includes (SSI)
Eine einfache Variante der dynamischen Generierung von HTML-Dokumenten
sind die Server-Side Includes. Dateien mit Suffix '.shtml' können
entsprechende SGML-Kommentare der Form
<!--#element attribute=value attribute=value... -->
enthalten (siehe Apache-Dokumentation). Diese
Kommentare werden vom Webserver vor der Auslieferung des Dokuments interpretiert
und können zur einfachen programmgesteuerten Generierung von Teilen
des Dokuments verwendet werden.
Hierzu ein Beispiel.
SSI beherrscht Variablen, Includes, Execs, und if-Statements:
<!--#set var="variable" value="wert" --> ... <!--#include virtual="/sgi/cgi-bin/bsp/hello.pl" --> ... <!--#exec cmd="ls -al" --> ... <!--#if expr="test_condition" --> ... <!--#elif expr="test_condition" --> ... <!--#else --> ... <!--#endif -->
Test_condition kann folgende Formen annehmen: 'string' (true falls string nicht leer ist), 'string1 = string2', 'string1 != string2', '( test_condition)', '! test_condition', 'test_condition1 && test_condition2', 'test_condition1 || test_condition2'
Bsp.: <!--#if expr="$variable = wert && ..." --> ...
Personal Home Page Tools (PHP)
Wem SSI nicht reicht, dem sei PHP empfohlen. PHP ist in der Version 4.3 installiert und stellt eine sehr mächtige Skriptsprache zur dynamischen Generierung von HTML-Seiten zur Verfügung. Dateien mit dem Suffix '.phtml' werden von PHP interpretiert. PHP stellt
Hierzu einBeispiel.
Zugriffszähler
Das Rechenzentrum bietet einen einfachen Counter zur freien Benutzung in
eigenen Webseiten an
(Dokumentation).
Diese Seite wurde bereits
mal geladen (Reload wird ignoriert!). Zur Verwendung siehe Quelltextansicht.
