Par défaut, CentOS 7 (et RHEL) embarquent une version 5.4.16 de PHP, qui est datée et peut présenter des problèmes de sécurité.
On trouve sur le web pas mal de tutoriels qui expliquent comment passer en version 7.x, en ajoutant les dépôts REMI.
Dans mon cas, le serveur est dans un réseau d'entreprise qui dispose de ses propres serveurs de dépôts, et on ne peut donc pas accéder aux dépôts externes.
On a quand même pu passer en version 7.3, en récupérant les rpm puis en les installant.
Je décris ici les étapes à mener.
Pour récupérer et tester la mise à jour, j'ai installé un serveur en mode "bac à sable", dans un container LXC.
J'installe ensuite la configuration par défaut (apache + mod_php) :
yum install httpd mod_php php-mysql php_ldap
Pour vérifier que ça fonctionne, j'ajoute un fichier index.php dans le répertoire DocRoot par défaut (/var/www/html).
<html><head><title>Infos PHP</title></head>
<body>
<h1>Les infos de PHP </h1>
Si on voit ça c'est que PHP est activé
<?php
phpinfo();
?>
</body>
</html>
En accédant via un navigateur au serveur, on doit avoir la page d'info PHP, avec le version 5.4.16
En suivant les nombreux articles sur le web, on va ajouter les utilitaires pour yum et le dépôt REMI
yum install epel-release yum-utils -y
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php73
Je crée ensuite un répertoire php73, dans lequel je vais télécharger les paquets RPM requis, via l'utilitaire yumdownloader
mkdir php73
cd php73
yumdownloader --resolve php73-php-pdo php73-php-ldap php73-php-xml php73-php-gd php73-php-cli php73-php-mysqlnd php73-php-mbstring php73-php-mcrypt php73-php-common php73-php-fpm
A ce stade, on a tous les paquets nécessaires.
Afin de simplifier le déploiement je crée un script, dans le répertoire courant (voir la pièce jointe) qui va faire les actions suivantes :
Puis je crée une archive avec mon répertoire
cd ..
tar zcf php73-rpms.tgz php73
Une fois l'archive récupérée, il n'y a plus qu'à extraire le contenu, se positionner dans le répertoire et lancer le script.
tar zxf /path/to/php73-rpms.tgz
cd php73
bash updatePhp.sh
On peut alors vérifier que la version de php est bien la version 7.3.x
Le script ajoute aussi un fichier de configuration php-fpm pour le serveur apache, afin de passer par le process php73-php-fpm, qui écoute en localhost sur le port 9000.