CentOS – zusätzliche PHP-Versionen (PHP 5.5, PHP 5.4) für Plesk bereitstellen

CentOS 6 wird per default mit der PHP-Version 5.3.3 ausgeliefert. CentOS 7 bereits mit der PHP-Version 5.4.16. Die systemweite PHP-Version von CentOS zu ändern ist möglich, bringt aber vor allem bei der gleichzeitigen Verwendung vom Plesk zahlreiche Probleme.
Eine weitaus besser Variante ist es weitere aktuellere PHP-Versionen zusätzlich bereitzustellen. Das Tutorial zeigt wie bei CentOS 6 bzw CentOS 7 jeweils die PHP-Versionen PHP 5.4 und PHP 5.5 zusätzlich bereitgestellt werden.

Installation multipler PHP-Versionen unter CentOS

Wir installieren die optionalen PHP-Versionen aus den Red Hat Software Collections (SCLs). Dazu binden wir zunächst die nötigen Repositorys ein. Für jede zusätzlich PHP-Version sowie CentOS-Version gibt es ein eigenes Repository. Nach dem Einbinden des Repository können wir die einzelnen aktuelleren PHP-Versionen installieren. Das funktioniert wie folgt.

PHP-Versionen (PHP 5.4 / PHP 5.5) unter für CentOS 6

Installation des Software Collections Repository für PHP 5.5:

yum install https://www.softwarecollections.org/en/scls/rhscl/php55/epel-6-x86_64/download/rhscl-php55-epel-6-x86_64.noarch.rpm
yum install https://www.softwarecollections.org/en/scls/remi/php55more/epel-6-x86_64/download/remi-php55more-epel-6-x86_64.noarch.rpm

Installation von PHP 5.5:

yum install scl-utils php55 php55-php-mysqlnd php55-php-pdo php55-php-mcrypt php55-php-gd php55-php-mbstring php55-php-xml php55-php-pear php55-php-soap

Installation des Software Collections Repository für PHP 5.4:

yum install https://www.softwarecollections.org/en/scls/rhscl/php54/epel-6-x86_64/download/rhscl-php54-epel-6-x86_64.noarch.rpm
yum install https://www.softwarecollections.org/en/scls/remi/php54more/epel-6-x86_64/download/remi-php54more-epel-6-x86_64.noarch.rpm

Installation von PHP 5.4:

yum install scl-utils php54 php54-php-mysqlnd php54-php-pdo php54-php-mcrypt php54-php-gd php54-php-mbstring php54-php-xml php54-php-pear php54-php-soap

PHP-Versionen (PHP 5.5) unter für CentOS 7

Installation des Software Collections Repository für PHP 5.5:

yum install https://www.softwarecollections.org/en/scls/rhscl/php55/epel-7-x86_64/download/rhscl-php55-epel-7-x86_64.noarch.rpm
yum install https://www.softwarecollections.org/en/scls/remi/php55more/epel-7-x86_64/download/remi-php55more-epel-7-x86_64.noarch.rpm

Installation von PHP 5.5:

yum install scl-utils php55 php55-php-mysqlnd php55-php-pdo php55-php-mcrypt php55-php-gd php55-php-mbstring php55-php-xml php55-php-pear php55-php-soap

Die Binarys der optionalen PHP-Versionen liegen nun unter /opt/rh/php54 bzw. /opt/rh/php54. Um diese nun im Plesk verfügbar und auswählbar zu machen müssen wir neue PHP-Handler definieren.

Zusätzliche PHP-Versionen im Plesk bereitstellen

Zuerst schauen wir ob bereits Handler definiert sind.

/usr/local/psa/bin/php_handler --list

      id:  display name:  full version:  version:    type:          cgi-bin:  php-cli:      php.ini:  custom:
   module          5.3.3          5.3.3       5.3   module  /usr/bin/php-cgi            /etc/php.ini    false
  fastcgi          5.3.3          5.3.3       5.3  fastcgi  /usr/bin/php-cgi            /etc/php.ini    false
      cgi          5.3.3          5.3.3       5.3      cgi  /usr/bin/php-cgi            /etc/php.ini    false

Dann fügen wir je nach PHP-Version die entsprechenen neuen PHP-Handler hinzu.

#PHP 5.4
/usr/local/psa/bin/php_handler --add -displayname 5.4 -path /opt/rh/php54/root/bin/php-cgi -phpini  /opt/rh/php54/root/etc/php.ini -type cgi -id 5.4-cgi
/usr/local/psa/bin/php_handler --add -displayname 5.4 -path /opt/rh/php54/root/bin/php-cgi -phpini  /opt/rh/php54/root/etc/php.ini -type fastcgi -id 5.4-fastcgi
#PHP 5.5
/usr/local/psa/bin/php_handler --add -displayname 5.5 -path /opt/rh/php55/root/bin/php-cgi -phpini  /opt/rh/php55/root/etc/php.ini -type cgi -id 5.5-cgi
/usr/local/psa/bin/php_handler --add -displayname 5.5 -path /opt/rh/php55/root/bin/php-cgi -phpini  /opt/rh/php55/root/etc/php.ini -type fastcgi -id 5.5-fastcgi

Anschliessend können wir nochmals die PHP-Handler überprüfen.

/usr/local/psa/bin/php_handler --list
          id:  display name:  full version:  version:    type:                        cgi-bin:  php-cli:                        php.ini:  custom:
       module          5.3.3          5.3.3       5.3   module                /usr/bin/php-cgi                              /etc/php.ini    false
      fastcgi          5.3.3          5.3.3       5.3  fastcgi                /usr/bin/php-cgi                              /etc/php.ini    false
          cgi          5.3.3          5.3.3       5.3      cgi                /usr/bin/php-cgi                              /etc/php.ini    false
      5.4-cgi            5.4         5.4.16       5.4      cgi  /opt/rh/php54/root/bin/php-cgi            /opt/rh/php54/root/etc/php.ini     true
  5.4-fastcgi            5.4         5.4.16       5.4  fastcgi  /opt/rh/php54/root/bin/php-cgi            /opt/rh/php54/root/etc/php.ini     true
      5.5-cgi            5.5          5.5.6       5.5      cgi  /opt/rh/php55/root/bin/php-cgi            /opt/rh/php55/root/etc/php.ini     true
  5.5-fastcgi            5.5          5.5.6       5.5  fastcgi  /opt/rh/php55/root/bin/php-cgi            /opt/rh/php55/root/etc/php.ini     true

Die Handler mit dem Typ custom=true haben wir selbst definiert. Diese stehen uns nun im Plesk unter den Punkt Hostingeinstellung der jeweiligen Domain zur Verfügung.

PHP-Versionen unter Plesk auswählen
PHP-Versionen unter Plesk auswählen

Weitere PHP-Pakete können ganz einfach mit yum installiert werden. Falls ein Paket nicht auffindbar ist kann dieses auch mit PECL installiert werden. Das passende Binary zum Aufrufen von PECL liegt unter /opt/rh/php<Version>/root/bin.

Fazit

Die Installation der PHP-Versionen aus den Software Collections (SCLs) ist eine einfache und unkomplizierte Variante unter CentOS zusätzliche PHP-Versionen bereitzustellen. Im Gegensatz zum globalen ersetzen der PHP-Version kann dies auch bei installierten Plesk erfolgen und verursacht keine Probleme mit diversen Abhängigkeiten. Außerdem haben wir die Möglichkeit zwischen den Versionen auszuwählen. Das Repository wird gepflegt und erhält regelmäßig Updates, ein weiter Vorteil gegenüber der selbst kompilierten Variante.

Es finden sich noch eine Vielzahl von weiten aktuellen Paketen in den Software Collections. Auch lohnt ein Blick in die Dokumentation von Parallels Plesk.

Update

Plesk stellt nun verschiedene PHP-Versionen unter anderem auch PHP 7 im Autoinstaller bereit. Eine Anleitung zu Installation findet ihr hier: Plesk PHP 7 “Out of the Box” installieren.

12 Kommentare

    1. Hi,

      Einfach mal /usr/local/psa/bin/php_handler aufrufen. Dort erhält man dann eine komplette Übersicht der möglichen Parameter

      /usr/local/psa/bin/php_handler --remove -id handlerid

      Auf der Seite der Plesk Command Line Utilities findest Du weitere Infos.

      Ich hoffe ich konnte Dir helfen.

  1. Perfekt! Und das Ganze mal auf deutsch! Danke
    Eine Frage:
    Bei der Ausgabe ‚php_handler –list‘ fehlt die Zeile „module“ für die neue Version. Müssen diese noch installiert werden?

    Jan

    1. Hallo Jan,

      mit module ist mod_php für apache gemeint. Da wird immer das default von php-Version der Distribution genommen. Ist für Dich aber auch nicht relevant, da du ja hoffentlich Deine Webseiten unter fastcgi laufen lässt :D

      Die php-module, falls Die noch welche fehlen, installierst Du ganz normal mit yum wie im Artikel beschrieben.

  2. Bei mir ist nach der Installation von php5.5 keine php-cgi vorhanden.
    Deshalb bricht php_handler –add ab. Was mache ich falsch?

    1. Auch wenn der Artikel schon ein wenig älter ist, hilft es vielleicht dem einen oder anderen noch weiter.

      Ich hatte das selbe Problem und hatte dann festgestellt, das die binaries nicht unter /opt/rh/php55/root/bin lagen, sondern unter /opt/rh/php55/root/usr/bin

      Mag sein, dass sich das inzwischen irgendwie geändert hat, aber danach konnte ich sie mit dem php_handler problemlos hinzufügen.

      Viele Grüße und noch ein FROHES NEUES JAHR
      Holger Schütz

  3. Auf „Software Collections“ gibt’s nun auch ein php56… ich dachte mit Deinem guten Artikel würde ich auch den Transfer schaffen um mir auch das zu installieren.

    Leider scheitere ich bein Einbinden der php-handler in Plesk, vielleicht kannst Du in Artikel auch um die Infos für php56 ergänzen?!
    Danke.

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.