Allgemeine Daten

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

  • Linux-Betriebssysten (Debian)
  • Apache-Webserver in der Version 2.4
  • PHP (s.u.)
  • MySQL-Datenbank

Für Ihren Webserver 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.  In vielen Fällen kann man dadurch auf ein eigenes Backup verzichten.

Quota für die Daten im Filesystem

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

Für sämtliche Daten im Home-Directory gilt ein hartes Quota, 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.

Gut zu wissen

Alle Daten im Home-Directory werden auf das Quota 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. ein Content Management System) automatisch erzeugt werden.

Deshalb ist die folgende Vorgehensweise sinnvoll:

  • Verschaffen Sie sich einen Überblick, ob bei Ihrem Webserver 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 Ihres Webservers mit den Rechten der Funktionskennung Ihres Webservers.

Verfügbare Versionen

In der Infrastruktur des LRZ-Webhosting stehen normalerweise mehrere PHP-Versionen zur Verfügung.  Zur Zeit sind dies die Versionen 7.2, 7.3 und 7.4 (Stand Oktober 2020).

Eine der verfügbaren Versionen ist jeweils die Voreinstellung.  Beim Einrichten eines neuen Webservers wird diese Voreinstellung für Ihren Webserver konfiguriert.

Sie können später eine andere mögliche Version 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

Die PHP-Entwickler unterstützen einen Major-Release (d.h. zweite Komponente in der Versionsnummer) nur zwei Jahre lang (siehe "Supported Versions").

Wenn ein Major-Release nicht mehr mit Sicherheits-Patches unterstützt wird, müssen Sie Ihren Webserver zeitnah auf eine Version umstellen, die noch unterstützt wird.

Erweiterungen

Neben dem PHP-Kern sind eine Reihe von Erweiterungen / Bibliotheken installiert, 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 aktuellen Version des jüngsten Release-Zweigs aus (d.h. das PHP mit der höchsten Versionsnummer).  Diese Version kann man mit Hilfe der Option "-v" ermitteln (Stand Oktober 2020):

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 voreingestellte Version kann sich aber jederzeit ändern – und damit natürlich auch das Kommando "php".  Deshalb stellen wir für jede Major-PHP-Version ein dediziertes Kommando zur Verfügung (s.u).

Tipp

Die Konfiguration des eigenen Webservers bestimmt, welche Major-PHP-Version der Webserver nutzt (s.o.).

Zur Vermeidung von Fehlern 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 spezifische PHP-Kommando verwenden (s.u.).

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

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

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

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

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 beide Verzeichnisse "/bin" und "/usr/bin" im Kommando-Suchpfad enthalten (d.h. die Verzeichnisse kommen in der Environment-Variable "$PATH" vor;  Überprüfung mit dem Befehl "echo $PATH").  Man kann deshalb meist auf die Angabe des absoluten Pfads verzichten und einfach nur das Kommando angeben (z.B. "php" oder "php7.3").

Gut zu wissen

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 Fehlern folgendes machen:

  • Bei der Definition des Cron-Jobs selbst sollte man bei den Kommandos absolute Pfade verwenden.
  • Wenn der Cron-Job aus einem Shell-Script besteht, sollte man am Anfang des Scripts den Kommando-Suchpfad explizit setzen (d.h. die Environment-Variable "$PATH").

Infrastruktur

Zur Verbesserung der Verfügbarkeit und Ausfallsicherheit werden beim LRZ-Webhosting die Webserver auf mehrere "Daemon-Pools" aufgeteilt, die hinter einem Service Load Balancer (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 Daemon-Pool besteht aus mehreren Daemon-Rechnern und aus einem Datenbank-Rechner für die Datenbanken in diesem Pool.

Die Daemon-Rechner eines Pools sind identisch konfiguriert.  Auf jedem Daemon-Rechner läuft ein Apache-Daemon, der Zugriffe auf alle (virtuellen) Webserver des Pools bearbeiten kann.

Beim Aufruf einer Webseite durch einen externen Browser leitet der SLB (s.o) den Zugriff zu einem der im Augenblick verfügbaren Daemon-Rechner des zuständigen Daemon-Pools weiter.

Gut zu wissen

  • Beim LRZ-Hosting werden mehrere (Daemon-)Pools mit jeweils einem Shared-Hosting-Setup betrieben.
    Es ist ein häufiges Missverständnis, dass jeder Webserver auf einem eigenen dedizierten Rechner betrieben wird.
  • Die Webserver in einem Daemon-Pool teilen sich die Ressourcen des Pools.
  • Die Zugriffe auf eine Webseite können von mehreren Rechnern bearbeitet werden (nämlich von den gerade verfügbaren Daemon-Rechnern des eigenen Pools).
  • Die Kund*innen haben keinen (interaktiven) Zugriff auf die Rechner in den Daemon-Pools.
  • Für die technische Pflege eines Webauftritts steht ein Zugangsrechner, der FTP-Server "ftp.lrz.de." und ein phpMyAdmin-Server zur Verfügung.
  • Bei der Pflege eines Webauftritts arbeitet man immer unter der Funktionskennung des Webservers;  man besitzt auf keinem Rechner der Webhosting-Infrastruktur Administrator-Rechte.
  • No labels