PHP-FPM : vitesse et sécurité réunies !


Technique

PHP FPM est l’une des nombreuses façons d’utiliser PHP, qui fait partie de l’ensemble Apache Mysql PHP sur vos systèmes d’exploitation préférés. Cet ensemble a très vite été adopté dans le World Wild Web car très facile à mettre en œuvre et pouvant tourner sur les trois systèmes d’exploitations majeurs.

Dans les premières versions PHP fonctionnait à côté du serveur Apache via le protocole CGI puis FAST-CGI  mais son utilisation n‘était pas aisée. Inclus par la suite directement dans le serveur web Apache, sa popularité a explosé car peu de configuration s’avérait nécessaire et les performances étaient au rendez-vous.

 

Une différence de philosophie

 PHP FPM : vitesse et sécurité réunies !

PHP FPM est une variante de FAST-CGI lui même étant une évolution de CGI avec comme intérêt de gommer la plupart de ces défauts, comme les lenteurs de CGI ou la complexité de mise en œuvre de FAST-CGI. Cette solution apporte en plus un système de cache permettant de renvoyer un même résultat si la demande est la même et offre un meilleur niveau de sécurité notamment du à l’utilisation d’un utilisateur spécifique aux droits limités.

De  l’autre côté, on retrouve les solutions mod_PHP et Mod_suPHP. Ces deux solutions se ressemblent beaucoup, la seconde ayant la particularité de faire tourner PHP avec un utilisateur spécifique et non l’utilisateur d’Apache. Cela permet de mettre en place une politique de sécurité plus importante car les droits accordés à l’interpréteur PHP seront alors plus stricts.

La principale différence entres ces deux types de solutions vient de la façon dont PHP se couple au serveur web. Dans le premier cas, PHP ne sera utilisé que pour des requêtes HTTP ayant besoin d’une interprétation (fichier .php) ; dans la seconde, PHP sera chargé quelque soit la demande comme une image ou une feuille de style (CSS). C’est sur ce dernier point que les performances se dégradent et que l’utilisation de PHP-FPM devient alors intéressante.

Les outils, applications, sites vitrines ou sites e-commerce devenant tous plus gros, ayant toujours plus de trafic, il est alors nécessaire d’utiliser des outils toujours plus performants comme PHP-FPM.

 

De nouvelles solutions trouvent alors tout leur sens

faster performance PHP FPM : vitesse et sécurité réunies !

PHP affranchi d’Apache, il devient alors possible de repenser de (nouvelles) solutions comme NginX, serveur web réputé plus performant qu’Apache ayant du mal à évoluer.

On obtient alors un couple serveur web et interpréteur PHP très performant.

 

Les pièges à éviter

– Le proxy Apache/NginX 

PHP ne faisant plus partie d’Apache en tant que module, il faut bien penser à diriger les requêtes PHP vers l’interpréteur PHP via un proxy.

Exemple pour Apache :

<FilesMatch "\.php$">
Require all granted
SetHandler proxy:fcgi://127.0.0.1:9000
</FilesMatch>

 

– Les changements de configuration

PHP étant maintenant autonome, il convient de bien penser à redémarrer PHP et non Apache ou autre afin de prendre en compte l’ajout de modules ou le changement de configuration liée a PHP :

/etc/init.d/php-fpm restart

 

secure pc PHP FPM : vitesse et sécurité réunies !

PHP-FPM apporte le meilleur des deux mondes en ne prenant en charge que les requêtes PHP du serveur HTTP et en ayant un système de cache intelligent et performant, le tout en gardant la simplicité d’installation et d’utilisation du module PHP historique. Le cloisonnement de PHP et l’utilisation d’un utilisateur spécifique assurent également un meilleur niveau de sécurité très appréciable à l’heure actuelle où les données se retrouvent au centre des convoitises.

Son grand intérêt est bien sûr son utilisation sur de grosses infrastructures ayant besoin de traiter de très nombreuses requêtes simultanément, mais également le niveau de sécurité élevé qu’il offre.

Pour creuser le sujet :

https://php.net/manual/fr/install.fpm.php

https://wiki.apache.org/httpd/PHP-FPM

Laisser un commentaire