PHP-Version im Backend anzeigen lassen

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 3 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

WordPress sollte immer auf dem aktuellen Stand sein. Ebenso wie Plugins und Themes. Aber wie ist das mit der PHP-Version? Mit meinem kleinen Plugin kannst du dir die PHP-Version anzeigen lassen. Inklusive Warnung, wenn du aktualisieren solltest.

Was macht das Plugin genau?

Es gibt in dem „Auf einen Blick“-Dashboard-Widget die aktuell genutzte PHP-Version aus. Dabei wird alles unter Version 5.5 rot markiert, da keine Sicherheitsfixes mehr angeboten werden. Version 5.5 wird orange markiert. Hier werden noch bis zum 10. Juli 2016 Sicherheitsupdates bereitgestellt.

Zusätzlich wird orange markiert, wenn PHP im 32-Bit-Modus installiert.

PHP-Version im "Auf einem Blick"-Dashboard-Widget

PHP-Version im „Auf einem Blick“-Dashboard-Widget

Warum ist der 32-Bit-Modus ein Problem?

Die größte Integer-Zahl, die mit 32-Bit dargestellt werden kann ist 2147483647. Ist eine ID größer, dann wird dieser Maximalwert genommen. Sehr ungünstig, wenn es zum Beispiel um eine ID eines externen Anbieter geht. Das Eventbrite-Plugin hat mit so einem Problem zu kämpfen.

PHP-Version 5.6 und die neue 7er-Version, jeweils im 64-Bit-Modus, werden dann entsprechend grün markiert. Wobei schon im Dezember der offizielle Support für die 5.6 ausläuft, aufgrund der besonderen Version (letztes Release der 5.x-Reihe) wird es jedoch einen erweiterten Sicherheitssupport geben.

As it is the final PHP 5 release, support for PHP 5.6 has been extended: active support will run for an additional four months, and the security fix period has been doubled from one to two years. Other releases are unaffected.PHP.net

Viele Hoster verwenden jedoch immer noch alte PHP-Versionen. Sind diese dann automatisch unsicher? Nicht zwangsläufig, wie Angelika Reisiger durch Rückfrage bei einem Hoster herausgefunden hat. Hier die Antwort des Hosters in der Zusammenfassung:

Unabhängig von PHP.net versorgen auch Distributionen PHP mit Updates. Daher beziehen wir unsere Updates.

Die meisten Sicherheitslücken sind in mehr als einer Version vorhanden und dabei auch meist noch in welchen, die noch aktiv von den Entwicklern unterstützt werden. Wenn nun dafür jetzt ein Patch erscheint, dann pflegen die Paketentwickler der Distributionen diesen auch bei den älteren Versionen ein. Ansonsten, wenn der Fehler z.B. nur in nicht mehr unterstützen Versionen vorhanden ist, wird der Patch von den Entwicklern der Distribution entwickelt. Dabei aber auch meist nur von einer, dessen Ergebnisse dann von den anderen übernommen wird. Häufig kommen diese von der kostenpflichtigen Distribution RHEL.

Bei unserer neuen Webhosting-Cloud setzen wir auf CentOS6 und CentOS7. Durch RHEL können wir noch längere Zeit PHP > 5.3 anbieten. Sicherheitsupdates wird es selbstverständlich geben.

Das ist auf jeden Fall eine wichtige Information, auch wenn es neben der Sicherheit noch weitere Gründe gibt, aktuelle PHP-Versionen einzusetzen. Manche Plugins erfordern mindestens PHP 5.3 oder noch höher, weil sie neue Funktionen verwenden, die in älteren PHP-Versionen noch nicht vorhanden waren. Wichtigstes Argument aber ist die deutliche schnellere Ausführung bei höheren PHP-Versionen. Insbesondere bei PHP 7, auch wenn hier einige Plugins noch nacharbeiten müssen, um kompatibel zu sein.

Es lohnt sich also mal konkret beim Hoster nachzufragen, wie er mit PHP-Updates umgeht.

Kennst Du Hoster, die PHP-Versionen auf diese Art patchen? Oder es genau nicht tun? Was ist die niedrigste Version die euch so bei Kundenprojekten untergekommen ist? Ich freue mich über eure Geschichten in den Kommentaren. 🙂

6 Antworten auf PHP-Version im Backend anzeigen lassen

  1. das wird so nicht richtig angezeigt, da es keinen LI gibt. Auch nicht optimal aber besser wäre es so:

    function add_to_glance( Array $items ) {
    	$php_version = phpversion();
    	$bit_mode = (PHP_INT_SIZE * 8);
      $text = '';
    	if ( version_compare( $php_version, '5.5', '<' ) ) {
    		$text .= '<style>#dashboard_right_now .phpversion a:before{color:red;content:"\f534";}</style>';
    	}
    	elseif ( version_compare( $php_version, '5.5', '=' ) || $bit_mode == 32 ) {
    		$text .= '<style>#dashboard_right_now .phpversion a:before{color:orange;content:"\f534";}</style>';
    	}
    	else {
    		$text .= '<style>#dashboard_right_now .phpversion a:before{color:green;content:"\f147";}</style>';
    	}
      $text .= '<li class="phpversion">';
      $text .= '<a href="http://php.net/supported-versions.php" target="_blank">';
      $text .= __( 'PHP version:', 'tl-show-php-version' );
      $text .= ' ' . $php_version;
      $text .= ' (' . $bit_mode . '-bit)';
      $text .= '</a>';
      $text .= '</li>';
    
      echo $text; // Yes, I know ...
    
      return $items;
    }
    add_filter( 'dashboard_glance_items', 'add_to_glance' );
    
    • Ja, da hast Du Recht. Aber das Inline-Style ist an dieser Stelle nicht erlaubt und eigentlich sollten wir den Filter auch nicht zweckentfremden und da etwas ausgeben. Ich bin also nochmal zurück an den Start und habe eine neue Variante gebaut, die den Filter sauber benutzt. Für das CSS habe ich jetzt einfach ein wenig CSS in den Admin-Header eingebaut. Das sollte jetzt valide sein und überall funktionieren. Feedback erwünscht!

  2. Pingback: PHP Version im Backend anzeigen – Computer for Dummies

  3. Besten Dank für den Code, funktioniert einwandfrei mit WP 4.9.8.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.