Comprendre PHP et la gestion des versions

Définition

PHP est le langage de programmation utilisé par la majorité des CMS (WordPress, Joomla, PrestaShop). Il est important d’utiliser la version la plus récente compatible avec votre site pour garantir des performances et une sécurité optimales.

Les versions de PHP

PHP évolue avec le temps : Améliorations de performances, de sécurité, ajouts de fonctionnalités, etc.

Ainsi, il est toujours préférable d’utiliser la version de PHP la plus récente possible compatible avec vos scripts PHP et de mettre à jour votre site afin qu’il supporte les nouvelles versions. De la sorte, vous avez une assurance de sécurité et de performances supplémentaire.

LRob met tout en oeuvre pour vous offrir les dernières versions de PHP dès que possible : Sur nos serveurs mutualisés, elles sont généralement disponibles dans la semaine de sortie.

La liste à jour des versions de PHP supportées est consultable sur le site officiel : https://www.php.net/supported-versions.php

Choisir une version de PHP

LRob vous permet de choisir vous-même votre version de PHP. Cela est un avantage car vous pouvez utilisez le script de votre choix avec la version de PHP de votre choix, de plus, les toutes dernières versions de PHP sont disponibles très rapidement chez LRob.

Néanmoins, une règle est à suivre afin d’obtenir une sécurité et des performances optimales : Il faut donc utiliser la version de PHP la plus récente supportée par votre script.

Pour le réglage de votre version de PHP:

  • Rendez-vous dans votre Panneau de contrôle Plesk
  • Sous votre domaine, allez dans la rubrique « Paramètres PHP »
  • Sélectionnez la version de PHP désirée, et validez avec « OK »
  • Après quelques secondes, la version de PHP est active
  • Vérifiez le bon fonctionnement de votre site avant de décider de conserver cette version ou non.

Les handlers (gestionnaires) PHP

Le serveur distribuant les fichiers web est généralement Apache.

Apache ne fait que distribuer des fichiers et n’a pas nativement la possibilité d’exécuter du code PHP. Ainsi, PHP est exécuté par Apache via ce que l’on appelle un « handler » (ou gestionnaire en Français).

Le plus ancien handler PHP était mod_php, une extension d’Apache permettant d’exécuter PHP; les fichiers devaient alors appartenir à Apache pour que PHP puisse écrire dans les fichiers web.

Puis, sont apparus CGI et FastCGI, permettant de bien meilleures performances mais surtout de laisser les fichiers appartenir à l’utilisateur correspondant au site, permettant donc une meilleure indépendance des sites sur un serveur et donc une meilleure sécurité. FastCGI divise donc par deux les temps de chargement des pages par rapport à mod_php tout en apportant un fort gain de sécurité.

FPM (ou en Français « Application PHP ») est le dernier handler en date, utilisé par défaut sous CentOS 7 il permet des performances encore supérieures et une meilleure gestion des ressources de chaque site. FPM génère une instance par version de PHP. FPM a également l’avantage de permettre de régler individuellement le nombre max de process FPM (donc d’exécutions PHP) simultanés pour chaque site, ainsi que le nombre de process « spare » (c’est à dire en attente de connexion). Plusieurs modes existent, réglables via les paramètres PHP du domaine lorsque vous sélecitonnez FPM. Par défaut, c’est « ondemand », donc aucun process n’est lancé s’il n’y a pas de requête en cours, mais il est possible de pré lancer des handlers FPM (au prix d’un peu de RAM) de sorte à accélérer légèrement les temps de réponse.

Depuis Plesk Obsidian 18.0.39 (13 Octobre 2021), il est également possible de choisir « FPM dédié ». FPM dédié permet d’avoir un service/handler FPM indépendant pour un site. Cela se traduit techniquement par un process système (un « service ») supplémentaire. Au coût d’un peu d’utilisation RAM, cela améliore légèrement la vitesse de lancement du handler, donc de chargement du site, améliorant la métrique « TTFB » (temps de réponse initial du serveur) de quelques millisecondes. L’option FPM dédié est donc plutôt à utiliser sur les sites à très fort traffic ou les plus critiques. La différence est de l’ordre de quelques % de vitesse de chargement, en particulier sur les applis gourmandes en process FPM comme Nextcloud. Finalement, si la différence peut être intéressante, cela reste relativement marginal au regard de ce que l’optimisation du code du site ou d’un cache Redis peut apporter.

Notez que les réglages du handler, de même que tous les réglages PHP, peuvent être définis au niveau des packs de services Plesk (licence 30 domaines ou supérieure).