J'essaye d'installer php avec fpm sur macports. J'ai lu quelque part que fpm signifie gestionnaire de processus FastCGI. Cela signifie-t-il que fastcgi et fpm sont identiques? S'ils sont identiques, alors pourquoi avons-nous deux variantes de macports différentes pour php, à savoir "php5 + fastcgi" et "php5 + fpm"
117
SpawnFCGI
le nombre de processus à générer et le nombre d'enfants PHP par processus. Donc engendrer 1 processus PHP, avec 100 enfants, c'est la même chose que d'utiliser FPM avec 100 enfants ... Cependant, l'inverse est vrai. Si FPM est tué (segfault, peu importe), tout votre travailleur meurt. Dans SpawnFCGI, si l'un des processus meurt, le reste peut rester en vie ... Il n'est donc pas clair que l'un est meilleur que l'autre. Différentes approches. FPM est recommandé non pas pour des raisons techniques, mais parce qu'il est maintenu le long du noyau (en fait) ...Ce qu'Anthony dit est tout à fait correct, mais j'aimerais ajouter que votre expérience montrera probablement de bien meilleures performances et efficacité (en raison non pas de
fpm
-vs-fcgi
mais plus de la mise en œuvre de votrehttpd
).Par exemple, j'avais une machine quadricœur en marche
lighttpd
+ quifcgi
bourdonnait bien. Je suis passé à une machine à 16 cœurs pour faire face à la croissance, et deux choses ont explosé: l'utilisation de la RAM et les défauts de segmentation. Je me suis retrouvé à redémarrerlighttpd
toutes les 30 minutes pour maintenir le site Web en place.Je suis passé à php-fpm et nginx, et l'utilisation de la RAM est passée de> 20 Go à 2 Go. Segfaults a également disparu. Après avoir fait quelques recherches, j'ai appris que lighttpd et fcgi ne s'entendent pas bien sur les machines multicœurs sous charge, et ont également des problèmes de fuite de mémoire dans certains cas.
Est-ce parce
php-fpm
que c'est mieux quefcgi
? Pas entièrement, mais la façon dont vous vous connectezphp-fpm
semble être beaucoup plus efficace que la façon dont vous servez viafcgi
.la source
Exécuter PHP en tant que CGI signifie que vous indiquez essentiellement à votre serveur Web l'emplacement du fichier exécutable PHP, et le serveur exécute cet exécutable
tandis que
PHP FastCGI Process Manager (PHP-FPM) est un autre démon FastCGI pour PHP qui permet à un site Web de gérer des charges épuisantes. PHP-FPM maintient des pools (travailleurs capables de répondre aux requêtes PHP) pour accomplir cela. PHP-FPM est plus rapide que les méthodes traditionnelles basées sur CGI, telles que SUPHP, pour les environnements PHP multi-utilisateurs
Cependant, il y a des avantages et des inconvénients aux deux et il faut choisir selon leur cas d'utilisation spécifique.
J'ai trouvé des informations sur ce lien pour fastcgi vs fpm très utiles pour choisir le gestionnaire à utiliser dans mon scénario.
la source