Die eigene Homepage
Die eigene Homepage
Jeder Benutzer an der Uni kann seine eigene Homepage erstellen. Für die verwendeten Inhalte ist ausschließlich der jeweilige Benutzer verantwortlich.
Für das Ziel einer eigenen Homepage existieren zwei verschiedene Wege.
- Soll die Homepage mit Wordpress realisiert werden, ist es am einfachsten die zentrale Installation von Wordpress zu verwenden, um das Ziel mit wenig Aufwand zu erreichen. Die Wordpress-Komponenten werden bei der Nutzung der zentralen Wordpress-Installation automatisch auf dem aktuellen Stand gehalten.
- Für Benutzer die Ihre Homepage nicht mit Wordpress erstellen möchten, besteht die Möglichkeit über den Server userpages.uni-koblenz.de eine eigene Web-Präsenz aufzubauen. Diese Methode erlaubt auch die Nutzung anderer CMS-Systeme für eine Homepage, also z.B. auch Joomla oder Drupal. Alernativ ist es in diesem Fall auch möglich ein selbst gewartetes Wordpress oder einfach selbst erstelltes/generiertes HTML zu verwenden. In jedem Fall muß man sich bei diesem Weg selbst aktiv um die Pflege und Aktualisierung des eingesetzten Systems kümmen.
Im Folgenden werden beide Wege genauer beschrieben.
Wordpress-Homepage mit zentraler Installation
Für alle Benutzer gibt es eine zentrale Wordpress-Installation, mittels derer Sie schnell und sicher eine Homepage anbieten können. Informationen zur Einrichtung, Verwaltung und dem Zugriff auf die eigene Homepage finden Sie unter wp.uni-koblenz.de.
Bitte beachten Sie aber: Diese (privaten) Homepages dürfen auf keinen Fall zu kommerziellen Zwecken genutzt werden! Sollten wir Hinweise auf kommerzielle Nutzung finden, wird die betreffende Seite sofort und ohne Nachfrage gesperrt!
Eigene Homepage auf Userpages
Jeder Nutzer, der über eine Benutzerkennung des Rechenzentrum verfügt, kann eigene Homepage (Webseiten) über den Server https://userpages.uni-koblenz.de/~<kennung> erstellen. <kennung> ist dabei der erste Teil der Uni-Koblenz Email-Adresse. Der Zugriff auf die Webseiten von mustermann wäre in diesem Fall über die URL https://userpages.uni-koblenz.de/~mustermann möglich.
Die für die Webseite notwendigen Daten müssen in das public_html-Verzeichnis der Kennung abgelegt werden, in dem mindestens eine index.html oder eine index.php-Datei abgelegt sein muß. Das public_html-Verzeichnis befindet sich direkt im Windows Z:-Laufwerk, bzw. dem Linux-Home-Verzeichnis.
Bitte beachten Sie: Diese (privaten) Homepages dürfen auf keinen Fall zu kommerziellen Zwecken genutzt werden! Sollten wir Hinweise auf kommerzielle Nutzung finden, wird die betreffende Seite sofort und ohne Nachfrage gesperrt!
Damit die eigenen Webseiten aufgerufen werden können, müssen die Rechte insbesondere des eigenen Home-Verzeichnisses als auch des Verzeichnisses public_html so gesetzt sein, das der Web-Server die Dateien lesen darf. Auf der anderen Seite gilt es die eigenen Webseiten vor Zugriffen durch andere Nutzer über das Dateisystem zu schützen. Daher sollte das eigene Home-Verzeichnis nicht für jedermann les- und schon gar nicht für alle Nutzer schreibbar sein.
Die minimal notwendigen Rechte sind folgende: der Benutzer nobody, als auch der Benutzer wwwrun müssen das eigene Z:-Laufwerk (Linux-Home-Verzeichnis der jeweiligen Benutzer-Kennung, in dem das public_html-Verzeichnis liegt) als auch public_html und die Dateien selbst lesen und die Verzeichnisse betreten dürfen.
Diese Rechte können auf dem Linux-Rechner penguin2.uni-koblenz.de. Meldet man sich dort mit ssh (unter Windows dient das Programm putty dem gleichen Zweck) unter der eigenen Benutzer-Kennung z.B. mustermann an, reichen folgende Kommandos (zum Setzen der notwendigen ACLs), die einzeln nacheinander eingegeben und jeweils mit der Eingabe-Taste abgeschlossen werden müssen, um die Rechte zu setzen.
chmod 700 ~
nfs4_setfacl -a A::wwwrun@linuxdc.uni-koblenz.de:RX ~
nfs4_setfacl -a A::nobody@linuxdc.uni-koblenz.de:RX ~
nfs4_setfacl -a A::wwwrun@linuxdc.uni-koblenz.de:RX ~/public_html
nfs4_setfacl -a A::nobody@linuxdc.uni-koblenz.de:RX ~/public_html
nfs4_setfacl -a A::wwwrun@linuxdc.uni-koblenz.de:R ~/public_html/index.php
nfs4_setfacl -a A::nobody@linuxdc.uni-koblenz.de:R ~/public_html/index.php
chmod g+rx ~ ~/public_html
Durch diese Rechte-Vergabe haben nur der Benutzer selbst als auch die genannten Web-Server Nutzer wwwrun und nobody lesenden Zugriff auf die Dateien im Home- und public_html -Verzeichnis. Anderen Nutzern ist der Zugriff jetzt nicht mehr möglich.
Der Zugriff auf die eigenen Webseiten kann durch das Anlegen einer Datei mit dem Namen .htaccess im Ordner public_html oder einem Unterordner eingeschränkt werden. Soll eine Webseite beispielsweise nur für einen bestimmten Nutzer der Universität Koblenz zugreifbar sein, kann eine Datei .htaccess mit folgendem Inhalt in public_html angelegt werden:
AuthName "Private"
AuthType Basic
AuthBasicProvider ldap-ko-uid ldap-ko-mail
require user mustermann musterfrau
# require valid-user
Beim Besuch einer so geschützten Webseite wird der Nutzer sofort aufgefordert sich zu authentifizieren. Durch die Anweisung require user mustermann musterfrau sind in diesem Fall nur die Kennungen mustermann bzw. musterfrau berechtigt den Inhalt der Webseite zu sehen jeweils nachdem sie sich authentifiziert haben.
Mit der darunter stehenden auskommentierten (#...) Anweisung require valid-user ist es möglich eine beliebige Kennung der Uni den Besuch der Webseite nach erfolgreicher Authentifizierung zu ermöglichen.
Über die Angabe des AuthBasicProviders (oben z.B. ldap-ko-uid und ldap-ko-mail) kann zudem festgelegt werden welche Benutzer sich authentifizieren können und ob diese Benutzer zur Authentifizierung die Mailadresse oder nur den Kennungsnamen (ohne @uni-koblenz.de) angeben müssen. In dem obigen Beispiel wurde durch die Zeile
AuthBasicProvider ldap-ko-uid ldap-ko-mail
definiert, das Benutzer aus Koblenz sich mit Ihrer Benutzerkennung (ldap-ko-uid) authentifizieren können als auch mit Ihrer Mail-Adresse (ldap-ko-mail). Alle hinter AuthBasicProvider angegebenen Methoden werden also nacheinander für den Benutzer geprüft, der sich anmelden will. Schlagen alle diese Methoden fehl, kann der Benutzer sich nicht authentifizieren. Ist eine der hinter AuthBasicProvider angegebenen Methoden erfolgreich, kann der Benutzer sich authentifizieren, wenn er seinen korrekten Benutzernamen/Mail-Adresse und das passende Passwort angibt.
Es existieren folgende AuthBasicProvider-Methoden, die zur Authentifizierung verwendet werden können. Der Kennungsname bezeichnet dabei immer den ersten Teil der Mail-Adresse eines Benutzers. Daher ist der Kennungsname für die Mailadresse mustermann@uni-koblenz.de einfach mustermann:
- ldap-ko-uid
Authentizierung mit dem Kennungsnamen nur für Koblenzer Benutzer - ldap-ko-mail
Authentizierung mit der Mail-Adresse nur für Koblenzer Benutzer
Web-Zugriffsbeschränkungen für Fortgeschrittene
Manchmal möchte man eine Kombination der Authentifizierung erreichen um den Zugriff auf eine Webseite z.B, für einzelne lokale Namen wie mustermann aus einer eigenen Passwort-Datenbank mit einem frei wählbaren Passwort zu ermöglichen, den Zugriff darüber hinaus aber auch einigen oder allen Personen mit deren Uni-Kennung und dem zugehörigen Uni-Benutzer/Passwort zu ermöglichen. Das gewünschte Verhalten, wie ein Benutzer authentifiziert werden soll, könnte in diesem Fall wie folgt beschrieben werden:
- Schaue in einer lokalen Benutzer-Datenbank nach dem zu authentifizierenden Nutzernamen.
- Schaue in der Uni-weiten Benutzer-Datenbank nach dem zu authentifizierenden Nutzernamen.
Dies funktioniert im Prinzip auch, indem man zunächst eine lokale Benutzerdatenbank anlegt (z.B. .htpasswd) und dann eine .htaccess-Datei folgenden Inhalts anlegt:
AuthUserFile /pfad/zur/Datei/.htpasswd # z.B. /home/user/.htpasswd AuthBasicProvider file ldap-ko-uid ldap-ko-mail
require valid-user # Erlaube jede uni-Kennung mit Authentifizierung #require user uniuser # erlaube nur Zugriff für die eine Kennung: "uniuser"
Die Passwortdatei .htpasswd sollte aus Sicherheitsgründen nicht in das public_html-Verzeichnis gelegt werden, da Sie dadurch mittels Web-Zugriff grundsätzlich sichtbar ist. Außerhalb von public_html ist ein Web-Zugriff auf diese Datei grundsätzlich nicht möglich, wodurch die Sicherheit der eigenen Webseite gestärkt wird.
Und last not least könnte es auch sein, dass man ausschließlich Authentifizierungen über eine eigene Benutzer-Datenbank machen möchte. Hier ist die folgende Zeile wichtig:
AuthBasicProvider file
htpasswd-Datei verwalten
"Normalerweise" wird die lokale Benutzerdatenbank mit dem Programm htpasswd2 verwaltet, d.h. mit Hilfe dieses Programms kann man Paare von Nutzernamen und verschlüsselten Passworten erzeugen und löschen. htpasswd2 steht allerdings nur Linux-Nutzern zur Verfügung (z.B. auf linux.uni-koblenz.de).
Windows-Nutzer können auf freie Passwort-Generatoren zurückgreifen, z.B. auf http://www.htaccesstools.com/htpasswd-generator/. Die dort erzeugten Nutzername/Passwort-Paare müssen dann mittels Notepad in der Benutzerdatenbank eingetragen oder gelöscht werden.
Für dynamische Web-Inhalte können auch sogenannte CGI-Skripte ausgeführt werden. Diese Dateien müssen die Endung .cgi haben und werden dann unter den Rechten des jeweiligen Benutzers ausgeführt.
Auf userpages kann zum Aufbau der eigenen Webseiten auch PHP verwendet werden. PHP-Skripte laufen immer mit den Rechten des Benutzers, dem die PHP-Dateien gehören, nicht mit den Rechten des Webservers (wwwrun) . Dabei besteht die Wahl zwischen verschiedenen PHP-Versionen:
- PHP Version 5
Skripte werden mittels suphp unter den Rechten des Benutzers ausgeführt. Skripte z.B. der Benutzer-Kennung mustermann, werden daher mit den Rechten der Kennung mustermann ausgeführt. - PHP Version 7
Skripte werden mit benutzerspezifischen php-fpm-Pools unter den Rechten des jeweiligen Benutzers ausgeführt. Skripte z.B. der Benutzer-Kennung mustermann, werden daher mit den Rechten der Kennung mustermann ausgeführt.
PHP7 ist die performantere Alternative, da php-fpm nach dem ersten Aufruf einer PHP-Seite eines Nutzers für eine gewisse Zeit einen php-Prozess aktiv läßt, um weitere PHP-Seiten-Anfragen bearbeiten zu können. Dadurch entfällt ein ansonsten bei jedem weiteren Seitenaufruf notwendiger Neustart des PHP-Interpreters.
Wird keine Auswahl getroffen, so ist PHP5 die Voreinstellung.
Auswahl der PHP-Version
Die Auswahl der PHP-Version kann über die hierzu eingerichtete PHP-Versions-Seite jederzeit geändert werden. Der Aufruf dieser Webeite geht nur von innerhalb des Universitäts-Netzwerks aus, oder über eine VPN-Verbindung zur Universität.
Bitte beachten Sie auf der PHP-Version-Seite auch darauf, wie lange eine PHP-Version noch verfügbar sein wird (als "EndOfLife"-Datums-Angabe auf der PHP-Versions-Seite dargestellt). PHP ist eine sehr dynamische Sprache mit einer raschen Entwicklung. Ältere Versionen werden daher in ca. 18-Monats-Zeiträumen durch aktuellere Versionen ersetzt. Ist das Datum der EndOfLife-Time einer älteren PHP-Version erreicht, wird die entsprechende PHP-Version nicht mehr verfügbar sein. Sie müssen in diesem Fall eine andere Version für Ihre Web-Seiten wählen.
Über die PHP-Versions-Seite wird letztlich eine Datei wie z.B. .userpages.php.v7 im Benutzerverzeichnis anlegt, falls php7.0 verwendet werden soll, Für andere PHP-Versionen wird eine entsprechende Datei mit anderer PHP-Versionsnummer angelegt. Für PHP5 wird diese Datei gelöscht.
Beim Aufruf dieser Seite muss sich der Benutzer zunächst durch Angabe seines Kennungsnamens und seines Passworts ausweisen, bevor die eigentliche Einstellung vorgenommen werden kann. Eine hier vorgenommene Umstellung wird nach ca. 1 Minute wirksam.
Bitte beachten Sie: Wenn Sie eine Webseite betreiben, die bisher mit PHP5 arbeitet, wird es in aller Regel nicht ausreichen ausschließlich die zu nutzende PHP-Version auf 7 umzustellen. Das kann klappen, es ist jedoch durchaus möglich, das Sie daraufhin auch Anpassungen an Ihrer Webseite vornehmen müssen, damit diese kompatibel mit der neuen PHP-Version ist.
Technischer Hinweis: Obwohl unabhängig von der gewünschten PHP-Version immer über userpages.uni-koblenz.de auf Webseiten zugegriffen wird, erfolgt die Bearbeitung der Anfragen je nach PHP-Version transparent für den Nutzer auf unterschiedlichen Servern. Ist PHP 5 aktiviert wird eine Anfrage auf userpages.uni-koblenz.de bearbeitet. Ist PHP7 aktiviert, werden Anfragen über userpages.uni-koblenz.de hingegen automatisch und nicht sichtbar für den Benutzer auf userpages7.uni-koblenz.de bearbeitet.
Dieser Umstand kann für die "sanfte" Umstellung einer Webseite genutzt werden, die bisher auf PHP5 basiert in Zukunft aber auf PHP7 angewiesen ist. Legt man eine komplette Kopie der bestehenden Seite unter einem anderen Verzeichnis an, kann man testen wie diese Webseite unter PHP7 aussieht/funktioniert, indem man einfach über userpages7 auf diese Seite zugreift. Dadurch wird automatisch PHP7 verwendet, unabhängig von der aktuellen PHP-Einstellung, während die original Seite weiterhin mit PHP5 arbeitet. Dies darf aber nur vorübergehend für Tests erfolgen, auf Dauer muss der Zugriff immer über userpages (mit gewünschter PHP-Einstellung) erfolgen nicht über userpages7.
Benutzerspezifische PHP-Einstellungen
Die Skriptsprache PHP kennt zahlreiche Einstellungen. Ein Teil dieser Einstellungen kann von jedem Benutzer einzeln, lokal verändert werden. Auf diese Weise kann z.B. die log-Datei für Fehlermeldungen in das eigene Verzeichnis umgeleitet werden, so das mögliche Fehlermeldungen sichtbar werden.
Alle Benutzer-eigenen PHP-Einstellungen müssen in einer Datei .user.ini gesammelt werden, die genau in dem Verzeichnis liegen muss, in dem auch die PHP-Datei liegt, die im Browser aufgerufen wird.
Es darf natürlich mehrere .user.ini-Dateien in unterschiedlichen Verzeichnissen geben.
Eine Beispiel-.user.ini-Datei des Benutzers mustermann könnte wie folgt aussehen:
; comments in this file only by using: ";"
; In php-fpm and php user settings can locally only be set in a
; .user.ini file residing in the very same directory like
; the php script executed. Changing a setting here might
; take up to 5min to become effective because of caching.
; .user.ini files in other parent directories are *not* searched
; Settings that can be changed in a .user.ini are limited. See:
; http://php.net/manual/de/configuration.file.per-user.php
; http://www.php.net/manual/en/ini.list.php
; Trying to set php values in .htaccess leads to an apache error.
;
display_errors = On; # Display Error messages in Browser
html_errors = On; # Also show HTML-errors
max_execution_time = 15; # The maximal execution time for scripts
; where to write error log messages
error_log = /home/mustermann/public_html/error_log.txt;
Werden Einstellungen in einer .user.ini-Datei vorgenommen bzw verändert, kann es durch caching bis zu 5min dauern, bis das diese Einstellungen wirksam werden.
Bekannte Inkompatibilitäten zwischen PHP5 und PHP7
Die Sprache PHP entwickelt und verändert sich naturgemäß. Daraus können Probleme bei der Umstellung der eingesetzten PHP-Version für existierende Webseiten entstehen.
Unter folgendem Link finden Sie eine Liste von Änderungen (in Englisch) für den Umstieg von PHP5 auf PHP7.
Viele weitere Informationen zur Benutzer-eigenen Webseiten finden Sie in der FAQ zur Homepage.