Zurück

Vererbung von PHP-Versionen

5 Min Lesedauer · Aktualisiert am 13.09.2023

Wunderst du dich, warum die PHP-Version, welche du im PHP-Versionsmanager im my.cyon eingestellt hast, nicht greift? Dann hat dies wohl mit der etwas speziellen Vererbung unter LiteSpeed zu tun, was wir mit diesem Artikel erklären möchten. Befindest du dich hingegen in der Kommandozeile, folge der Beschreibung im Artikel «PHP-Standardversion für die Kommandozeile festlegen».

Funktionsweise des PHP-Versionsmanagers

Über den PHP-Versionsmanager lassen sich die PHP-Versionen eines Webhostings steuern. Welche PHP-Versionen dabei verfügbar sind, haben wir unter «Verfügbarkeit einer PHP-Version» dokumentiert. Diese lassen sich individuell für einzelne Verzeichnisse innerhalb des public_html-Ordners festlegen oder global für den gesamten Ordner public_html. Wird die PHP-Version global festgelegt, erben die Verzeichnisse innerhalb des public_html-Verzeichnisses die globale PHP-Version. Wird nichts verändert, gilt jeweils die aktuelle Standardversion, welche wir für unsere Server festgelegt haben.

Besonderheit von Litespeed

Unsere Webserver basieren auf LiteSpeed. Mit LiteSpeed werden die PHP-Versionen auf Domain-Ebene vergeben. Für jede Domain wird die PHP-Version «unendlich» in die Unterverzeichnisse vererbt. Dies wird nur unterbrochen von einer Definition in einer .htaccess-Datei oder einer in einem Unterverzeichnis installierten Domain.

Die Rolle der .htaccess-Datei

Die PHP-Version kann über die .htaccess-Datei gesteuert werden. Wird eine andere PHP-Version als die aktuelle Standardversion gewählt, erstellt der PHP-Versionsmanager im Hintergrund die nötige .htaccess-Datei im betreffenden Verzeichnis oder ergänzt diese, falls bereits eine besteht.

Ruft man eine Website im Browser auf, sucht unser Server im Verzeichnis der Domain nach einer .htaccess-Datei. Wird dort nichts gefunden oder gibt es keine Regel bezüglich PHP-Version, sucht der Server im Ordner darüber, ob dort etwas festgelegt wurde. Wenn er auch dort nicht fündig wird, verwendet er die aktuelle Standardversion des Servers.

Litespeed und die .htaccess-Datei

Anders als bei Apache werden bei LiteSpeed Regeln in der .htaccess nur auf eine Ebene vererbt, also nur in einen direkten Unterordner. Legt man also für public_html eine andere PHP-Version fest und hat eine Website, die im Ordner public_html/oliverorange.ch/daten liegt, so greift diese PHP-Version nicht, und es wird die Standardversion verwendet. In diesem Fall muss die PHP-Version manuell in der .htaccess-Datei festgelegt werden. Im Artikel «PHP-Version eines Verzeichnisses ändern» beschreiben wir das Vorgehen im Abschnitt «PHP-Version direkt in der .htaccess-Datei hinterlegen».

Möchtest du wissen, welche PHP-Version für ein Verzeichnis definiert ist, folge der Beschreibung im Artikel «Anzeigen der PHP-Version».

Erklärung anhand von Beispielen

Diese Vererbung ist in der Tat nicht ganz einfach zu verstehen. Wir versuchen in folgender Tabelle, unter Berücksichtigung von verschiedenen Situation und Einstellungen, die Vererbung der PHP-Version noch etwas anschaulicher zu erklären.

Bsp. Verzeichnis eingerichtete Domain PHP-Version
1 public_html
ordner1
ordner2
ordner3
ordner4
ordner5
ordner6
oliverorange.ch PHP 7.3
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
2 public_html
ordner1
ordner2
ordner3
ordner4
ordner5
ordner6
oliverorange.ch
 
 
chantalcherry.ch
PHP 7.3
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
 PHP 7.4 (Standard)
PHP 7.4 (vererbt)
PHP 7.4 (vererbt)
PHP 7.4 (vererbt)
3 public_html
ordner1
ordner2
ordner3
ordner4
ordner5
ordner6
oliverorange.ch
konradkiwi.ch
PHP 7.3
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
4 public_html
ordner1
ordner2
ordner3
ordner4
ordner5
ordner6
oliverorange.ch
konradkiwi.ch
chantalcherry.ch
PHP 7.3
PHP 7.3 (vererbt)
 PHP 7.4 (Standard)
PHP 7.4 (vererbt)
PHP 7.4 (vererbt)
PHP 7.4 (vererbt)
PHP 7.4 (vererbt)
5 public_html
ordner1
ordner2
ordner3
ordner4
ordner5
ordner6
oliverorange.ch
konradkiwi.ch
 
chantalcherry.ch
PHP 7.3
 PHP 7.2
PHP 7.2 (vererbt)
 PHP 7.3 (in .htaccess definiert)
PHP 7.3 (vererbt)
PHP 7.3 (vererbt)
 PHP 7.4 (Standard)

Wir gehen dabei von der Server-Standardversion PHP 7.4 aus, welche für Verzeichnisse verwendet wird, wo keine andere Einstellung greift. Die PHP-Version für den Ordner public_html, falls nicht vererbt für den ordner1, wurde in unseren Beispielen jeweils im my.cyon über den PHP-Versionsmanager definiert.

  1. Innerhalb einer Domain wird die PHP-Version auf Unterordner unendlich vererbt.
  2. Die unendliche Vererbung innerhalb einer installierten Domain wird durch die erneute Einrichtung einer Domain unterbrochen.
  3. Wenn diese Domain eine Ebene unter public_html eingerichtet wurde, wird ohne weitere Definition die Version «von oben» übernommen.
  4. Ab zwei Verzeichnisstufen wird dann wieder die Standardversion des Servers verwendet.
  5. Diese Definitionen lassen sich jeweils mit individuellen .htaccess-Dateien überschreiben.
Kategorien
Technische Fragen zum Webhosting
Artikel teilen
E-Mail WhatsApp

Was dir auch helfen könnte

Verwandte Artikel

Du hast noch Fragen?

Wir beantworten sie dir gerne persönlich.

Kontaktiere uns