PHP 8.1 RC3 zum Testen verfügbar

Auf unseren Webservern steht ab sofort der dritte Release Candidate der kommenden PHP-Version 8.1 zu Testzwecken zur Verfügung.

Beachten Sie dabei bitte, dass es sich noch nicht um die endgültige Release-Version handelt, die planmäßig gegen Ende November erscheinen soll. Bis dahin werden insgesamt 6 Release Candidate Versionen erscheinen, die nur zu Testzwecken genutzt werden sollten.

Mit dem Testen der Release Candidate Versionen können Sie die PHP Entwickler bei der Suche nach letzten Fehlern und Problemen unterstützen und die Kompatibilität Ihrer Web-Anwendungen mit der neuen PHP-Version testen.

Änderungen in PHP 8.1

Da es sich um ein neues Minor-Release handelt, fallen die nicht abwärtskompatiblen Änderungen zur Vorgängerversion 8.0 nur geringfügig aus.

Eine Änderung, die zu Problemen führen kann, ist die Änderung der Standardeinstellung für die MySQLi-Fehlerbehandlung. Bisher war die Standardeinstellung MYSQLI_REPORT_OFF, damit wurden eventuelle Fehler nicht abgefangen, und die Programmausführung im Fehlerfall einfach fortgesetzt. In PHP 8.1 ändert sich die Standardeinstellung auf MYSQLI_REPORT_ERROR|MYSQLI_REPORT_STRICT, damit wird im Fehlerfall eine Exception generiert. Falls diese Exception nicht behandelt wird, können Programme jetzt Fehler anzeigen.

Eine Übersicht über alle Änderungen und Neuerung in PHP 8.1 finden Sie hier.

Neuerungen in PHP 8.1

Eine wichtige Neuerung sind die sogenannten Fibers, damit können in PHP mehrere Aufgaben nebenläufig ausgeführt werden. Es handelt sich jedoch nicht um echte Parallelität; wird ein Fiber gestartet, so wird das Hauptprogramm angehalten, bis der Fiber unterbrochen oder beendet wird . Dieses Feature richtet sich hauptsächlich an Entwickler von PHP-Frameworks, die damit beispielsweise Event Loops implementieren können.

Eine weitere Neuerung ist die Unterstützung von Enumerations, damit können einfache Datentypen mit mehren vordefinierten Werten umgesetzt werden.

Verbesserungen in PHP 8.1

Wir konnten in ersten Tests eine Verbesserung der Ausführungsgeschwindigkeit im Vergleich zur Vorgängerversion 8.0 um bis zu 10% feststellen.

PHP 8.1 aktivieren

Sie können PHP 8.1 wie gewohnt entweder über das Kundenmenü aktivieren, oder über eine .htaccess-Konfigurationsdatei im Anwendungsverzeichnis auf dem Webserver mittels folgender Direktive:
AddHandler application/x-httpd-php81 .php


Datenbankserver nicht mehr über öffentliche IP-Adressen erreichbar

Die meisten unserer Datenbankserver (MySQL und MariaDB) waren bisher über öffentliche IP-Adressen auch außerhalb unseres Rechenzentrums erreichbar. Dies ist aus Sicherheitsgründen nicht ideal, weshalb wir für neue Datenbankserver seit Anfang 2020 nur noch interne IP-Adressen nutzen.

Für ältere Datenbankserver werden wir nun zum 04.10.2021 ebenfalls eine Umstellung auf interne IP-Adressen vornehmen, damit alle Datenbankserver nur noch innerhalb des Rechenzentrums von unseren Webservern aus erreichbar sind. Für Zugriffe außerhalb unseres Rechenzentrums ist dann der Aufbau eines SSH-Tunnels zu einem unserer Webserver erforderlich.

Wen betrifft diese Änderung?

Diese Änderung ist nur für wenige Kunden relevant, die von ihrem Rechner über lokal installierte Clientsoftware wie HeidiSQL oder Warenwirtschaftssysteme direkt auf unsere Datenbanken zugreifen. Falls Sie unsere Datenbanken nur für Web-Anwendungen wie WordPress nutzen, und nicht von außerhalb auf die Datenbankserver zugreifen, ändert sich für Sie nichts.

Welche Datenbankserver sind betroffen?

Die Änderung betrifft folgende Datenbankserver (MySQL 5.5, 5.6, 5.7, 8.0, MariaDB 10.1 bis 10.5):

  • db1
  • db2
  • db3
  • db4
  • db5
  • db6
  • db7
  • db8
  • db9
  • db10
  • db12
  • db13
  • db15
  • db19
  • db21
  • db22
  • db26
  • db27

Alle anderen Datenbankserver sind schon von Anfang an nur über interne IP-Adressen erreichbar.

Wie funktioniert ein SSH-Tunnel?


Ein SSH-Tunnel stellt eine verschlüsselte VPN-Verbindung zu einem unserer Webserver her. Über diesen Tunnel können Sie sich dann mit unseren Datenbankservern verbinden, als würde es sich um lokale Datenbankserver handeln.

In unserem FAQ-Artikel “Wie kann ich mich verschlüsselt mit einem MySQL-Server verbinden?” beschreiben wir den Verbindungsaufbau über einen SSH-Tunnel für verschiedene Software-Clients und Betriebssysteme.

Wir haben festgestellt, dass nur auf etwa 0,6% aller Datenbanken ohne einen SSH-Tunnel zugegriffen wird. Nutzer, die mit einem lokalen SQL-Client auf die Datenbankserver zugreifen, haben hier nur einen überschaubaren Umstellungsaufwand. Aufwendiger könnte die Umstellung z.B. von Warenwirtschaftssystemen werden. Wir beraten Sie hier gern und helfen, eine pragmatische Lösung zu finden.

Wichtig ist: Nutzer, die weiterhin von außerhalb unserer Webserver auf unsere MySQL- und MariaDB-Datenbanken zugreifen möchten, müssen vor dem 04.10.2021 aktiv werden, damit dieser Zugriff auch nach der Umstellung noch funktioniert.

Wir werden alle Kunden, von denen wir aus Logdateien wissen, dass sie in den letzten Wochen entsprechende Zugriffe auf Datenbanken hatten, explizit anschreiben. Hören Sie nichts von uns, besteht mit großer Wahrscheinlichkeit auch kein Anpassungsbedarf.

Aktualisierung vom 30.09.2021: Ursprünglich sollte die Änderung am Freitag, den 01.10.2021 durchgeführt werden. Um bei eventuellen Problemen für Kunden besser erreichbar zu sein, haben wir die Umstellung auf Montag, den 04.10.2021 verschoben.

Update auf Node.js 14

Node.jsAuf unseren Webservern ist aktuell noch Node.js in Version 10 installiert. Dies war die zum Zeitpunkt der Erstellung unseres Webserver-Grundsystems aktuelle Long-Term-Support-Version (LTS).

Node.js wird auf unseren Webservern normalerweise nur in der Shell (SSH) genutzt; eine häufig genutzte Node.js-Anwendung ist Less.js.

Die Node.js-Version 10 wird ab dem 30.04.2021 nicht mehr weiter von den Node.js-Entwicklern unterstützt. Wir werden daher alle Webserver am 03.05.2021 auf die aktuelle LTS-Version 14 umstellen. Dieses Update kann unter Umständen zu Kompatibilitätsproblemen mit älteren Node.js-Anwendungen führen. Bei mittels npm installierten Node.js-Paketen sollten Sie ggf. ein Update durchführen.

Neu: Browserbasierter Dateimanager (WebFTP)

Auf vielfachen Kundenwunsch haben wir einen browserbasierten Dateimanager installiert, mit dem Sie Dateien auf dem Webserver über Ihren gewohnten Web-Browser hochladen und bearbeiten können.

Sie müssen so kein zusätzliches FTP-Programm installieren, um eine Webseite oder eine Webanwendung auf den Webserver hochzuladen. Besonders praktisch ist WebFTP auch, wenn Sie z.B. eine Konfigurationsdatei wie php.ini oder .htaccess bearbeiten wollen – dies ist nun direkt im Browser möglich. Die URL des Dateimanagers lautet webftp.variomedia.de.

Die Verbindung zum Webserver erfolgt verschlüsselt mittels SFTP. Auch die Datenübertragung zwischen Browser und WebFTP-Server erfolgt verschlüsselt (https://…). Wir nutzen als Software das beliebte WebFTP-Programm MonstaFTP.

Sie können sich bei MonstaFTP mit Ihren FTP-Zugangsdaten anmelden, die Sie im Kundenmenü einsehen können. Als Hostnamen wählen Sie eine beliebige Domain aus Ihrem Webhosting-Paket:

MonstaFTP

Wenn Sie auf eine Domain zugreifen möchten, die zwar schon bei uns eingerichtet ist, aber noch nicht bei uns registriert ist, können Sie an den Domainnamen das Suffix “domainpreview.eu” anfügen, also “meine-domain.de.domainpreview.eu”.

Beachten Sie bitte folgende Einschränkungen gegenüber einem lokalen FTP-Programm:

  • Die maximale Dateigröße für einen Upload beträgt 250 MB pro Datei.
  • Es kann nur auf Variomedia Webserver zugegriffen werden
  • Bei der Nutzung von virtuellen FTP-Benutzern muss der Port auf 2222 geändert werden

Wie sicher sind meine Daten bei Variomedia?

Der Brand eines Rechenzentrums unseres Mitbewerbers OVH und die damit verbundenen Datenverluste haben bei einigen unserer Kunden Fragen zur Sicherheit ihrer Daten bei Variomedia aufgeworfen. Wir nutzen diesen Anlass, um hier unsere Backup-Strategien zu beschreiben und die Brandschutzmaßnahmen im Rechenzentrum zu erläutern.

Was wird gesichert?

Wir führen tägliche (bzw. nächtliche) Sicherungen aller Webspace-Inhalte, MySQL-Datenbanken und E-Mail-Postfächer durch. Gesichert werden zudem alle Informationen, die in speziellen Datenbanken vorliegen, z.B. DNS-Einträge, Kalender und Kontakte in Open-Xchange und Webmail-Profile.

Eine besondere Maßnahme gibt es im besonders ausfallkritischen Bereich des E-Mail-Hostings: Alle Inhalte von Postfächern werden in Echtzeit auf einen zweiten Server synchronisiert. Dieser dient als “Hot Standby”. Fällt ein E-Mail-Backend aus, kann der zweite Server die Arbeit sofort übernehmen und es gehen keine E-Mails verloren.

Wie lange werden die Backups gespeichert?

Alle täglichen Backups stehen 30 Tage lang zur Verfügung. Zusätzlich bewahren wir ein Backup von jedem Sonntag für 6 Monate auf. Monatliche Backups von jedem ersten Sonntag im Monat halten wir für weitere 5 Monate vor. Insgesamt ist das älteste Backup daher in der Regel etwa ein Jahr alt.

Wie lassen sich Daten aus einem Backup wiederherstellen?

Auf Webspace- und MySQL-Backups können Sie selbst zugreifen. Eine Anleitung dazu finden Sie im FAQ-Artikel “Wie spiele ich ein Backup auf dem Server ein?”. Die Wiederherstellung ist auch durch uns möglich (kostenpflichtig).

Postfach-Inhalte können nur durch unsere Systemadministratoren wiederhergestellt werden. Nähere Informationen dazu finden Sie im FAQ-Artikel “Gibt es Backups meiner E-Mail-Postfächer?”.

Wohin wird gesichert?

Die täglichen Backups werden auf Servern gesichert, die im gleichen Rechenzentrum stehen, wie die Quellserver, von denen gesichert wird. Diese Backups helfen also nur bei Hardware-Fehlern oder bei selbst verursachten Datenverlusten, würden bei einem Brand im Rechenzentrum aber nichts nützen.

Aus diesem Grund betreiben wir in einem zweiten Rechenzentrum (ebenfalls in Berlin, aber geografisch getrennt) weitere Server, die als “Off-Site-Backup” dienen. Sobald die regulären, täglichen Backups erledigt sind, werden diese vom lokalen Backup-Server zum Off-Site-Backup-Server übertragen und dort für 30 Tage aufbewahrt.

Falls es also einen Brand in unserem primären Rechenzentrum geben sollte, stehen alle Daten vom Vortag im zweiten Rechenzentrum zur Verfügung und könnten von dort auf produktiv genutzte Server übertragen werden. Dieses Off-Site-Backup findet bei uns für alle auf unseren Servern gehosteten Daten statt und muss nicht kostenpflichtig gebucht werden.

Welche Brandschutzmaßnahmen werden im Rechenzentrum getroffen?

Die Server für unsere Webhosting-, Datenbanken- und E-Mail-Dienste sind in einem Rechenzentrum in Berlin untergebracht. Da es sich um ein sehr großes Rechenzentrum handelt, ist es in mehrere Gebäudebrandabschnitte mit hoher Feuerwiderstandsklasse (F 90 A) unterteilt. Die einzelnen Serverräume innerhalb des Rechenzentrums sind ebenso als Brandbekämpfungsabschnitte (F 90 A) ausgeführt. Dadurch wird verhindert, dass sich ein Brand innerhalb eines Serverraums innerhalb kurzer Zeit auf weitere Serverräume ausbreiten kann.

Um die Ausbreitung eines Brandes innerhalb der Serverräume zu erschweren, wurden für den Innenausbau ausschließlich spezielle, nicht-brennbare oder schwer entflammbare Materialien verwendet.

Die Serverräume sind mit Brandmeldern und einer automatischen Gaslöschanlage ausgerüstet: Im Falle eines Brandes wird der betroffene Serverraum automatisch mit einem speziellen Löschgas geflutet, das den Brand erstickt. Durch das Löschgas entstehen keine zusätzlichen Schäden an den Servern, wie sie etwa beim Löschen mit Wasser entstehen würden.

Zusätzlich zu konventionellen Brandmeldern sind die Serverräume mit einem Brandfrüherkennungssystem ausgestattet: Werden erste Anzeichen eines möglichen Brandes erkannt, so erfolgt eine umgehende Kontrolle durch Mitarbeiter des Rechenzentrums, die permanent vor Ort sind.

Durch diese Maßnahmen ist ein Brand des Rechenzentrums mit totalem Datenverlust sehr unwahrscheinlich.

PHP 8.0 verfügbar

PHP

Wie in den Jahren zuvor erscheint auch in diesem Jahr gegen Ende November eine neue PHP-Version. In diesem Jahr steht ein großer Versionssprung von PHP 7.4 auf PHP 8.0 an, der mit einigen größeren und nicht abwärtskompatiblen Änderungen verbunden ist. Die neue PHP Version 8.0 ist heute offiziell erschienen und kann ab sofort auf unseren Webservern genutzt werden.

Änderungen in PHP 8.0

In PHP 8.0 wurden zahlreiche nicht abwärtskompatible Änderungen vorgenommen, die zu Kompatibilitätsproblemen führen können. Diese Änderungen betreffen hauptsächlich Funktionen, die bereits in den Vorgängerversionen 7.x als veraltet gekennzeichnet waren.

In PHP 8.0 wurde die XMLRPC-Extension entfernt, die in den älteren PHP-Versionen auf unseren Webservern noch verfügbar ist. Diese Extension ist für PHP 8.0 nur noch als optionales Zusatzmodul bei PECL verfügbar.

Eine wichtige Änderung ist, dass der @-Operator nun keine kritischen Fehlermeldungen mehr unterdrückt. Dies kann zu Problemen führen, wenn in den Fehlermeldungen vertrauliche Informationen (z.B. Datenbankzugangsdaten) einsehbar sind. Wir haben daher bei PHP 8.0 aus Sicherheitsgründen die PHP-Option display_errors=Off standardmäßig gesetzt, Sie können diese bei Bedarf per php.ini bzw. .user.ini-Konfigurationsdatei wieder deaktivieren.

Eine weitere Änderung, die häufig zu Problemen führt ist, dass der Zugriff auf Array-Elemente nun nicht mehr mittels geschweifter Klammern {} möglich ist, sondern nur noch eckige Klammern [] erlaubt sind.

Eine Übersicht über alle nicht abwärtskompatiblen Änderungen finden sie hier.

Neuerungen und Verbesserungen in PHP 8.0

Die vielleicht wichtigste technische Neuerung ist die Integration eines sogenannten Just-In-Time (JIT) Compilers. PHP ist eine interpretierte Skriptsprache, ein PHP-Skript muss vor der Ausführung vom menschenlesbaren Quellcode in ausführbaren Maschinencode für Computer umgewandelt werden. Diese Umwandlung erfolgt bei PHP aber nicht direkt, sondern über einen Zwischenschritt: PHP erzeugt keinen nativen Maschinencode für bestimmte Prozessoren, sondern erzeugt aus dem Quellcode in einem Zwischenschritt sogenannten Bytecode für eine virtuelle Maschine (die Zend Engine), die daraus dann ausführbaren Maschinencode für Prozessoren erzeugt. Dieser Bytecode kann zur Beschleunigung zwischengespeichert werden (OpCache), der Maschinencode muss aber immer neu erzeugt werden. Der neue JIT-Compiler kann nun auch Maschinencode erzeugen und zwischenspeichern, dadurch kann bei sehr CPU-lastigen Skripten eine deutliche Performance-Steigerung erzielt werden. Die meisten Web-Anwendungen sind allerdings nicht besonders CPU-lastig, so ergibt sich z.B. für eine WordPress-Installation eine kaum messbare Verkürzung der Seitenladezeit. Der JIT-Compiler kann nicht mit OpCache im reinen Dateimodus genutzt werden, auf unseren Webservern funktioniert er daher nur in Webhosting-Paketen mit PHP-FPM (Pro- oder Dedicated-Server). Allerdings muss PHP-FPM dann bei jeder Änderung an einer PHP-Datei neu gestartet werden, was bei Web-Anwendungen mit automatischen Updates problematisch ist. Wir werden den JIT-Compiler daher zunächst nicht einsetzen.

Eine für Softwareentwickler interessante Neuerung ist die Unterstützung von sogenannten Union Types. Union Types akzeptieren Werte von mehreren unterschiedlichen Typen (z.B. int und float) , die Verwendung lässt sich mit folgendem Beispiel veranschaulichen:

class Number {
    private int|float $number;
 
    public function setNumber(int|float $number): void {
        $this->number = $number;
    }
 
    public function getNumber(): int|float {
        return $this->number;
    }
}

Eine Übersicht über alle Neuerungen in PHP 8.0 finden Sie hier.

Performance-Verbesserungen in PHP 8.0

Wir konnten in ersten Tests eine leichte Verbesserung der PHP-Ausführungsgeschwindigkeit von etwa 5% bis 10% im Vergleich zur Vorgängerversion 7.4 feststellen.

PHP 8.0 aktivieren

Sie können PHP 8.0 wie üblich entweder im Kundenmenü oder per .htaccess-Konfigurationsdatei auf dem Webserver mittels folgender Direktive aktivieren:

AddHandler application/x-httpd-php80 .php

Für weitere Hinweise zur Auswahl der PHP-Version beachten Sie bitte den FAQ-Artikel „Wie kann ich eine bestimmte PHP-Version auswählen?„.

Beachten Sie bitte, dass viele Web-Anwendungen noch nicht mit PHP 8.0 kompatibel sind. Dies betrifft auch das am häufigsten genutzte CMS WordPress in der gegenwärtig aktuellen Version 5.5.3. Die Unterstützung von PHP 8.0 ist für die kommende WordPress-Version 5.6 angekündigt, die voraussichtlich am 8.12. erscheinen wird. Das ebenfalls beliebte CMS Joomla ist ab der der gegenwärtig aktuellen Version 3.9.23 mit PHP 8.0 kompatibel.

PHP 7.2 End of Life

Mit dem Erscheinen von PHP 8.0 endet auch die Unterstützung der älteren PHP-Version 7.2 durch das PHP-Entwicklerteam, es wird keine weiteren offiziellen Updates für diese PHP-Version mehr geben.

Falls Sie noch PHP 7.2 für Ihre Webseiten nutzen, sollten Sie aus Sicherheitsgründen möglichst bald auf eine neuere PHP-Version umstellen. Wir empfehlen, momentan noch nicht die neue PHP Version 8.0 zu nutzen, da hier noch zahlreiche Kompatibilitätsprobleme auftreten können. Verwenden Sie zunächst besser noch die Vorgängerversionen PHP 7.4 oder 7.3.

PHP 8.0 RC1 zum Testen verfügbar

Ab heute können Sie den ersten Release Candidate der neuen PHP Version 8.0 auf unseren Webservern ausprobieren. Beachten Sie dabei bitte, dass es noch nicht die endgültige Release-Version ist, die planmäßig gegen Ende November erscheinen soll, sondern der erste von voraussichtlich 4 Release Candidates, die nur zu Testzwecken genutzt werden sollten.

Sie können damit die PHP Entwickler bei der Suche nach letzten Fehlern und Problemen unterstützen und die Kompatibilität Ihrer Web-Anwendungen mit der neuen PHP-Version testen.

Änderungen in PHP 8.0

Mit dem Sprung auf Version 8.0 gehen diverse nicht abwärtskompatible Änderungen zur Vorgängerversion 7.4 einher, die Anpassungen an vielen Web-Anwendungen erforderlich machen. Es wurden einige als veraltet gekennzeichnete Funktionen entfernt, aber auch neue Funktionen hinzugefügt und Verbesserungen vorgenommen.
Aktuell kommt es bei vielen Web-Anwendungen noch zu kleineren Problemen mit PHP 8.0, dies sollten aber durch Updates im Laufe der nächsten Wochen bis zum finalen Release behoben werden.

In PHP 8.0 wurde die XMLRPC-Extension entfernt, die in den älteren PHP-Versionen auf unseren Webservern verfügbar ist. Diese Extension ist für PHP 8.0 nur noch als Zusatzmodul bei PECL verfügbar.

Eine wichtige Änderung ist, dass der @-Operator nun keine kritischen Fehlermeldungen mehr unterdrückt. Dies kann zu Problemen führen, wenn in Fehlermeldungen vertrauliche Informationen wie z.B. Datenbankzugangsdaten einsehbar sind.

Eine Änderung, die häufig zu Problemen führt ist, dass der Zugriff auf Array-Elemente nun nicht mehr mittels geschweifter Klammern {} möglich ist, sondern nur noch eckige Klammern [] erlaubt sind.

Die vielleicht wichtigste Neuerung in PHP 8.0 ist, dass der PHP OpCode Cache nun einen sogenannten Just-in-Time-Compiler erhalten hat, der die Performance bei sehr CPU-lastigen Scripten verbessern kann. Dies führt aber in der Praxis nur zu geringfügigen Performance-Gewinnen, da viele PHP-Anwendungen nicht sehr CPU-lastig sind und viel Zeit mit dem Warten auf Daten z.B. von einer Datenbank verbringen.

Eine Übersicht über alle Neuerungen und Änderungen zur Vorgängerversion 7.4 finden Sie in der PHP-Upgrade-Dokumentation.

Verbesserungen in PHP 8.0

Wir konnten in ersten Tests eine leichte Verbesserung der PHP-Ausführungsgeschwindigkeit von etwa 5% bis 10% feststellen.


PHP 8.0 aktivieren

Sie können PHP 8.0 wie gewohnt entweder über das Kundenmenü aktivieren, oder über eine .htaccess-Konfigurationsdatei im Anwendungsverzeichnis auf dem Webserver mittels folgender Direktive:
AddHandler application/x-httpd-php80 .php

Webmail: Update auf Roundcube 1.4

Wir werden in Kürze unser Webmail auf die aktuelle Roundcube-Version 1.4 umstellen. In dieser Version wurde eine neuer Standard-Benutzeroberfläche (“Skin”) namens “Elastic” eingeführt, die den bisherigen Standard-Skin “Larry” ersetzt. Diese neue, modern gestaltete Oberfläche eignet sich auch für Mobilgeräte wie Tablets oder Smartphones.

(c) roundcube.net

Falls Sie sich bereits zuvor in Roundcube angemeldet haben, und daher noch einen älteren Skin nutzen, werden Sie beim ersten Login in das neue Roundcube gefragt, ob Sie den neuen Standard-Skin aktivieren möchten.

Sie können bei Roundcube zwischen verschiedenen Skins wählen; diese können Sie in den Einstellungen unter dem Menüpunkt Benutzeroberfläche jederzeit ändern. Beachten Sie dabei bitte, dass die Skins “Classic” und “Larry” nicht für Mobilgeräte optimiert sind. Falls Sie das Webmail mit einem Smartphone oder Tablet nutzen möchten, sollten Sie diese beiden Skins nicht nutzen.

Auslaufen der Unterstützung von TLS 1.0 und TLS 1.1

HTTPS

Seit Anfang dieses Jahres haben die bekannten Web-Browser Chrome , Firefox, Safari, Internet Explorer und Edge begonnen, die Unterstützung der mittlerweile veralteten TLS-Versionen 1.0 und 1.1 einzustellen. Das TLS-Protokoll (früher SSL) wird zum verschlüsselten Webseitenabruf (HTTPS) und für den verschlüsselten Versand und Abruf von E-Mails genutzt.

Die TLS-Versionen 1.0 und 1.1 weisen diverse Sicherheitsprobleme auf und sollten nicht mehr genutzt werden. Wir werden daher die Unterstützung dieser TLS-Versionen auf unseren Webservern zum 15. Februar 2020 einstellen. Ab diesem Zeitpunkt werden für HTTPS-Verbindungen zu unseren Webservern nur noch die aktuellen und sicheren TLS-Versionen 1.2 und 1.3 unterstützt. Für E-Mail-Dienste (SMTP, POP3, IMAP) werden wir die veralteten TLS-Versionen zu einem späteren Zeitpunkt deaktivieren, da die Sicherheitsprobleme hauptsächlich HTTPS betreffen.

Mögliche Probleme

Alle modernen Web-Browser unterstützen die aktuelle TLS-Version 1.3. Die Vorgängerversion TLS 1.2 wurde bereits im Jahr 2008 vorgestellt, daher wird sie auch von etwas älteren Betriebssystemen und Web-Browsern unterstützt.

Nur bei sehr alten Browsern und Betriebssystemen (z.B. Windows XP, Android 4.3, iOS 4, OS X Yosemite) kann es durch die Deaktivierung von TLS 1.0 und 1.1 zu Problemen bei HTTPS-Verbindungen kommen.

Sie können bei ssllabs.com prüfen, ob Ihr Browser eine aktuelle TLS-Version unterstützt.

Kunden mit eigenem Webserver (Reseller.Dedicated bzw. Pro.Hosting-Paket ab Pro.B), sowie Nutzer unserer Legacy-Server für alte PHP-Versionen können auf Wunsch weiterhin TLS 1.0 und 1.1 für HTTPS nutzen, falls dies für die Kompatibilität mit älteren Browsern erforderlich sein sollte. Bitte wenden Sie sich dazu an unsere Kundenbetreuung.

PHP 7.4 verfügbar

PHP

Auf unseren Webservern steht ab sofort die heute neu erschienene PHP Version 7.4 zur Verfügung. Dies ist die voraussichtlich letzte Version im Release-Zweig 7, im nächsten Jahr soll dann PHP 8 erscheinen.

Neuerungen und Verbesserungen in PHP 7.4

Mit jeder neuen PHP-Version steigt normalerweise auch die Ausführungsgeschwindigkeit für PHP-Skripte. Wir konnten allerdings in ersten Tests nur kleine Performance-Verbesserungen beim Umstieg von PHP 7.3 auf PHP 7.4 feststellen. Der nächste größere Performance-Sprung in PHP wird erst mit dem für PHP 8 geplanten Just-in-Time-Compiler erwartet.

Eine wichtige Neuerung in PHP 7.4 ist das sogenannte Foreign Function Interface (FFI), mit dem C-Bibliotheken ohne den Umweg über eine PHP-Extension genutzt werden können.

Eine weitere Neuerung ist die Preloading-Funktion von OpCache, mit der ganze PHP-Anwendungen vorgeladen werden können. Bisher arbeitet OpCache nur auf Dateiebene, der OpCode wird für jede PHP-Datei einzeln vorgehalten und muss vom PHP-Intepreter bei jedem Skript-Aufruf zunächst noch zu einem ausführbaren Programm zusammengestellt werden (Linking). Dieser Schritt entfällt beim Preloading, dadurch können PHP-Anwendungen etwas schneller geladen werden.

Die Preloading-Funktion kann jedoch nicht einfach nur aktiviert werden; es ist zusätzlich ein spezielles PHP-Skript erforderlich, das alle benötigten PHP-Dateien in den OpCache lädt.  Ein weiterer Nachteil ist, dass PHP-FPM bei jeder Änderung an einer PHP-Datei neu gestartet werden muss, damit die Änderung übernommen wird. Aufgrund dieser Einschränkung können wir die Preloading-Funktion zunächst nicht anbieten.

Weiterhin wird in OpenSSL-Streams jetzt auch TLS 1.3 unterstützt. Dies ist allerdings nur auf unseren neueren Webservern verfügbar, die schon auf unsere aktuelle Hosting-Platform umgestellt wurden.

Eine für Softwareentwickler interessante Neuerung ist die Unterstützung von sogenannten typed Properties. Properties von Klassen kann damit auf Wunsch ein konkreter Datentyp wie string oder int zugewiesen werden. So kann die Typsicherheit von Properties auch ohne aufwändige getter- und setter-Methoden sichergestellt werden.

Weiterhin kann der Null Coalescing Operator ?? nun auch direkt in Zuweisungen genutzt werden, wie etwa in folgendem Beispiel:

// Fetches the request parameter user and results in 'nobody' if it doesn't exist
$username = $_GET['user'] ?? 'nobody';

Eine weitere Änderung wurde beim Bedingungsoperator ? vorgenommen, dieser war bei PHP im Gegensatz zu fast allen anderen Programmiersprachen bisher linksassoziativ. Dieses Verhalten ist nun veraltet, zukünftig müssen hier Klammern genutzt werden.

Eine Übersicht über alle Neuerungen und Änderungen zur Vorgängerversion 7.3 finden Sie in der PHP-Upgrade-Dokumentation.

PHP 7.4 aktivieren

Sie können PHP 7.4 im Kundenmenü oder für einzelne Verzeichnisse per .htaccess-Konfigurationsdatei auf dem Webserver mittels folgender Direktive aktivieren:

AddHandler application/x-httpd-php74 .php

Für weitere Hinweise zur Auswahl der PHP-Version beachten Sie bitte den FAQ-Artikel „Wie kann ich eine bestimmte PHP-Version auswählen?„.

PHP 7.1 End of Life

Mit dem Erscheinen von PHP 7.4 endet auch die Unterstützung der älteren PHP-Version 7.1 durch das PHP-Entwicklerteam, es wird ab Dezember keine weiteren offiziellen Updates für diese PHP-Version mehr geben.

Falls Sie noch PHP 7.1 für Ihre Webseiten nutzen, sollten Sie aus Sicherheitsgründen auf eine neuere PHP-Version umstellen. Wir empfehlen momentan noch PHP 7.3 zu nutzen, da bei PHP 7.4 noch einige Kompatibilitätsprobleme auftreten können.