Technische Daten der Webserver und der Infrastruktur

Allgemeine Daten

Das Webhosting-Team betreibt die Infrastruktur (s.u) mit bewährten Komponenten:

  • GNU/Linux-Betriebssysten (Debian)
  • Apache-Webserver in der Version 2.4
  • PHP als Skriptsprache (s.u.)
  • MySQL-Datenbanken

Für Ihre Website steht der folgende Speicherplatz zur Verfügung:

  • 10 GB für den Webspace im Filesystem
  • Mehrere Hundert MB für die optionale Datenbank

Es erfolgt häufig eine automatische Sicherung (Backup) Ihrer Daten im Filesystem und Ihrer Datenbank. Auf die Backups des Filesystems können Sie teilweise selbst zugreifen (sog. Filesystem-Snapshots). Dies macht es in vielen Fällen überflüssig, dass Sie selbst eigene Backups anlegen.

Größenbeschränkung für Filesystem-Daten (Quotum)

Beim Webspace im Filesystem handelt es sich um das Home-Directory der Funktionskennung, mit der Ihre Website verwaltet wird. In diesem Home-Directory befindet sich auch das Document-Root der Website. Deshalb ist Ihr Home-Directory auch auf allen Rechnern des HTTP-Daemon-Pools (s.u.) und auf dem Zugangsrechner zugreifbar.

Für sämtliche Daten im Home-Directory gilt eine harte Größenbeschränkung, d.h., das gesamte Datenvolumen im Filesystem kann eine bestimmte Menge nicht überschreiten. Diese Beschränkung soll primär verhindern, dass bei einer Fehlersituation der belegte Plattenplatz beliebig anwächst.

Alle Daten im Home-Directory werden auf das Quotum angerechnet. Dazu gehören z. B. auch ältere Versionen eines Software-Pakets, Backups, Log-Daten oder Caches, die Sie per Hand anlegen, oder die von einer PHP-Anwendung (z.B. einem Content Management System) automatisch erzeugt werden.

Tipp

Um ein Erreichen des Quotums zu vermeiden, ist die folgende Vorgehensweise sinnvoll:

  • Verschaffen Sie sich einen Überblick, ob bei Ihrer Website Daten anfallen, die kontinuierlich anwachsen und die Sie nicht dauerhaft benötigen.
  • Räumen Sie derartige Daten regelmäßig oder zumindest bei Bedarf auf.
    Zum Glück besitzen viele der größeren PHP-Anwendungen einen konfigurierbaren Mechanismus, der automatisch aufräumt.

PHP

Anbindung

Die Anbindung von PHP erfolgt mit Hilfe von PHP-FPM. Dadurch laufen die PHP-Prozesse Ihrer Website mit den Rechten der Funktionskennung Ihrer Website.

Verfügbare PHP-Versionen

In der Infrastruktur des LRZ-Webhosting stehen normalerweise mehrere PHP-Versionen zur Verfügung. Zur Zeit sind dies die Versionen 7.3, 7.4 und 8.0 (Stand November 2021). Eine der verfügbaren Versionen ist jeweils voreingestellt (derzeit PHP 7.3). Beim Einrichten einer neuen Website wird diese Voreinstellung für Ihre Website konfiguriert.

Sie können frei eine andere der zur Verfügung stehenden Versionen wählen. Leider können Sie die dazu erforderliche Konfigurationsänderung nicht selbst durchführen. Kontaktieren Sie zur Änderung bitte das Webhosting-Team mit Hilfe eines authentifizierten Incident: Variante "Selfservice" (d.h. mit Login) beim Webformular für den Servicedesk.

Hinweis

Das PHP-Entwicklungsteam unterstützt einen Major Release wie PHP 7.3 oder 7.4 nur zwei Jahre lang (siehe "Supported Versions").

Wenn ein Major Release keine Sicherheitsaktualisierungen mehr erhält, werden auch wir für diese PHP-Version keine Unterstützung mehr anbieten können, um Sicherheitsrisiken zu vermeiden. Dies bedeutet, dass wir Websites in unserem Hosting, die mit der aus dem Support fallenden PHP-Version laufen, auf die nächsthöhere Major-Version anheben werden (z.B. von PHP 7.3 auf 7.4). Diese Aktion geschieht normalerweise Anfang Dezember jedes Jahres. In diesem Zuge müssen Sie dafür Sorge tragen, dass Ihre Webapplikation mit der nächsthöheren PHP-Version kompatibel ist. Wenn Sie ein CMS wie TYPO3 oder Wordpress nutzen, finden Sie Informationen zur Kompatibilität normalerweise in den Systemanforderungen.

Wenn eine PHP-Umstellung ansteht, werden wir Sie zeitnah (i.d.R. mit mehreren Wochen Vorlauf) darüber informieren.

In Fällen, in denen eine andere als die Standard-PHP-Version für die Website konfiguriert wurde (z. B. wenn Sie eine sehr aktuelle PHP-Version verwenden), wird die PHP-Version Ihrer Website nicht automatisch geändert.

PHP-Erweiterungen

Neben dem PHP-Kern stellen wir eine Reihe von Erweiterungen/Bibliotheken zur Verfügung, wie z.B. gd (Grafik-Bibliothek), ftps, imap, intl, ldap, mbstring oder mcrypt.  Wegen des Pflegeaufwands können wir weitere Bibliotheken nur in einem sehr begrenzten Umfang zur Verfügung stellen. Wenden Sie sich bitte an das Webhosting-Team, falls Sie etwas vermissen. Analoges gilt für die Anpassung von PHP-Parametern.

PHP auf der Kommandozeile und in Cron-Jobs

Auf dem Zugangsrechner steht PHP auch auf der Kommandozeile und für Cron-Jobs zur Verfügung. Das Standard-Kommando php führt PHP in der aktuell für Ihre Website eingestellten Version aus. Diese Version kann man mit Hilfe der Option -v ermitteln. Beim unten gezeigten Beispiel ist PHP 7.4 für die Website konfiguriert und wird mit der Patchversion 11 (3. Abschnitt der Versionsnummer) ausgeführt:

user@webdev02:~$ php  -v
PHP 7.4.11 (cli) (built: Oct 8 2020 17:32:43) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.11, Copyright (c), by Zend Technologies

Die PHP-Version, die Sie mit dem Kommando php ausführen, kann sich updatebedingt allerdings ändern (siehe Hinweiskasten unter "Verfügbare PHP-Versionen"). Deshalb stellen wir für jede Major-PHP-Version ein versionsspezifisches Kommando wie z.B. php7.4 zur Verfügung (s.u).

Tipp

Die Konfiguration Ihrer Website bestimmt, welche Major-PHP-Version Ihre Website nutzt (s.o.).

Um Probleme bei der Ausführung Ihrer Webanwendung zu vermeiden, sollte man diese Major-PHP-Version auch auf der Kommandozeile oder in Cron-Jobs oder anderen Skripten verwenden. Deshalb sollte man auf das allgemeine Kommando php verzichten und das passende versions-spezifische PHP-Kommando verwenden (s.u.), um unerwartete Versionssprünge zu vermeiden.

Es gibt mehrere Methoden, wie man herausfinden kann, welche PHP-Versionen installiert sind und wie die spezifischen PHP-Kommandos heißen:

user@webdev02:~$ update-alternatives --list php
/usr/bin/php7.1
/usr/bin/php7.2
/usr/bin/php7.3
/usr/bin/php7.4
/usr/bin/php8.0

user@webdev02:~$ ls /usr/bin/php*
/usr/bin/php  /usr/bin/php7.1  /usr/bin/php7.2	/usr/bin/php7.3  /usr/bin/php7.4  /usr/bin/php8.0

user@webdev02:~$ ls /bin/php*
/bin/php  /bin/php7.1  /bin/php7.2  /bin/php7.3  /bin/php7.4  /bin/php8.0

Anmerkungen:

  • Die PHP-Kommandos sind sowohl im Verzeichnis /bin als auch im Verzeichnis /usr/bin installiert.
  • Die Varianten der PHP-Kommandos in /bin und /usr/bin sind identisch.
  • Normalerweise sind /bin und /usr/bin im Kommando-Suchpfad enthalten (d.h., beide Verzeichnisse kommen in der Environment-Variable $PATH vor; dies können Sie mit dem Kommando echo $PATH überprüfen). Man kann deshalb meist auf die Angabe des absoluten Pfads verzichten und einfach nur das Kommando angeben (z.B. php oder php7.4).

Tipp

Cron-Jobs laufen in einer eigenen Umgebung ab. In dieser Umgebung ist z.B. der Kommando-Suchpfad anders gesetzt als beim Arbeiten mit einer interaktiven Shell. Sie sollten deshalb zur Vermeidung von Problemen folgendes tun:

  • Verwenden Sie absolute Kommando-Pfade bei der Definition des Cron-Jobs.
  • Wenn der Cron-Job ein Shell-Skript aufruft, sollten Sie am Anfang des Skripts den Kommando-Suchpfad explizit setzen (d.h. die Environment-Variable $PATH).

Infrastruktur der Betriebsumgebung

Zur Verbesserung der Verfügbarkeit und Ausfallsicherheit wird beim LRZ-Webhosting die Auslieferung der Websites auf mehrere sog. Webserver-Daemon-Pools aufgeteilt, die hinter einem Service Load Balancer (Abk. SLB;  siehe den "Dienstleistungskatalog", Abschnitt 6.2) liegen. Der SLB ist eine redundant aufgebaute Spezial-Hardware, die beim LRZ auch redundant an das Internet angebunden ist.

Ein Webserver-Daemon-Pool besteht aus mehreren Webserver-Rechnern sowie einem Datenbank-Rechner. Die Webserver-Rechner sind identisch konfiguriert. Auf jedem Daemon-Rechner läuft ein Daemon der Webserver-Software Apache, der Zugriffe auf alle Websites des Pools bearbeiten kann. Die Websites sind als virtuelle Hosts (kurz: vHosts) umgesetzt. Wenn Sie Ihre Website z.B. mit Ihrem Webbrowser aufrufen, leitet der SLB den Zugriff zu einem der im Augenblick verfügbaren Daemon-Rechner des zuständigen Daemon-Pools weiter.

Gut zu wissen

  • Beim LRZ-Webhosting werden mehrere Webserver-Daemon-Pools mit jeweils einem Shared-Hosting-Setup betrieben. Es ist ein häufiges Missverständnis, dass jeder Website auf einem eigenen dedizierten Rechner betrieben wird.
  • Die Websites in demselben Webserver-Daemon-Pool teilen sich alle Ressourcen des Pools.
  • Der Zugriff auf eine Website wird von einem der gerade verfügbaren Server in dem Daemon-Pool verarbeitet. Auf diese Weise entsteht eine redundante Infrastruktur.
  • Unsere Kunden haben keinen direkten Zugriff auf die Rechner in den Daemon-Pools. Für die technische Pflege eines Webauftritts steht ein Zugangsrechner, der FTP-Server unter ftp.lrz.de und ein phpMyAdmin-Server zur Verfügung. Für weitere Informationen lesen Sie bitte unseren Artikel Zugriffsmöglichkeiten.
  • Bei der Pflege eines Webauftritts arbeiten Sie immer unter der Funktionskennung der Website und mit den damit verbundenen Rechten. in unserer Webhosting-Infrastruktur ist es nicht vorgesehen, dass Sie Adminberechtigungen/"Root"-Rechte erhalten.