PHPRed Hat Enterprise Linux et CentOS fournissent une version très ancienne de PHP. La version 5.4 n’est plus officiellement supportée, mais les ingénieurs de chez Red Hat prendront soin de rétroporter les corrections de failles de sécurité jusqu’en juin 2024. Le hic, c’est que de plus en plus d’applications web – comme par exemple OwnCloud ou Nextcloud – dépendent de versions plus récentes de PHP. On se retrouve donc confronté à un dilemme en termes de choix de versions.

  1. Soit l’on conserve PHP 5.4 et l’on opte pour une version obsolète de l’application.
  2. Soit on met à jour PHP en perdant le bénéfice du support à long terme.

Si l’on choisit cette deuxième option, il existe plusieurs façons de procéder. Je décris ici deux manières différentes pour installer PHP 7.1.

  1. Depuis les dépôts SCL (Software Collections)
  2. Depuis les dépôts Webtatic

Utiliser les dépôts SCL

Les dépôts SCL (Software Collections) fournissent des paquets plus récents pour certains composants du système, notamment PHP. L’avantage de ces dépôts, c’est qu’ils sont officiellement maintenus par l’équipe de CentOS.

Dans un premier temps, purger tous les paquets PHP 5.4.

$ rpm -qa | grep php
php-5.4.16-46.el7.x86_64
php-cli-5.4.16-46.el7.x86_64
php-pdo-5.4.16-46.el7.x86_64
php-common-5.4.16-46.el7.x86_64
php-mysql-5.4.16-46.el7.x86_64
$ sudo yum remove php-common

Si jamais la machine utilise déjà des paquets PHP plus récents en provenance du dépôt Webtatic, on les supprimera comme ceci.

$ sudo yum remove php71w-common mod_php71w

Dans ce cas, c’est une bonne idée de désactiver le dépôt.

$ sudo yum remove webtatic-release
$ sudo rm -f /etc/yum.repos.d/webtatic.repo.rpmsave

Activer les dépôts SCL.

$ sudo yum install centos-release-scl

Rechercher les paquets disponibles pour PHP 7.1.

$ yum search rh-php71

Les paquets relatifs à PHP 7.1 sont tous nommés rh-php71*. Pour une installation d’OwnCloud, par exemple, on installera les paquets suivants.

  • rh-php71
  • rh-php71-php-mysqlnd
  • rh-php71-php-gd
  • rh-php71-php-mbstring
  • rh-php71-php-xml
  • rh-php71-php-process
  • rh-php71-php-mcrypt
  • rh-php71-php-intl
  • rh-php71-php-fpm

Le paquet rh-php71-php-fpm « remplace » mod_php, si l’on peut dire. PHP-FPM est bien moins gourmand que mod_php en termes de consommation de mémoire. En contrepartie, nous devons « lier » Apache et PHP-FPM.

$ sudo systemctl enable rh-php71-php-fpm
$ sudo systemctl start rh-php71-php-fpm

Éditer un fichier /etc/httpd/conf.d/php-fpm.conf comme ceci.

AddType text/html .php
DirectoryIndex index.php
<FilesMatch \.php$>
  SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

Pour finir, redémarrer Apache pour prendre en compte les modifications.

$ sudo systemctl restart httpd

Utiliser le dépôt Webtatic

Le dépôt Webtatic est un dépôt tiers spécialisé dans les paquets PHP récents pour Red Hat Enterprise Linux et CentOS. Il est maintenu par Andy Thompson, qui n’est aucunement affilié à CentOS.

Purger tous les paquets PHP 5.4.

$ rpm -qa | grep php
php-5.4.16-46.el7.x86_64
php-cli-5.4.16-46.el7.x86_64
php-pdo-5.4.16-46.el7.x86_64
php-common-5.4.16-46.el7.x86_64
php-mysql-5.4.16-46.el7.x86_64
$ sudo yum remove php-common

Ouvrir la page d’accueil de Webtatic avec le navigateur Links.

$ links http://mirror.webtatic.com

Naviguer vers le répertoire yum/el7 et télécharger le fichier webtatic-release.rpm.

Quitter Links et installer le fichier téléchargé.

$ sudo yum localinstall webtatic-release.rpm

Le paquet installe trois nouveaux fichiers dans /etc/yum.repos.d.

  • webtatic-archive.repo
  • webtatic.repo
  • webtatic-testing.repo

Éditer /etc/yum.repos.d/webtatic.repo en définissant les mêmes priorités que pour le dépôt EPEL.

[webtatic]
name=Webtatic Repository EL7 - $basearch
#baseurl=https://repo.webtatic.com/yum/el7/$basearch/
mirrorlist=https://mirror.webtatic.com/yum/el7/$basearch/mirrorlist
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-webtatic-el7

Les paquets relatifs à PHP 7.1 sont tous nommés php71w-*. Pour une installation d’OwnCloud, on installera les paquets suivants.

  • mod_php71w
  • php71w-mysql
  • php71w-gd
  • php71w-mbstring
  • php71w-xml
  • php71w-process
  • php71w-mcrypt
  • php71w-intl

Documentation

Remerciements

Un grand merci à Fabian Arrotin de l’équipe CentOS pour m’avoir indiqué la bonne manière de faire.


3 commentaires

Jeff · 18 mars 2019 à 22 h 38 min

Bonjour Allez-vous faire un tuto complet sur le comment installer le nextcloud avec le nginx et letsencrypt ?
merci encore, bon site

    kikinovak · 18 mars 2019 à 22 h 40 min

    Prochainement je ferai un tuto sur OwnCloud avec Apache sous le capot.

Installer PHP 7.1 sous CentOS - My Tiny Tools · 15 mars 2019 à 17 h 55 min

[…] (Source: Journal du hacker) […]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.