PHP 5.6 und 7.x auf CentOS 7 installieren¶
Die PHP-Versionen auf CentOS 7 sind steinalt: während Stand 2017-12 mindestens PHP 7.2.0, 7.1.12, 7.0.26 und 5.6.30 (nur noch Security-Fixes) verfügbar sind, wird
unter CentOS 6 / RHEL 6 PHP 5.3.3
unter CentOS 7 / RHEL 7 PHP 5.4.16
aus den Standard-Repositories geliefert - beide seitens PHP End of Life und auch unter CentOS 7 für viele PHP-basierende Anwendungen inzwischen zu alt. Damit scheidet z.B. der Einsatz eines aktuellen PIWIK aus, was mindestens von einem PHP 5.5.19 ausgeht. Zum Vergleich: die letzte 5.5er-Version ist 5.5.38 und bereits seit Mitte 2016 End of Life.
Hier hilft nur der Einsatz eines separaten Repositories. Wir haben sehr
gute Erfahrungen mit dem Remi-Repo
gemacht. Hier sind keine Handstände erforderlich: ist erst einmal die
gewünschte Basis-Version ausgewählt, lässt sich einfach mit
yum install php
arbeiten. Ein weiterer Pluspunkt ist die Aktualität
des Repos.
Bevor man eine neue PHP-Version installiert, sollte man eine vorhandene Konfiguration wegsichern und sich anschauen, welche PHP-Module installiert wurden:
cp --archive /etc/php.ini /etc/php.ini.bak
cp --archive --recursive /etc/php.d /etc/php.d.bak
yum list installed php*
yum remove php # plus list all other php-modules
So wird ein Upgrade auf eine aus dem Remi-Repo installierte PHP-Version durchgeführt, im Beispiel von 7.1 auf 7.2:
yum-config-manager --disable remi-php71
yum-config-manager --enable remi-php72
yum update
Installation von PHP 7.x¶
Im Beispiel wird PHP 7.4 installiert.
yum -y install \
epel-release \
http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
# yum-config-manager --disable remi-php73
yum-config-manager --enable remi-php74
yum -y install php # plus list all other php-modules
Installation von PHP 5.6¶
yum -y install \
epel-release \
http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --enable remi-php56
yum -y install php # plus list all other php-modules
Apache¶
Im Apache muss nun noch das richtige PHP-Modul geladen werden, also
beispielsweise modules/libphp7.so
statt modules/libphp5.so
.