= Persönliche Homepages am FB3 = Alle Benutzer mit einem Account im FB3-Netz können sich eine eigene Homepage (persönliche Webpräsenz) im WWW einrichten. Dabei ist zu beachten, daß der Inhalt der Webpräsenz natürlich nicht gegen die Nutzungsbedingungen verstoßen darf. == Einrichten einer Homepage == Alle Dateien, die zur persönlichen Webpräsenz eines Benutzers gehören, müssen im WWW-Verzeichnis {{{ /home/wwwuser/USER }}} abgelegt werden. {{{USER}}} steht hier für den jeweiligen Login-Namen (Benutzernamen). Die Homepage ist dann im WWW über die URLs {{{ http://www.informatik.uni-bremen.de/~USER/ http://www.math.uni-bremen.de/~USER/ }}} erreichbar. Falls im WWW-Verzeichnis eine Datei {{{home.html}}} oder {{{index.html}}} existiert, wird diese beim Anwählen des genannten URL angezeigt, sonst wird stattdessen der Inhalt des Verzeichnisses aufgelistet. == Symbolische Links == Im WWW-Verzeichnis sollten keine symbolischen Links angelegt werden, die aus dem Verzeichnis herauszeigen (z.B. in das Heimverzeichnis), da dadurch die Stabilitität des Webservers beeinträchtigt werden kann. == Protokollieren von Zugriffen auf die persönlichen WWW-Seiten == Allen Benutzern steht ein Auszug aus der Logdatei (Zugriffsprotokoll) des Webservers zur Verfügung, in dem die Zugriffe auf die Webpräsenz des jeweiligen Benutzers aufgeführt sind. Die Logdatei-Auszüge stehen in {{{ /home/wwwadmin/userlog/USER }}} Mehr Informationen dazu in einem separaten Artikel zu diesem Thema. == Zugriffsrechte setzen (mit ZFS-ACLs) == Die Dateien im WWW-Verzeichnis, die im Web sichtbar sein sollen, müssen für den Nutzer `wwwuser` lesbar sein, und alle Verzeichnisse auf dem Weg zu den betreffenden Dateien müssen zudem für `wwwuser` ausführbar sein. In den meisten Fällen ist es sinnvoll, den Zugriff auf die Dateien im WWW-Verzeichnis entsprechend einzuschränken, um interne unerlaubte Nutzerzugriffe zu verhindern. Hierfür bieten sich ZFS-ACLs an. ZFS-ACLs, da die Home- und WWW-Verzeichnisse auf einem ZFS-Filesystem abgelegt sind. Die folgenden Beispiele zeigen wie einem Benutzer `wwwuser` Rechte auf ein Verzeichnis zugewiesen werden können: {{{ > ls -ld test-dir drwx------ 2 testuser stud 2 Nov 7 11:52 test-dir }}} Ausführungsrecht (`--x`) {{{ chmod A+user:wwwuser:execute:allow test-dir }}} {{{ > ls -ldv test-dir drwx------+ 2 testuser stud 2 Nov 7 11:52 test-dir 0:user:wwwuser:execute:allow 1:owner@.... }}} Das `+`-Zeichen zeigt an, dass ZFS-ACLs benutzt werden. Lese- und Ausführungsrecht (`r-x`) setzen: {{{ chmod A+user:wwwuser:list_directory/read_data/execute:allow test-dir }}} Lese-, Schreib- und Ausführungsrecht (`rwx`) setzen: {{{ chmod A+user:wwwuser:list_directory/read_data/add_file/write_data/add_subdirectory/append_data/execute:allow test-dir }}} Die folgenden Beispiele zeigen, wie einem Benutzer `wwwuser` Rechte auf eine Datei zugewiesen werden können: {{{ > ls -l test-dir/test-file -rw------ 2 testuser stud 2 Nov 7 11:52 test-file }}} Leserecht (`r--`) {{{ chmod A+user:wwwuser:read_data:allow test-dir/test-file }}} Lese- und Ausführungsrecht (`r-x`) {{{ chmod A+user:wwwuser:read_data/execute:allow test-dir/test-file }}} Lese- Schreib- und Ausführungsrecht (`rwx`) {{{ chmod A+user:wwwuser:read_data/write_data/append_data/execute:allow test-dir/test-file }}} == Plattenplatz-Verbrauch == Da sich die WWW-Verzeichnisse aller Benutzer den verfügbaren Plattenplatz teilen müssen, sollte darauf geachtet werden, daß die persönliche Webpräsenz nicht zuviel Platz belegt. Insbesondere sollten hier keine Daten abgelegt werden, die nicht Bestandteil der Webpräsenz sind (z.B. um das Heimverzeichnis zu entlasten). Benutzer, deren Platzverbrauch ein Maximum überschreitet, werden per E-Mail benachrichtigt und gebeten, den Platzverbrauch zu reduzieren. Das aktuelle Maximum ist '''200 MB''' für studentische Nutzer und mehrere GB für Mitarbeiter (Stand: 22.6.2009, vorher 50/200 MB) == Erstellen von HTML-Seiten == Hilfestellung beim Erstellen von HTML-Seiten findet sich z.B. im [[http://selfhtml.org/|Online-Angebot von SELFHTML]] oder in den [[http://www.htmlhelp.com/|HTML-Help-Seiten]] der Web Design Group. == Erstellen von CGI-Skripten == Die CGI-Skripte der Benutzer werden auf dem FB3-Webserver über einen sogenannten ''CGI-Wrapper'' ausgeführt. Dieser erlaubt den Benutzern, eigene CGI-Skripte (und damit HTML-Formulare) bereitzustellen, ohne die Sicherheit des Webservers zu beeinträchtigen. Die Skripte laufen mit den Rechten der Benutzer, denen die jeweiligen Skripte gehören. Sie werden nur ausgeführt, wenn sie zuvor einige Sicherheitschecks bestehen. Zum Bereitstellen eines eigenen CGI-Skripts muß zunächst ein Verzeichnis {{{cgi-bin}}} im WWW-Verzeichnis angelegt werden: {{{ mkdir /home/wwwuser/USER/cgi-bin }}} Dann kann das gewünschte Skript (hier {{{myscript.pl}}}) in dem Verzeichnis abgelegt und ausführbar gemacht werden: {{{ cp myscript.pl /home/wwwuser/USER/cgi-bin chmod 755 /home/wwwuser/USER/cgi-bin/myscript.pl }}} Das Skript kann nun über den folgenden URL gestartet werden: {{{ http://www.informatik.uni-bremen.de/cgiwrap/USER/myscript.pl }}} Aus Quellcode nach Maschinencode übersetzte CGI-Skripte (also z.B. C-Programme) müssen unter Solaris 10 für 64 Bit übersetzt werden, sinnvollerweise direkt auf dem Host www.informatik.uni-bremen.de. == Benutzung einer Datenbank == Auf dem Webserver des FB3 läuft ein MySQL-Datenbank-System. Jeder Nutzer kann sich dort für die Verwendung in der WWW-Homepage (oder für andere Zwecke) eine Datenbank einrichten lassen. In diesem Fall bitte eine Mail an [[mailto:www@informatik.uni-bremen.de|den Web-Admin]] schicken und darin den gewünschten Datenbanknamen, das initiale Passwort und den FB3-Benutzernamen nennen.