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.
Sur le serveur "sandbox"
Installation Apache + PHP de base
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
Récupération des fichiers RPM requis
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.
Script de mise en place
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 :
- supprimer les paquets actuels
- installer tous les RPM
- lancer le service php73-fpm, et activer le service systemd
- créer le fichier de configuration / handler pour apache
- relancer le serveur http
Puis je crée une archive avec mon répertoire
cd .. tar zcf php73-rpms.tgz php73
Sur le serveur cible
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.
Ajouter un commentaire