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.

  1. 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.
  2. 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!

Setzen der grundlegenden Zugriffsrechte

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.

Zugriffsbeschränkungen auf die Webseite via .htaccess

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-Landau zugreifbar sein, kann eine Datei .htaccess mit folgendem Inhalt in public_html angelegt werden:

AuthName "Private"
AuthType Basic
AuthBasicProvider ldap-ko-uid ldap-kold-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.

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:

  1. Schaue in einer lokalen Benutzer-Datenbank nach.
  2. Schaue in der uni-weiten Benutzer-Datenbank nach.

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/public_html/.htpasswd
AuthBasicProvider file ldap-ko-uid ldap-kold-mail
require valid-user # Erlaube jede uni-Kennung mit Authentifizierung #require user uniuser # erlaube nur Zugriff für die eine Kennung: "uniuser"

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.

CGI-Skripte

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.

PHP

Auf userpages kann zum Aufbau der eigenen Webseiten auch PHP verwendet werden. PHP-Skripte laufen immer mit den Rechten des jeweiligen Benutzers, 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.  Über die Webseite wird letztlich eine Datei .userpages.php.v7 im Benutzerverzeichnis anlegt, falls php7 verwendet werden soll, ansonsten 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.

Weitere Informationen

Viele weitere Informationen zur Benutzer-eigenen Webseiten finden Sie in der FAQ zur Homepage.