Les Software Collection (SCL) permettent d’installer plusieurs versions d’un programme sur un même système, c’est le choix parfait pour avoir plusieurs versions de PHP installées sur un même serveur web.
Ajouter PHP 7.3 à mon serveur
Sur mon serveur web Nginx, je possède plusieurs versions de PHP, notamment un vieux PHP 5.4 pour de vieux projets et PHP 7.0. Je veux mettre à jour mes sites en PHP 7.3 avec les SCL.
Installation de PHP 7.3
yum install php73
L’installation est maintenant faite dans le répertoire /opt/remi/php73
, la configuration quant à elle est dans /etc/opt/remi/php73
.
Pour installer d’autres modules PHP 7.3, il faut le faire en préfixant les paquets par php73-
, comme ceci :
yum install php73-php-json php73-php-pecl-memcached php73-php-xml php73-php-fpm php73-php-mcrypt php73-php-mbstring php73-php-pecl-mysql php73-php-pdo php73-php-pecl-igbinary php73-php-mysqlnd php73-php-gd php73-php-tidy
Configuration du pool de PHP FPM
La configuration du pool se fait dans le fichier /etc/opt/remi/php73/php-fpm.d/www.conf
. Par défaut FPM écoute sur un socket TCP, moi j’utilise un socket UNIX, voici le contenu des parties éditées du fichier www.conf
, le reste ne change pas :
user = nginx group = nginx listen = /var/opt/remi/php73/run/php-fpm/www.sock listen.owner = nginx listen.group = nginx listen.mode = 0666
Je démarre le service PHP FPM pour PHP 7.3 et je l’active au démarrage du serveur :
systemctl start php73-php-fpm systemctl enable php73-php-fpm
Pour rappel, voici la partie relative à PHP FPM de la configuration d’un server Nginx :
location ~ \.php$ { include fastcgi_params; fastcgi_intercept_errors on; fastcgi_read_timeout 240s; fastcgi_pass unix:/var/opt/remi/php73/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name; }
Tout site avec cette configuration fastCGI devrait désormais fonctionner avec PHP 7.3.