
Die ZECM betreibt ein Webhosting-Angebot für Einrichtungen, die Webspace für eigene Webanwendungen auf PHP-, MySQL-Basis benötigen. Den Serverbetrieb übernimmt die ZECM.
Die ZECM bietet Einrichtungen der TU Berlin die Möglichkeit, neben Webseiten auf Basis des Content Management Systems TYPO3 auch „klassische“ Webanwendungen oder ergänzende Webseiten für Projekte z.B. zu betreiben. Dabei haben Sie mehr Freiheit bei der Konfiguration gegenüber einem CMS-basierten Auftritt, beispielsweise können Sie eigene PHP- oder CGI-Skripte einsetzen oder eine eigene MySQL-Datenbank betreiben. Die ZECM betreut die Webserver-Infrastruktur - die Webseiten bzw. -anwendungen sind in der Verantwortung der jeweiligen Einrichtung.
Die klassischen Webauftritte richten sich an Einrichtungen, deren Bedürfnisse mit einem TYPO3-Auftritt nicht in Gänze erfüllt werden können. Dazu gehören z.B. Webanwendungen wie Wikis, Anmeldesysteme für Ihre Studierenden oder Datenbankanwendungen zur Erfassung/Auswertung von Daten.
Da die Konfiguration und Pflege bzw. Aktualisierung der eingesetzten Webanwendung durch die jeweilige Einrichtung erfolgt, sollte dauerhaft mindestens eine/n Mitarbeiter*in verfügbar sein, der/die die entsprechenden Kenntnisse besitzt und sich um den Auftritt kümmert.
Egal wie Sie auf die Webdaten Ihres Auftrittes zugreifen (via AFS-Client oder über ssh/sftp auf sshgate.tu-berlin.de), Sie benötigen immer einen TUB-Account. Zusätzlich benötigen Sie für den Zugriff auf die Webdaten Rechte im AFS. Zu diesem Zweck wird für jeden Webauftritt automatisch eine AFS-Gruppe erstellt, die dem Antragsteller in der E-Mail-Bestätigung mitgeteilt wird. Dieser Gruppe können von der für den Auftritt verantwortlichn Person weitere TUB-Accounts hinzugefügt werden. Hierfür kann auf einem System (z.B. sshgate.tu-berlin.de) mit Zugriff auf das AFS folgender Befehl verwendet werden:
# pts adduser <TUB-Account> <Gruppenname>
Alle PHP-Skripte werden als CGI ausgeführt. Dadurch können die Skripte verschiedener Auftritte mit unterschiedlichen Rechten ausgeführt werden. Somit ist es nicht möglich die Dateien anderer Webauftritte auszulesen, was ein enormer Sicherheitsvorteil ist. Bei einigen PHP-Applikationen muss dies während der Konfiguration berücksichtigt werden.
Per Default werden alle Dateien im htdocs-Ordner mit der Endung .php automatisch als PHP-Skript interpretiert und ausgeführt. Eine Anpassung der PHP-Skripte im htdocs-Ordner ist somit nicht notwendig.
Die Ausführung von CGI-Skripten ist auf den cgi-bin-Ordner beschränkt, der parallel zum htdocs-Ordner liegt. Dateien mit der Endung .cgi oder .pl werden als CGI-Skript interpretiert und ausgeführt. Perlskripte müssen mit folgender Zeile beginnen: #!/usr/bin/perl . Für Shell-Skripte muss die erste Zeile #!/usr/bin/sh bzw. #!/usr/bin/bash für Bash-Skripte lauten.
Die CGI-Skripte müssen ausführbar sein! Hierfür muss das Unix execute-Recht gesetzt sein. Auf einem Linuxrechner, der Zugriff auf das AFS hat, können sie allen Dateien des cgi-bin-Ordners mit folgendem Befehl das execute-Recht vergeben:
# chmod -R a+x BASIS-PFAD/cgi-bin/
Sollten Sie Windows verwenden, können Sie sich per ssh auf sshgate.tu-berlin.de verbinden und dort die entsprechenden Rechte setzen. Viele ftp/ssh-Programme bieten ebenfalls die Möglichkeit Unix-Rechte zu vergeben.
Der PHP-Interpreter kann verschiedene Fehlermeldungen bei der Ausführung von PHP-Skripten an den Browser ausgeben. Damit bei fehlerhaften Skripten keine weiteren Informationen an potentielle Angreifer ausgegeben werden, werden per Default nur Syntaxfehler ausgegeben.
Wird lediglich eine weiße Seite ausgegeben, liegt dies u.U. an einem PHP-Fehler. Sie können mit der PHP-Anweisung error_reporting(E_ALL); sämtliche PHP-Fehler ausgeben lassen. Fügen Sie die Zeile einfach am Anfang Ihres PHP-Skriptes ein. Feinere Abstufungen können ebenfalls angegeben werden. Weitere Informationen dazu finden Sie in der PHP-Dokumentation.
Aus Sicherheitsgründen können nicht alle Direktiven innerhalb von .htaccess-Dateien verwendet werden.
Die folgenden Direktivgruppen dürfen geändert werden:
AuthConfig, FileInfo, Indexes, Limit.
Die folgende Direktivgruppe darf nicht geändert werden:
Options.
Per Default ist die Direktive Options wie folgt gesetzt:
MultiViews ExecCGI Indexes SymLinksIfOwnerMatch.
Die Inhalte von Verzeichnissen ohne Index-Datei werden demnach aufgelistet und symbolischen Links wird gefolgt, falls der Link und die Zieldatei dem gleichen Benutzer gehören. Verwenden Sie dennoch eine nicht erlaubte Direktive, wird ein "Internal Server Error" zurückgegeben.
Wir erzwingen aus Datenschutzgründen die HTTPS-Verbindung, indem auf der Seite des vorgelagerten Loadbalancers HTTP-Verbindungen nach HTTPS weitergeleitet werden.
Die in häufigen Fällen verwendete Variable %{HTTPS} ist im Kontext der konventionellen Webauftritte gesetzt und kann eingesetzt werden.
Sie haben für ein Projekt eigene Webseiten in einem Unterordner angelegt und wollen diese nun über eine zusätzliche Webadresse direkt ansprechen? Zunächst muss die neue Webadresse durch uns eingerichtet werden. Schicken Sie uns einfach eine E-Mail und geben Sie die Adresse des Webauftritts sowie die gewünschte zusätzliche Adresse an.
Nehmen wir an Sie haben folgende Ordnerstruktur.
htdocs/
|.....[Webdaten des eigentlichen Auftritts]
|.....projekt1/
........|....[Webdaten des Projekts]
Nach der Einrichtung zeigt die neue Webadresse direkt auf das htdocs-Verzeichnis. Damit sie direkt auf das projekt1-Verzeichnis zeigt, legen Sie einfach eine Datei names .htaccess im htdocs-Verzeichnis an. Falls die Datei bereits existiert, wird diese einfach um weitere Einträge ergänzt. In die Datei kopieren Sie nun den folgenden Inhalt und passen nur noch die Webadresse und den Zielordner an.
# RewriteEnginge einschalten, falls noch nicht geschehen
RewriteEngine On
# Die Umleitung erfolgt nur fuer diese Webadresse (ohne http(s)://)
RewriteCond %{HTTP_HOST} =projekt1.OrgName.tu-berlin.de
# nur umleiten, wenn der Ordner noch nicht in der URI auftaucht
RewriteCond %{REQUEST_URI} !^/projekt1.*
# fuege den Ordner projekt1 transparent in die URI ein
RewriteRule ^(.*) /projekt1/$1 [L]
Mit diesen Änderungen landen Sie mit den folgenden Adressen jeweils im Ordner projekt1:
projekt1.OrgName.tu-berlin.de/projekt1/
projekt1.OrgName.tu-berlin.de/
und können so die Doppelung des Projektnamens in der Webadresse und dem Pfad vermeiden.
Sie haben mehrere Möglichkeiten, das Auflisten von Verzeichnisinhalten zu unterbinden. Sie können z.B. einfach eine (ggf. leere) Index.html-Datei anlegen. Enthält der Ordner keine Dateien, die direkt per Browser aufgerufen werden sollen, können sie auch eine .htaccess-Datei mit folgendem Inhalt im Verzeichnis anlegen:
Order Allow,Deny
Deny From All
Die .htaccess-Datei wirkt sich auch auf alle Unterordner aus und verbietet jedlichen Webzugriff.
Sie können auch bestimmte Dateien von der Auflistung via .htaccess ausnehmen:
# Verhindert die Auflistung aller Dateien
IndexIgnore *
# Verhindert die Auflistung von zip-Archiven und SQL-Dumps
IndexIgnore *.zip *.sql
Auch dies wirkt sich auf alle Unterordner aus, verhindert jedoch nicht den Zugriff, sondern nur die Auflistung von Ordnerinhalten.
Sollte für Sie keine der Varianten in Frage kommen, können wir für Ihren Webauftritt die Option Indexes auch global abschalten. Wenden Sie sich hierfür bitte an das Web-Team.
Wird eine Adresse ohne Dateinamen verwendet, z.b. host.orgname.tu-berlin.de/Projekt1/, versucht der Webserver eine Index-Datei auszuliefern. Dabei prüft er nacheinander das Vorhandensein von Index-Dateien mit verschiedenen Endungen und liefert die erste aus, die gefunden wird. Es werden die folgenden Index-Dateien in der angegebenen Reihenfolge geprüft:
Eine index.php wird demnach nur dann angezeigt, wenn es weder eine index.html noch eine index.htm gibt und auch keine sprachspezifischen Index-Dateien wie index.html.de vorhanden sind. Wird keine Index-Datei gefunden, zeigt der Webserver den Verzeichnisinhalt an.
SSI ist per Default nicht aktiviert. Möchten Sie SSI verwenden, schreiben Sie uns einfach eine E-Mail an das Web-Team und geben Sie an, ob Sie SSI für ihren gesamten Webbaum oder nur einen Teil davon benötigen.
Per Default werden keine Accesslogs angelegt. Wenn Sie eine Auswertung der Besucherzahl und der aufgerufenen Webseiten vornehmen möchten, können Sie dies hier beantragen. Wenn Sie nur die Accesslogs benötigen und deren Analyse selbst vornehmen wollen, senden Sie bitte eine E-Mail an das Web-Team. Bitte beachten Sie, dass wir aus Gründen des Datenschutzes ausschließlich anonymisierte Logs anlegen. Das bedeutet, es wird nicht die vollständige IP-Adresse gespeichert, sondern die letzen zwei Stellen werden auf 0 gesetzt, z.B. 130.149.0.0.
Seit dem 19.05.2010 werden keine separaten ErrorLogs mehr im Ordner logs/ angelegt. Sollten Sie für die Arbeiten an Ihrer Webanwendung Zugriff auf die ErrorLogs benötigen, können wir dies vorrübergehend einrichten. Wenden Sie sich hierfür an das Web-Team.
Auf den konventionellen Webservern steht PHP in der Version 7.4 zur Verfügung.
Als Betriebssystem kommt derzeit CentOS 7 zum Einsatz.
Wenn Sie Ihren konventionellen Webauftritt um eine MySQL Datenbank ergänzen wollen, schreiben Sie bitte eine formlose E-Mail an das Webteam mit folgenden Angaben:
Raum | E-N 024 |
---|---|
Adresse | Einsteinufer 17 10587 Berlin |
Hotline | Mo-Fr 09-16 Uhr |
IT-Service-Desk | Mo-Fr 10-16 Uhr |
IT-Service-Desk-Raum | E-N 024 |