Il m'a été récemment suggéré d'utiliser FastCGI avec PHP. Maintenant, je suis allé sur la page FastCGI et je l'ai lu mais je ne comprends pas vraiment quels sont les avantages.
la source
Il m'a été récemment suggéré d'utiliser FastCGI avec PHP. Maintenant, je suis allé sur la page FastCGI et je l'ai lu mais je ne comprends pas vraiment quels sont les avantages.
En utilisant mod_php, chaque travailleur Apache a l'intégralité de l'interpréteur PHP chargé. Comme Apache a besoin d'un processus de travail par demande entrante, vous pouvez rapidement vous retrouver avec des centaines de travailleurs Apache en cours d'utilisation, chacun avec son propre interpréteur PHP chargé, consommant d'énormes quantités de mémoire.
(Remarque, ce n'est pas tout à fait vrai, Apache worker_mpm
vous permet de traiter de nombreuses demandes avec un seul travailleur Apache. Cependant, même en 2009, ce n'est pas la façon recommandée de déployer PHP en raison de problèmes de threads suspectés avec les extensions PHP.)
L'utilisation de PHP en mode fast_cgi (en utilisant quelque chose comme spawn-fcgi du package lighttpd) a les avantages suivants
FastCGI signifie que les bits php ne s'exécutent pas dans le même processus que les bits apache, contrairement à mod_php. Cette séparation peut avoir des avantages certains quand il s'agit de redémarrer le serveur ou de traiter des applications emballées - dans le cas mod_php cela signifie que c'est le processus apache qui est "emballé", mais sous fastcgi, c'est juste un processus auquel apache parle, donc l'ensemble du serveur ne doit pas être arrêté.
Un autre avantage non encore mentionné est le fait qu'avec mod_fcgid
(qui est une implémentation plus récente pour utiliser FastCGI sur Apache) et suexec vous pouvez réaliser des configurations où différents vhosts utilisent différents utilisateurs Linux pour l'exécution, ce qui peut être un réel avantage de sécurité dans un szenario d'hébergement partagé .
Avec mod_php, tous les vhosts partagent le même utilisateur, qui est l'utilisateur d'Apache. Cela peut entraîner des problèmes de sécurité.