Vererbung von PHP-Versionen


Wundern Sie sich, warum die eingestellte PHP-Version, welche Sie im PHP-Versionsmanager im my.cyon eingestellt haben, nicht greifen? Dann hat dies wohl mit der etwas speziellen Vererbung unter LiteSpeed zu tun, was wir mit diesem Artikel erklären möchten.

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, so erben die Verzeichnisse innerhalb des public_html-Verzeichnisses die globale PHP-Version. Wird nichts verändert, so 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 .htacces-Datei

Die PHP-Version kann über die .htaccess-Datei gesteuert werden. Wird eine andere PHP-Version als die aktuelle Standardversion gewählt, so 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, so sucht unser Server im Verzeichnis der Domain nach einer .htaccess-Datei. Wird dort nichts gefunden oder es gibt keine Regel bezüglich PHP-Version, so sucht der Server im Ordner darüber, ob dort was festgelegt wurde. Wenn er auch dort nicht fündig wird, so 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 eines Unterordners anpassen».

Möchten Sie wissen, welche PHP-Version für ein Verzeichnis definiert ist, so folgen Sie 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 (Standardversion)
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 (Standardversion)
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 (Standardversion)

Wir gehen dabei von der Server-Standardversion  PHP 7.4 aus, welche also 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.
Weitere Artikel zum Thema Weitere Artikel zum Thema Technisches

Verwandte Artikel

Noch Fragen?

Wir sind für Sie da.
mail@cyon.ch oder 0800 840 840.

Telefon

Vorsicht Phishing: Momentan versenden Cyberkriminelle gefälschte E-Mails an cyon-Kunden. Mehr Informationen