PHP 5.6 unter Enterprise Linux 7 mit Software Collections
Enterprise Linux 7 wird standardmäßig mit Apache 2.4.6 und PHP 5.4 ausgeliefert. Für einige aktuelle Web-Anwendungen ist das jedoch nicht ausreichend - die Weiterentwicklung von PHP 5.4 wurde im Herbst 2015 eingestellt.
Red Hat bietet im Rahmen des Produktlebenszyklus 10 bis erfahrungsgemäß 13 Jahre (Extended Support) Unterstützung für alle zur Distribution gehörenden Software-Pakete - wozu auch PHP gehört. Sicherheitstechnisch ist eine weitere Unterstützung durch Red Hat sichergestellt - jedoch springen die meisten Web-Projekte aus technischen Gründen von der alten PHP-Version ab.
Für diese Einsatzzwecke gibt es mit Red Hat Software Collections (RHSCL) eine Möglichkeit, neuere Paketversionen von Programmiersprachen, Webservern, Datenbankservern und einigen anderen Applikationen zu installieren. Gegenüber den anderen Red Hat Enterprise Linux Software-Quellen werden diese nicht im vollständigen Lebenszyklus (10-13 Jahre), sondern lediglich 2 bis 3 Jahre unterstützt. Das ist vor allem dem geschuldet, dass die zu RHCSL gehörenden Software-Produkte häufig neue Hauptversionen erhalten werden und es daher unwirtschaftlich ist, Langzeit-Support anzubieten. All 18 Monate erscheinen neue RHCSL-Versionen - eine detaillierte Auflistung der Support-Zeiten der verschiedenen RHCSL-Versionen gibt es auf der Red Hat-Webseite. Mit Ausnahme von node.js sind alle in RHCSL enthaltenen Pakete für den Produktiveinsatz freigegeben. Eine Auflistung aller enthaltenen Software-Produkte gibt es ebenfalls im Internet:
- RHCSL 2.1: [klick mich!]
- RHCSL 2.0: [klick mich!]
- RHCSL 1.1: [klick mich!]
- RHCSL 1.0: [klick mich!]
Aus RHCSL installierte Applikationen befinden sich unterhalb des Ordners /opt/rh
, um Konflikten mit bereits installierten Diensten aus dem Weg zu gehen. Es ist möglich, mehrere Versionen einer Software zu installieren, ohne, dass es zu Konflikten kommt.
Mithilfe des scl
-Kommandos lassen sich so auch Außnahmen pro Applikation setzen - so kann man beispielsweise für eine Anwendung eine alternative Python-Version nutzen, ohne den systemweiten Standard anzupassen:
1$ python -V
2Python 2.7.5
3
4$ scl enable python34 bash
5$ env|egrep -i "path|scl"
6X_SCLS=python34
7PATH=/opt/rh/python34/root/usr/bin:/usr/local/bin:/usr/bin:/usr/local/sbin/usr/sbin
8...
9
10$ python -V
11Python 3.4.2
PHP-Upgrade
Bei einer Red Hat Enterprise Linux 7-Installation ist die Software-Quelle "Red Hat Software Collections (RHEL 7 Server)" hinzuzufügen - die Zuordnung erfolgt entweder im Red Hat Network oder auf einem verwendeten Red Hat Satellite-System.
Anschließend können die benötigten PHP 5.6-Pakete installiert werden:
1# yum install rh-php56-{runtime,php{,-cli,-common}}
In diesem Zuge wird auch ein zusätzlicher Apache-Webserver in der Version 2.4.12 installiert - der herkömmliche Indianer der Distribution kann nicht in Kombination mit der neueren PHP-Version verwendet werden.
Nach der Installation können die folgenden Software-Pakete über das scl
-Kommando aufgelistet werden:
1# scl -l
2httpd24
3rh-php56
Ein bereits vorhandener Apache-Webserver kann nun deaktiviert und gestoppt werden, bevor der aktualisierte Webserver verwendet wird:
1# systemctl disable httpd ; systemctl stop httpd
2# systemctl enable httpd24-httpd ; systemctl start httpd24-httpd
In diesem Zuge können auch alte Apache- und PHP-Pakete entfernt werden:
1# yum remove httpd{,-tools} php{,-*}
Wichtig ist, dass sich der Pfad der Webserver-Daten von /var/www
nach /opt/rh/httpd24/root/var/www
ändert. Verwendet man für diese Daten eine dedizierte Partition, so muss die Datei /etc/fstab
angepasst werden. Kommt SELinux zum Einsatz, empfiehlt es sich, anschließend den Datei-Kontext wiederherzustellen:
1# vi /etc/fstab
2# mount -a
3# restorecon -Rv /opt/rh/httpd24/root/var/www