PHP5.3 auf CentOS5 / RHEL

Mittlerweile wird es für das standardmäßig auf CentOS5 installierte PHP 5.1.6 eng. Immer mehr Anwendungen setzen zwingendermaßen auf eine PHP-Version >= 5.2. Mit Hinblick auf die Tatsache, daß dieser Stand von August 2006 ist und nicht mehr gepflegt wird, durchaus nachvollziehbar.

Glücklicherweise gibt es das IUS-Projekt. Dieses Projekt hat es sich zum Ziel neuere Versionen von einigen großen Software-Paketen für RHEL/CentOS-basierte System zur Verfügung zu stellen. Ganz so trivial ist die Einrichtung aber nicht.

Bei IUS handelt sich dabei nicht wie beim EPEL-Projekt um eine Sammlung zusätzlicher Pakete, die nicht in CentOS vorhanden sind, sondern es werden konsequent bereits existierende Pakete ersetzt. Dadurch, daß andere Paketnamen verwendet werden (z.B. "php53" statt "php") will man Konflikten aus dem Weg gehen (zumindest bis RHEL / CentOS 5.6 erscheint).

Der Weg für die Einbindung des IUS-Repositories ist im Wiki gut beschrieben. Zu beachten ist lediglich, daß IUS EPEL voraussetzt. Interessanterweise befindet sich auf den IUS-Servern ebenfalls ein RPM was EPEL installiert. Dies ist allerdings dasselbe wie ein bereits installiertes Standard-EPEL:

[root@host ~]# rpm --dump -qp epel-release-1-1.ius.el5.noarch.rpm 
Warnung: epel-release-1-1.ius.el5.noarch.rpm: Header V3 DSA-Signatur: NOKEY, key ID 9cd4953f
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL 1698 1249408141 0466c259781def56dafe0a2cdc9de0c5 0100644 root root 0 0 0 X
/etc/yum.repos.d/epel-testing.repo 1054 1249584052 f793fdd8f3d462f17937c4049f078973 0100644 root root 1 0 0 X
/etc/yum.repos.d/epel.repo 954 1249584008 0594615cf320e3d39143a71700d53982 0100644 root root 1 0 0 X
/usr/share/doc/epel-release-1 4096 1276619380 00000000000000000000000000000000 040755 root root 0 0 0 X
/usr/share/doc/epel-release-1/GPL 18385 1249408141 8cb01dd230eb0d74c8301a89cc8f607e 0100644 root root 0 1 0 X
[root@host ~]# md5sum /etc/yum.repos.d/epel.repo 
0594615cf320e3d39143a71700d53982  /etc/yum.repos.d/epel.repo
[root@host ~]# md5sum /etc/yum.repos.d/epel-testing.repo 
f793fdd8f3d462f17937c4049f078973  /etc/yum.repos.d/epel-testing.repo
[root@host ~]#

Der weitere Weg ist im Wiki beschrieben: Das Paket yum-plugin-replace installieren und mit yum replace php --replace-with php53 die bestehende PHP 5.1.6 – Installation erneuern. Die Meldung "WARNING: Unable to resolve all providers" kann man dabei erstmal bestätigen, da die Abhängigkeitsauflösung erst danach stattfindet und vor dem endgültigen Installieren auf jeden Fall nochmal gefragt wird.

Nach einem Reboot (um auf der sicheren Seite zu sein) sind erstmal keine Auffälligkeiten bei den installierten Web-Applikationen aufgetreten (dokuwiki, TinyTiny RSS).